{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "ad2fcb5a059d49c29f01f3fc83b0dc5f",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 71,
    "lightningbot": 2,
    "kanzure": 5,
    "paveljanik": 4,
    "btcdrak": 5,
    "BlueMatt": 56,
    "achow101": 6,
    "jonasschnelli": 53,
    "cfields": 10,
    "sipa": 14,
    "sdaftuar": 9,
    "NicolasDorier": 6,
    "jtimon": 10,
    "morcos": 8,
    "CodeShark": 4,
    "ryanofsky": 1,
    "gmaxwell": 38,
    "MarcoF____": 3,
    "petertodd": 3,
    "bitcoin-git": 1,
    "MarcoFalk_": 9,
    "gribble": 3,
    "jcorgan": 1
  },
  "start_time": "2016-11-10T19:03:00+00:00",
  "end_time": "2016-11-10T19:55:51+00:00",
  "active": false,
  "original_topic": "Bitcoin Core development discussion and commit log | This is the channel for developing Bitcoin Core. Feel free to watch, but please take commentary and usage questions to #bitcoin | Channel logs: https://botbot.me/freenode/bitcoin-core-dev, http://www.erisian.com.au/bitcoin-core-dev/",
  "current_topic": "0.14",
  "messages": [
    {
      "id": "a2d3b8c256814e9b9c9906afca1816f4",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2016-11-10T19:03:00+00:00"
    },
    {
      "id": "818ce639aa514341a150e4b41d64695f",
      "sender": "lightningbot",
      "payload": "Meeting started Thu Nov 10 19:03:00 2016 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2016-11-10T19:03:00+00:00"
    },
    {
      "id": "fbcdd069f4a74b95ab1a171c154fb1d3",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2016-11-10T19:03:00+00:00"
    },
    {
      "id": "ba6b884646714a9282867cb7bb331275",
      "sender": "wumpus",
      "payload": "#bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012",
      "action": false,
      "timestamp": "2016-11-10T19:03:26+00:00"
    },
    {
      "id": "b3ec85a5379246e1a4ef8ee1ec5656b3",
      "sender": "kanzure",
      "payload": "hi.",
      "action": false,
      "timestamp": "2016-11-10T19:03:35+00:00"
    },
    {
      "id": "2a65b8f96dc84be48873b34b6a434806",
      "sender": "wumpus",
      "payload": "proposed topics?",
      "action": false,
      "timestamp": "2016-11-10T19:03:36+00:00"
    },
    {
      "id": "f18d7c0b9ea34cb9a934be49f1d91c7c",
      "sender": "paveljanik",
      "payload": "Hi",
      "action": false,
      "timestamp": "2016-11-10T19:03:41+00:00"
    },
    {
      "id": "e71150bb8c78411f8dc3f24d800db29f",
      "sender": "btcdrak",
      "payload": "holidays",
      "action": false,
      "timestamp": "2016-11-10T19:03:41+00:00"
    },
    {
      "id": "a5eb99a4bc3e4425ad15f14444a98448",
      "sender": "BlueMatt",
      "payload": "reasons why there is no way in hell we could multithread ProcessMessages in 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:03:58+00:00"
    },
    {
      "id": "9df933fadd9b49ea8050f179c33e8794",
      "sender": "BlueMatt",
      "payload": ":)",
      "action": false,
      "timestamp": "2016-11-10T19:04:00+00:00"
    },
    {
      "id": "263d7472f7df4187944c592f2bb2117d",
      "sender": "achow101",
      "payload": "oh, meeting already?",
      "action": false,
      "timestamp": "2016-11-10T19:04:03+00:00"
    },
    {
      "id": "2ec20604fa784ca8a9699260f0964575",
      "sender": "jonasschnelli",
      "payload": "Not sure if it's OT or not, but if possible, it like to propose a short topic \"concept of hybrid SPV\"",
      "action": false,
      "timestamp": "2016-11-10T19:04:05+00:00"
    },
    {
      "id": "7fd2a433ce7a4e86a5ff08f9ce2437f4",
      "sender": "BlueMatt",
      "payload": "anyone else just want a bloom filter commitment soft fork for that?",
      "action": false,
      "timestamp": "2016-11-10T19:04:27+00:00"
    },
    {
      "id": "6e3e918d1c12411b89eb6d6ca7c9e167",
      "sender": "cfields",
      "payload": "jonasschnelli: yes please",
      "action": false,
      "timestamp": "2016-11-10T19:04:36+00:00"
    },
    {
      "id": "f56984f6b8fe41a1be29a622264c11fc",
      "sender": "wumpus",
      "payload": "#topic hybrid SPV",
      "action": false,
      "timestamp": "2016-11-10T19:04:51+00:00"
    },
    {
      "id": "c0afeed3ffec40eb8860d6949a9eaa07",
      "sender": "jonasschnelli",
      "payload": "I wanted to ask if we'd like to see some form of \"SPV\" (wrong term, i agree) mode in Bitcoin-Core, if it's worth to continue the work",
      "action": false,
      "timestamp": "2016-11-10T19:04:55+00:00"
    },
    {
      "id": "17cf62e772c94816b8d54d0297f5c324",
      "sender": "jonasschnelli",
      "payload": "IMO it could affect the userbase",
      "action": false,
      "timestamp": "2016-11-10T19:05:08+00:00"
    },
    {
      "id": "55b8ff80526a4c92ad28459cf514c52a",
      "sender": "kanzure",
      "payload": "was this about initial block download?",
      "action": false,
      "timestamp": "2016-11-10T19:05:14+00:00"
    },
    {
      "id": "01878ad85a4b4bf798bef9b51edd97cd",
      "sender": "jonasschnelli",
      "payload": "(from expertish to novicish)",
      "action": false,
      "timestamp": "2016-11-10T19:05:17+00:00"
    },
    {
      "id": "ee7e83b1422c4bdca588a11ab37ef43e",
      "sender": "wumpus",
      "payload": "I think the idea has always been to have some kind of SPV mode in bitcoin core, yes",
      "action": false,
      "timestamp": "2016-11-10T19:05:50+00:00"
    },
    {
      "id": "ca28d508987b4d5681f04cff8c8d09f3",
      "sender": "sipa",
      "payload": "why would it be a wrong term?",
      "action": false,
      "timestamp": "2016-11-10T19:05:53+00:00"
    },
    {
      "id": "1b90fd566e214ebf86a7818281fee89d",
      "sender": "kanzure",
      "payload": "\"SPV\" was the one about fraud proofs etc",
      "action": false,
      "timestamp": "2016-11-10T19:05:59+00:00"
    },
    {
      "id": "349bbcd3203a4480ac5695b2fafce2a4",
      "sender": "sipa",
      "payload": "ok, \"client mode\" as bitcoin's creator called it then",
      "action": false,
      "timestamp": "2016-11-10T19:06:17+00:00"
    },
    {
      "id": "9010f2547dd74e8ea345dde39e8fe76c",
      "sender": "jonasschnelli",
      "payload": "I like SPV, ... but some people told me SPV implies bloom filters. I somehow disagree with that though",
      "action": false,
      "timestamp": "2016-11-10T19:06:22+00:00"
    },
    {
      "id": "6f1eb9e5aa6e44d99eb4c9d42ec48ebe",
      "sender": "wumpus",
      "payload": "even if full block SPV without bloom filters",
      "action": false,
      "timestamp": "2016-11-10T19:06:25+00:00"
    },
    {
      "id": "426bea9a1ede4e87a0c80e422aa71801",
      "sender": "jonasschnelli",
      "payload": "I think full block hybrid SPV sounds ideal IMO",
      "action": false,
      "timestamp": "2016-11-10T19:06:47+00:00"
    },
    {
      "id": "2f228fb24c7c465bba9a197badce8d4d",
      "sender": "BlueMatt",
      "payload": "^ that",
      "action": false,
      "timestamp": "2016-11-10T19:06:52+00:00"
    },
    {
      "id": "4870c2ecad7e4a2dbaf6316f429e15e0",
      "sender": "wumpus",
      "payload": "no, it doesn't need bloom filters. Say you want to do SPV against a local node which stores the block chain anyway, there's no need for bloom filters",
      "action": false,
      "timestamp": "2016-11-10T19:06:58+00:00"
    },
    {
      "id": "1960dfc200f34e3aba2066ff3f20ae11",
      "sender": "jonasschnelli",
      "payload": "Once we have 150/151, we could add bloomfiltering options against bip150 authed peers.",
      "action": false,
      "timestamp": "2016-11-10T19:07:10+00:00"
    },
    {
      "id": "5bb4ac3f7ffe45da85c63e854580be20",
      "sender": "BlueMatt",
      "payload": "preferably not",
      "action": false,
      "timestamp": "2016-11-10T19:07:21+00:00"
    },
    {
      "id": "0311c134ac5d456f8271d2c724cae2e9",
      "sender": "sdaftuar",
      "payload": "jonasschnelli: hybrid spv means it starts out as spv, but eventually becomes fully validating?",
      "action": false,
      "timestamp": "2016-11-10T19:07:23+00:00"
    },
    {
      "id": "e977b71e8baa4a15a9f0339db48ae1ad",
      "sender": "jonasschnelli",
      "payload": "sdaftuar: right.",
      "action": false,
      "timestamp": "2016-11-10T19:07:31+00:00"
    },
    {
      "id": "fe1fe72942644f6f92bbcfb8a2dc8cb9",
      "sender": "wumpus",
      "payload": "and yes could always be added later, if there is a sane way of filtering that doesn't throw all your privacy out of thew indow",
      "action": false,
      "timestamp": "2016-11-10T19:07:34+00:00"
    },
    {
      "id": "d53069b62f004c768895bee229578fd1",
      "sender": "BlueMatt",
      "payload": "better designs are possible, but for full blocks agreed",
      "action": false,
      "timestamp": "2016-11-10T19:07:34+00:00"
    },
    {
      "id": "813961bca4324cd3b5c1e32e46fed978",
      "sender": "sdaftuar",
      "payload": "jonasschnelli: sounds awesome!",
      "action": false,
      "timestamp": "2016-11-10T19:07:36+00:00"
    },
    {
      "id": "4881701a6f7a45b395e0d5df7e52febc",
      "sender": "NicolasDorier",
      "payload": "I'm bit lost here, why is it called SPV if the node store the blockchain oO",
      "action": false,
      "timestamp": "2016-11-10T19:07:41+00:00"
    },
    {
      "id": "4104456205674f51b80d9efa015d88a6",
      "sender": "BlueMatt",
      "payload": "NicolasDorier: SPV here is referring to the trust model of trusting miners",
      "action": false,
      "timestamp": "2016-11-10T19:07:56+00:00"
    },
    {
      "id": "b6f2ca74f22547d4b6ce8bff01be7a5a",
      "sender": "NicolasDorier",
      "payload": "is there some past discussion somewhere about it I can read ?",
      "action": false,
      "timestamp": "2016-11-10T19:07:56+00:00"
    },
    {
      "id": "4e713e70b77843459dc3fed7e83631a8",
      "sender": "wumpus",
      "payload": "NicolasDorier: no, it doesn't need to store it",
      "action": false,
      "timestamp": "2016-11-10T19:08:00+00:00"
    },
    {
      "id": "fd5bae0a5c634ce4a77fdd68d2bfcce1",
      "sender": "jonasschnelli",
      "payload": "For those who haven seen it, there a full working PR for the hybrid SPV: https://github.com/bitcoin/bitcoin/pull/9076",
      "action": false,
      "timestamp": "2016-11-10T19:08:02+00:00"
    },
    {
      "id": "9d165a0a455e4ae6bab66e3d30ea4424",
      "sender": "kanzure",
      "payload": "the level of confusion around naming and name-implications is really high. it's sort of amusing.",
      "action": false,
      "timestamp": "2016-11-10T19:08:09+00:00"
    },
    {
      "id": "f0b8bbcadc27477ebd3c738265a7d115",
      "sender": "wumpus",
      "payload": "NicolasDorier: it just receives the blocks, filters them locally intead of setting a bloom filter",
      "action": false,
      "timestamp": "2016-11-10T19:08:19+00:00"
    },
    {
      "id": "1367afd4a3354a9b830df0857923c2c8",
      "sender": "jonasschnelli",
      "payload": "Haven't got conceptual ACKs and wasen't sure if its worth to continue, ... make it clean and stable, etc.",
      "action": false,
      "timestamp": "2016-11-10T19:08:41+00:00"
    },
    {
      "id": "d6e2737926a3446c912cf27e9295efd3",
      "sender": "NicolasDorier",
      "payload": "how is it different from a pruned node?",
      "action": false,
      "timestamp": "2016-11-10T19:08:42+00:00"
    },
    {
      "id": "c65581c9bcb14e7c86474ba13fd3133f",
      "sender": "kanzure",
      "payload": "if it's not immediately obvious to most of us that feature x is included (like block downloading or something) then we need better names :P",
      "action": false,
      "timestamp": "2016-11-10T19:08:47+00:00"
    },
    {
      "id": "3f43d7bd1acc476eb5494d730a8b3f13",
      "sender": "jonasschnelli",
      "payload": "NicolasDorier: it does no validation",
      "action": false,
      "timestamp": "2016-11-10T19:08:55+00:00"
    },
    {
      "id": "98bfbf2b40e8484dad100bd50102fe89",
      "sender": "wumpus",
      "payload": "NicolasDorier: it would allow receiving transactions while validation is not complete yet, for example",
      "action": false,
      "timestamp": "2016-11-10T19:09:00+00:00"
    },
    {
      "id": "76912e2ab96948738fd86fa50abd483c",
      "sender": "jonasschnelli",
      "payload": "NicolasDorier: just header chainwork check and pass the transaction to the wallet",
      "action": false,
      "timestamp": "2016-11-10T19:09:10+00:00"
    },
    {
      "id": "31f9b7fddc274d8b9cb9b3fa78fa7987",
      "sender": "wumpus",
      "payload": "a pruned node is a full node",
      "action": false,
      "timestamp": "2016-11-10T19:09:12+00:00"
    },
    {
      "id": "a27e29e32e574ae2a79da98638aec831",
      "sender": "NicolasDorier",
      "payload": "ah ok, so basically a node without UTXO ?",
      "action": false,
      "timestamp": "2016-11-10T19:09:34+00:00"
    },
    {
      "id": "07c2f0b3307142bbb8617dc07b3359c2",
      "sender": "jonasschnelli",
      "payload": "The main difference is, that we load blocks during IBD first from the wallet brthday.",
      "action": false,
      "timestamp": "2016-11-10T19:09:37+00:00"
    },
    {
      "id": "c40628727e1644b4a906fcd03290bb0f",
      "sender": "jonasschnelli",
      "payload": "NicolasDorier: yes. No UTXO set",
      "action": false,
      "timestamp": "2016-11-10T19:09:43+00:00"
    },
    {
      "id": "d558d88891e8482e92ca69d9b1914a01",
      "sender": "jonasschnelli",
      "payload": "No mempool, same fee problem that all SPV wallets have to deal with",
      "action": false,
      "timestamp": "2016-11-10T19:09:53+00:00"
    },
    {
      "id": "bc889c03a6404f4993082e4dad661177",
      "sender": "NicolasDorier",
      "payload": "ah ok got it",
      "action": false,
      "timestamp": "2016-11-10T19:09:55+00:00"
    },
    {
      "id": "abeb8f1a34bd4a6181c3a8a81f1dcaf7",
      "sender": "wumpus",
      "payload": "pruning has nothing to do with SPV, full node has nothing to do with 'storing the block chain' or not",
      "action": false,
      "timestamp": "2016-11-10T19:10:07+00:00"
    },
    {
      "id": "6449deee125f4406927a71b66cc0883c",
      "sender": "jonasschnelli",
      "payload": "But with the option of slowing becomming a full node",
      "action": false,
      "timestamp": "2016-11-10T19:10:08+00:00"
    },
    {
      "id": "06bc2931a77c4369a7fb165936f6fd49",
      "sender": "btcdrak",
      "payload": "jonasschnelli: I dont think anyone concept ack because it's so obviously a good feature.",
      "action": false,
      "timestamp": "2016-11-10T19:10:08+00:00"
    },
    {
      "id": "418b921efeaa499ea805577ac34e0420",
      "sender": "wumpus",
      "payload": "right, it is about the UTXO set",
      "action": false,
      "timestamp": "2016-11-10T19:10:11+00:00"
    },
    {
      "id": "c6b2a635e15c473aaa20630eae1e7d7f",
      "sender": "wumpus",
      "payload": "jonasschnelli: I've been very busy, sorry",
      "action": false,
      "timestamp": "2016-11-10T19:10:25+00:00"
    },
    {
      "id": "f4ee64bd339c488f8212c539c52ba9df",
      "sender": "jtimon",
      "payload": "oh, I undesrtand the details now, headers first, then you are an spv node that fetches the full block instead of using bloom filter but you keep syncing on the background to become a full node, sounds all fine",
      "action": false,
      "timestamp": "2016-11-10T19:10:27+00:00"
    },
    {
      "id": "7e93ef80221b46bc8f72fe41573b8c73",
      "sender": "wumpus",
      "payload": "jonasschnelli: it's obviously a good idea",
      "action": false,
      "timestamp": "2016-11-10T19:10:30+00:00"
    },
    {
      "id": "62d5bad969fb46d89dbc7d5febbb75f7",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: but still fill-blocks-in-background?",
      "action": false,
      "timestamp": "2016-11-10T19:10:32+00:00"
    },
    {
      "id": "86debd4da31c453b89cb23bdf2b1558b",
      "sender": "BlueMatt",
      "payload": "or are we moving away from that?",
      "action": false,
      "timestamp": "2016-11-10T19:10:39+00:00"
    },
    {
      "id": "d7f5c9ee74384e948edb412af4e6bc58",
      "sender": "BlueMatt",
      "payload": "but, yes, obviously good",
      "action": false,
      "timestamp": "2016-11-10T19:10:41+00:00"
    },
    {
      "id": "8af1a2f8e0334a8899e7984528ba1de2",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: there are two modes, purespv and hybridspv",
      "action": false,
      "timestamp": "2016-11-10T19:10:52+00:00"
    },
    {
      "id": "7ab84fc8b8854c38a58b705352e42605",
      "sender": "wumpus",
      "payload": "BlueMatt: that should certainly be an option",
      "action": false,
      "timestamp": "2016-11-10T19:10:53+00:00"
    },
    {
      "id": "7956f464fb804d84a178223ae2ac3f94",
      "sender": "jonasschnelli",
      "payload": "purespv will just throw away blocks...",
      "action": false,
      "timestamp": "2016-11-10T19:10:59+00:00"
    },
    {
      "id": "ad16e78c2edc4b4abff7373c5a07cb68",
      "sender": "BlueMatt",
      "payload": "oh, only optional? hum, not a fan of it only being optional",
      "action": false,
      "timestamp": "2016-11-10T19:11:08+00:00"
    },
    {
      "id": "52ea4e47042a4614a63e650f2dc8d951",
      "sender": "jonasschnelli",
      "payload": "hybrid spv will keep the blocks and does IBD in the background (maybe throttled)",
      "action": false,
      "timestamp": "2016-11-10T19:11:11+00:00"
    },
    {
      "id": "495b0f8d9a7444169e5d5e27bb5bdc41",
      "sender": "wumpus",
      "payload": "hybrid stores them for later",
      "action": false,
      "timestamp": "2016-11-10T19:11:20+00:00"
    },
    {
      "id": "23e1f729840d4ff38588347b12f1376f",
      "sender": "wumpus",
      "payload": "BlueMatt: why not?",
      "action": false,
      "timestamp": "2016-11-10T19:11:28+00:00"
    },
    {
      "id": "240fac7e21e24ca39726ed3dae4a202c",
      "sender": "morcos",
      "payload": "jonasschnelli: +1 on the ability to throttle, think that would make it very useful",
      "action": false,
      "timestamp": "2016-11-10T19:11:29+00:00"
    },
    {
      "id": "bf9ca83dc2cb4f66bdd52854d60aa815",
      "sender": "BlueMatt",
      "payload": "i mean you dont have to keep blocks, but you still want to ibd and build the utxo set",
      "action": false,
      "timestamp": "2016-11-10T19:11:31+00:00"
    },
    {
      "id": "40b91c797d9541538af5b33425f812a0",
      "sender": "BlueMatt",
      "payload": "/validate",
      "action": false,
      "timestamp": "2016-11-10T19:11:40+00:00"
    },
    {
      "id": "4adf17fe1cc04c37ab91796bbcce30f7",
      "sender": "BlueMatt",
      "payload": "wumpus: because if you're not gonna be upgrading to full trust model why are you running bitcoin core as a wallet?",
      "action": false,
      "timestamp": "2016-11-10T19:11:58+00:00"
    },
    {
      "id": "7f0764fed708496a89d86375b8dffb07",
      "sender": "wumpus",
      "payload": "being able to use bitcoin core as a full SPV node would be useful, especially with a local node that does validate",
      "action": false,
      "timestamp": "2016-11-10T19:11:58+00:00"
    },
    {
      "id": "2049654ba88045dbabe56ab395e4bcbf",
      "sender": "wumpus",
      "payload": "BlueMatt: why not?",
      "action": false,
      "timestamp": "2016-11-10T19:12:03+00:00"
    },
    {
      "id": "ac320c0278b94954b97a63cc66554023",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: if you throw away blocks with the long term goal of getting a full node your wasting bandwith",
      "action": false,
      "timestamp": "2016-11-10T19:12:05+00:00"
    },
    {
      "id": "ca90169e96ed42958552cbed3e8c5959",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: no, you're not!",
      "action": false,
      "timestamp": "2016-11-10T19:12:15+00:00"
    },
    {
      "id": "a20446e585234964b8a8c8178a3aca07",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: you're upgrading your security model",
      "action": false,
      "timestamp": "2016-11-10T19:12:21+00:00"
    },
    {
      "id": "6eaf602434584f1da7cea4edb254406d",
      "sender": "jonasschnelli",
      "payload": "BlueMatt:: you have to download the block again!",
      "action": false,
      "timestamp": "2016-11-10T19:12:28+00:00"
    },
    {
      "id": "63728d7e33b0409d800c6b8ec77c3316",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: huh? oh, you mean keeping the blocks at the tip that you're using to fill wallet...ahh, misunderstanding",
      "action": false,
      "timestamp": "2016-11-10T19:12:50+00:00"
    },
    {
      "id": "ed2530aa23f442aa860835fc37fc33ca",
      "sender": "jonasschnelli",
      "payload": "purespv is interesting when connecting to a trusted node.",
      "action": false,
      "timestamp": "2016-11-10T19:12:58+00:00"
    },
    {
      "id": "bafccdc58186412f9f34726c53b12d24",
      "sender": "wumpus",
      "payload": "right",
      "action": false,
      "timestamp": "2016-11-10T19:13:25+00:00"
    },
    {
      "id": "18f5ca5891f442338c51378293918fdb",
      "sender": "BlueMatt",
      "payload": "I'm not sure if its worth the effort to make bitcoin core a competitive spv wallet - they mostly all already support connecting to a trusted node (though need auth)",
      "action": false,
      "timestamp": "2016-11-10T19:13:35+00:00"
    },
    {
      "id": "725ad55f2aac44a8a2a650af5f4af301",
      "sender": "jonasschnelli",
      "payload": "fullblock SPV gets uninteresting if you import keys or watchonlys.. because we set the timestamp to 0 = download the whole blockchain",
      "action": false,
      "timestamp": "2016-11-10T19:13:39+00:00"
    },
    {
      "id": "31f2cafb82ac498eb71fb6ed9ad631ff",
      "sender": "achow101",
      "payload": "so hybrid keeps blocks for later and purespv doesn't? Is that the only diference?",
      "action": false,
      "timestamp": "2016-11-10T19:13:40+00:00"
    },
    {
      "id": "d560f124ade248fd9d24f2c0e5a1ef79",
      "sender": "BlueMatt",
      "payload": "if someone wants to work on it I wont complain, but...",
      "action": false,
      "timestamp": "2016-11-10T19:13:42+00:00"
    },
    {
      "id": "ebed549f78ec438fb66adc17ba4d35be",
      "sender": "jonasschnelli",
      "payload": "achow101: right.",
      "action": false,
      "timestamp": "2016-11-10T19:13:57+00:00"
    },
    {
      "id": "980991ae273d4133a861e4966ee6d6c5",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: argh, I'm lost in your terms here",
      "action": false,
      "timestamp": "2016-11-10T19:14:00+00:00"
    },
    {
      "id": "23cda0c22b6f475c9c76e100e30a0464",
      "sender": "btcdrak",
      "payload": "Yeah I also think purespv seems wrong for Bitcoin Core.",
      "action": false,
      "timestamp": "2016-11-10T19:14:05+00:00"
    },
    {
      "id": "73b2654a9309462684a4ce833e100486",
      "sender": "btcdrak",
      "payload": "but w/e",
      "action": false,
      "timestamp": "2016-11-10T19:14:09+00:00"
    },
    {
      "id": "ff6dbed582e54b4c85256e9098339fba",
      "sender": "sipa",
      "payload": "i don't see why",
      "action": false,
      "timestamp": "2016-11-10T19:14:11+00:00"
    },
    {
      "id": "c23e540e96cd41fd88a2bdc70838b80f",
      "sender": "jonasschnelli",
      "payload": "achow101: hybrid means, your doing IBD with all its downsides...",
      "action": false,
      "timestamp": "2016-11-10T19:14:17+00:00"
    },
    {
      "id": "71ddf21677a544c38b056ebad90b2d5e",
      "sender": "NicolasDorier",
      "payload": "well bitcoin core has a wallet part",
      "action": false,
      "timestamp": "2016-11-10T19:14:17+00:00"
    },
    {
      "id": "013bf7a21b88424196fcbbabd128788a",
      "sender": "sipa",
      "payload": "bitcoin core has a perfectly good wallet",
      "action": false,
      "timestamp": "2016-11-10T19:14:18+00:00"
    },
    {
      "id": "750646d66d094b8782e643c7c88e4c96",
      "sender": "BlueMatt",
      "payload": "purespv? fullblock spv? define?",
      "action": false,
      "timestamp": "2016-11-10T19:14:19+00:00"
    },
    {
      "id": "ee22a4f71eca4e2981327e1ec130bd31",
      "sender": "sipa",
      "payload": "seems stupid to restrict it to full node use only",
      "action": false,
      "timestamp": "2016-11-10T19:14:31+00:00"
    },
    {
      "id": "0af4cf9b47ce49c197c4dde654aac9a9",
      "sender": "CodeShark",
      "payload": "We really should drop the term spv",
      "action": false,
      "timestamp": "2016-11-10T19:14:31+00:00"
    },
    {
      "id": "a6872fc7ca8e48dfb82da66fa36b716a",
      "sender": "jtimon",
      "payload": "achow101: it seems also hybridspv does background ibd while pure doesn't",
      "action": false,
      "timestamp": "2016-11-10T19:14:33+00:00"
    },
    {
      "id": "23bd45944945433dbad4e165b91981cb",
      "sender": "achow101",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-11-10T19:14:41+00:00"
    },
    {
      "id": "20ac4c3fdec44b47b0490ebdcf3a1582",
      "sender": "jonasschnelli",
      "payload": "purespv = no IBD, hybridspv = SPV during IDB",
      "action": false,
      "timestamp": "2016-11-10T19:14:43+00:00"
    },
    {
      "id": "360f54eb75c94426988b996adc7aeddf",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: wait, so what is fullblockspv?",
      "action": false,
      "timestamp": "2016-11-10T19:15:00+00:00"
    },
    {
      "id": "9d23d66128d24a1e837871376fd823d5",
      "sender": "wumpus",
      "payload": "both",
      "action": false,
      "timestamp": "2016-11-10T19:15:08+00:00"
    },
    {
      "id": "afa4d651860a453cbcfb26dd91af161d",
      "sender": "btcdrak",
      "payload": "I thought the point of the hybride SPV is just to make the wallet usable immediately during IDB, and put an end to the poor user experience for new users.",
      "action": false,
      "timestamp": "2016-11-10T19:15:12+00:00"
    },
    {
      "id": "df16cef0d98d4f07a41338a72a69bbf3",
      "sender": "BlueMatt",
      "payload": "huh",
      "action": false,
      "timestamp": "2016-11-10T19:15:12+00:00"
    },
    {
      "id": "b1cb4ad62877443ab70dffc7a82b4391",
      "sender": "jonasschnelli",
      "payload": "Both. Yes.",
      "action": false,
      "timestamp": "2016-11-10T19:15:15+00:00"
    },
    {
      "id": "3ba20ff9d1b648f3801bdbd2c4477e0b",
      "sender": "BlueMatt",
      "payload": "what does both mean?",
      "action": false,
      "timestamp": "2016-11-10T19:15:20+00:00"
    },
    {
      "id": "d0a40068cde540ccbc8984d04da7ed4f",
      "sender": "jtimon",
      "payload": "isn't hybridspv the same as \"both\"?",
      "action": false,
      "timestamp": "2016-11-10T19:15:28+00:00"
    },
    {
      "id": "a5d4e0214d8d47929913b4b97438f85b",
      "sender": "sipa",
      "payload": "BlueMatt: both hybrid and pure download full blocks",
      "action": false,
      "timestamp": "2016-11-10T19:15:32+00:00"
    },
    {
      "id": "bd6426ea59ea4dd986dc9fc4cc04ddab",
      "sender": "wumpus",
      "payload": "no bloom filters are used in either case, it is all retrieving full blocks",
      "action": false,
      "timestamp": "2016-11-10T19:15:33+00:00"
    },
    {
      "id": "c9af2349007e46258d5e93743cd6c71d",
      "sender": "jonasschnelli",
      "payload": "Both modes (pure and hybrid) are full block SPV modes.",
      "action": false,
      "timestamp": "2016-11-10T19:15:33+00:00"
    },
    {
      "id": "8abb80eef12641319a87d77ff87e1cb7",
      "sender": "achow101",
      "payload": "fullblock spv is where the full block is downloaded and the transaction is pulled. watever happens to the block is depended on hybrid or pure",
      "action": false,
      "timestamp": "2016-11-10T19:15:41+00:00"
    },
    {
      "id": "747196f7cd5244608cbeb3dfb4bd4e4f",
      "sender": "wumpus",
      "payload": "what is so hard to understand about that?",
      "action": false,
      "timestamp": "2016-11-10T19:15:41+00:00"
    },
    {
      "id": "163c10ee92ff427493328dc4176b082f",
      "sender": "wumpus",
      "payload": "achow101: right",
      "action": false,
      "timestamp": "2016-11-10T19:15:50+00:00"
    },
    {
      "id": "6e8820e86ac842c2815237f922bf4728",
      "sender": "jonasschnelli",
      "payload": "let me write a short post on bitcoincore ML",
      "action": false,
      "timestamp": "2016-11-10T19:15:52+00:00"
    },
    {
      "id": "f1f3a0a2bd844890abb7371a93bd3cba",
      "sender": "BlueMatt",
      "payload": "wumpus/sipa: ahh, just referring to the way we download in either case",
      "action": false,
      "timestamp": "2016-11-10T19:15:52+00:00"
    },
    {
      "id": "3b701919446746a19c24ea4dd325ccb0",
      "sender": "BlueMatt",
      "payload": "wumpus: the way it was referenced it sounded like a different mode",
      "action": false,
      "timestamp": "2016-11-10T19:16:04+00:00"
    },
    {
      "id": "8aa2f3dfa007444aae7ac09c0f0acff8",
      "sender": "jonasschnelli",
      "payload": "From the enduser perspective, the modes are very different",
      "action": false,
      "timestamp": "2016-11-10T19:16:24+00:00"
    },
    {
      "id": "8eda1d8c866f47988354616c9c6d3d0a",
      "sender": "wumpus",
      "payload": "the only difference is that in pure SPV mode, the blocks are thrown away and there is no IBD, in hybrid mode the blocks are backfilled and IBD happens",
      "action": false,
      "timestamp": "2016-11-10T19:16:34+00:00"
    },
    {
      "id": "9cb13edcfaf1461b8fdebdc37db04651",
      "sender": "BlueMatt",
      "payload": "wumpus: yes, i was confused and thought there was a third mode",
      "action": false,
      "timestamp": "2016-11-10T19:16:51+00:00"
    },
    {
      "id": "7c4851c86b944e44bdbf7b98449a2281",
      "sender": "jtimon",
      "payload": "I see no problem with allowing purespv optionally, the default is going to be hybridspv, right?",
      "action": false,
      "timestamp": "2016-11-10T19:17:04+00:00"
    },
    {
      "id": "6e85ea746c604e9fa73bdf16f0adff53",
      "sender": "wumpus",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-11-10T19:17:10+00:00"
    },
    {
      "id": "9807273184b949d785cec57cc4c2a75d",
      "sender": "wumpus",
      "payload": "jtimon: yes",
      "action": false,
      "timestamp": "2016-11-10T19:17:15+00:00"
    },
    {
      "id": "57769dbaba54433a961b59da46026360",
      "sender": "ryanofsky",
      "payload": "in the pr, i suggested calling hybrid spv \"prioritized download\"",
      "action": false,
      "timestamp": "2016-11-10T19:17:20+00:00"
    },
    {
      "id": "3f3b4d5fdd93452881f3f70065392e63",
      "sender": "jonasschnelli",
      "payload": "purespv can solve an interesting usecase where one likes to decouple the wallet from the node",
      "action": false,
      "timestamp": "2016-11-10T19:17:23+00:00"
    },
    {
      "id": "54808f51b4a34a5e92fe51427d466461",
      "sender": "wumpus",
      "payload": "jonasschnelli: exactly",
      "action": false,
      "timestamp": "2016-11-10T19:17:32+00:00"
    },
    {
      "id": "9a8f86192a8f46bcb8867944bbd89611",
      "sender": "BlueMatt",
      "payload": "jtimon: agreed, just saying that it seems a strange thing to focus work on...there are already good options for consumers on the purespv front",
      "action": false,
      "timestamp": "2016-11-10T19:17:33+00:00"
    },
    {
      "id": "b9362c5291854a2896cd445c1fde78c8",
      "sender": "BlueMatt",
      "payload": "like, lots of good options",
      "action": false,
      "timestamp": "2016-11-10T19:17:45+00:00"
    },
    {
      "id": "5baa02d6ff7644f799c7f795122c1d90",
      "sender": "wumpus",
      "payload": "jonasschnelli: it's basically a stand-alone wallet",
      "action": false,
      "timestamp": "2016-11-10T19:17:46+00:00"
    },
    {
      "id": "277eba3fb90145d8803ac7a597ffb185",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: purespv would be the only fullblock SPV wallet in the wild",
      "action": false,
      "timestamp": "2016-11-10T19:18:05+00:00"
    },
    {
      "id": "aac58fa3fe914adca78ebb3880bc9d37",
      "sender": "jtimon",
      "payload": "BlueMatt: I suspect the reasoning is that it will be relatively cheap to add that extra mode",
      "action": false,
      "timestamp": "2016-11-10T19:18:07+00:00"
    },
    {
      "id": "b65801ecc5c14fb09f061411a050a7cd",
      "sender": "wumpus",
      "payload": "BlueMatt: it is not *focusing* work on, it's just a by-effect of allowing it",
      "action": false,
      "timestamp": "2016-11-10T19:18:12+00:00"
    },
    {
      "id": "607f70d42f024d7899e30a062d0d3f9d",
      "sender": "BlueMatt",
      "payload": "wumpus: yup, I'm fine with it being a free feature, just making a note",
      "action": false,
      "timestamp": "2016-11-10T19:18:29+00:00"
    },
    {
      "id": "84a2a15691ae4c14a46da4763a020913",
      "sender": "jtimon",
      "payload": "maybe a pr with the hybrid default one and a later one adding the purespv mode would make sense",
      "action": false,
      "timestamp": "2016-11-10T19:18:39+00:00"
    },
    {
      "id": "ece0c2309e2146a4bed7ce958e9017f5",
      "sender": "achow101",
      "payload": "purespv would be great for privacy",
      "action": false,
      "timestamp": "2016-11-10T19:18:40+00:00"
    },
    {
      "id": "27f57af2929a43e1ac71e8eb080b23ee",
      "sender": "jonasschnelli",
      "payload": "not for bandwidth thought",
      "action": false,
      "timestamp": "2016-11-10T19:18:57+00:00"
    },
    {
      "id": "590f24c0e28c48dfb531a6f2b3c7cce2",
      "sender": "sipa",
      "payload": "BlueMatt: fair enough, but if we want hybrid spv because of the terrible syncing experience, we have all the pieces in place for purespv as well",
      "action": false,
      "timestamp": "2016-11-10T19:19:03+00:00"
    },
    {
      "id": "0b83273e226d4c0c8799cf160563e240",
      "sender": "CodeShark",
      "payload": "I still don't quite get purespv - sorry, scrolling back and keeping up is hard",
      "action": false,
      "timestamp": "2016-11-10T19:19:07+00:00"
    },
    {
      "id": "5a4eb6194b674daf914ecf6075136fb1",
      "sender": "wumpus",
      "payload": "sigh.\\",
      "action": false,
      "timestamp": "2016-11-10T19:19:20+00:00"
    },
    {
      "id": "a371115bc2eb4a37aa63510743abb1d7",
      "sender": "jonasschnelli",
      "payload": "purespv = plain full block SPV",
      "action": false,
      "timestamp": "2016-11-10T19:19:23+00:00"
    },
    {
      "id": "cc5f1ccafd98485e988be7e90102127d",
      "sender": "wumpus",
      "payload": "any other topics?",
      "action": false,
      "timestamp": "2016-11-10T19:19:25+00:00"
    },
    {
      "id": "f457e8030b1c43419476c1419e200dca",
      "sender": "wumpus",
      "payload": "we're starting to repeat ourselves and that is annoying",
      "action": false,
      "timestamp": "2016-11-10T19:19:32+00:00"
    },
    {
      "id": "94f182130b89496f85e9df24d60bc7b4",
      "sender": "gmaxwell",
      "payload": "hah",
      "action": false,
      "timestamp": "2016-11-10T19:19:35+00:00"
    },
    {
      "id": "2da4867dc6d94e51a97c031757f89fce",
      "sender": "jonasschnelli",
      "payload": "download block, no validation, extract relevavnt txs",
      "action": false,
      "timestamp": "2016-11-10T19:19:36+00:00"
    },
    {
      "id": "79647fe302044474b03407872bef006e",
      "sender": "CodeShark",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-11-10T19:19:47+00:00"
    },
    {
      "id": "d9da78b85cc54eee9239bd99e00aa094",
      "sender": "jonasschnelli",
      "payload": "Okay. I'll continue and try to make small PRs (could be hard though). Thanks",
      "action": false,
      "timestamp": "2016-11-10T19:19:48+00:00"
    },
    {
      "id": "d1e9561db2a34be1bda33347ab7b04ad",
      "sender": "wumpus",
      "payload": "please just read back if you want to know things that have been discussed before, we can't repeat every single thing specifically for everyone",
      "action": false,
      "timestamp": "2016-11-10T19:20:03+00:00"
    },
    {
      "id": "36fb0f840321470aad2d14f45f72ab66",
      "sender": "BlueMatt",
      "payload": "topics?",
      "action": false,
      "timestamp": "2016-11-10T19:20:25+00:00"
    },
    {
      "id": "4a4a979a3c7044e0b108f6e12fef1901",
      "sender": "MarcoF____",
      "payload": "topic suggestion: 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:20:27+00:00"
    },
    {
      "id": "1b87b500c0d04cc880496dcd22178665",
      "sender": "CodeShark",
      "payload": "I'd rather discuss bloom filter commitments or clientside bloom filtering from trusted nodes",
      "action": false,
      "timestamp": "2016-11-10T19:20:33+00:00"
    },
    {
      "id": "9dbd25f8a2d44a1ba2d3ee452d181bcd",
      "sender": "wumpus",
      "payload": "#topic  multithread ProcessMessages",
      "action": false,
      "timestamp": "2016-11-10T19:20:34+00:00"
    },
    {
      "id": "96faeb82c4d944a3b7b24c03de6f7ed0",
      "sender": "MarcoF____",
      "payload": "Personally I mostly care about multiwallet refactoring for 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:20:44+00:00"
    },
    {
      "id": "b20af80c131b4220b0cfe247a8d54685",
      "sender": "MarcoF____",
      "payload": "but there are plenty of other pulls open, so we might want to prioritize?",
      "action": false,
      "timestamp": "2016-11-10T19:21:00+00:00"
    },
    {
      "id": "cc43dc311ba84465921b0ba781398e39",
      "sender": "wumpus",
      "payload": "BlueMatt ^^",
      "action": false,
      "timestamp": "2016-11-10T19:21:04+00:00"
    },
    {
      "id": "3e94920abe454dc69bc561fc91f150b3",
      "sender": "BlueMatt",
      "payload": "i mean i think we all want multiple message-processing threads",
      "action": false,
      "timestamp": "2016-11-10T19:21:33+00:00"
    },
    {
      "id": "f4c0d70d52f74734a24b9253f9b38f09",
      "sender": "jonasschnelli",
      "payload": "+1",
      "action": false,
      "timestamp": "2016-11-10T19:21:40+00:00"
    },
    {
      "id": "4a402ea735d74504ab3285586513bf01",
      "sender": "gmaxwell",
      "payload": "Sorry, I delayed matt by asking him about it offline.  My only comment was \"don't reorder messages from a single peer!\" :P but apparently I'm behind the times.",
      "action": false,
      "timestamp": "2016-11-10T19:21:51+00:00"
    },
    {
      "id": "30ebd456e2da47a4b160ce1c02ed7b5a",
      "sender": "BlueMatt",
      "payload": "and while it probably wont be so useful with cs_main at the head of like every message, I'd like to see plumbing for it sooner rather than later",
      "action": false,
      "timestamp": "2016-11-10T19:21:53+00:00"
    },
    {
      "id": "1b26cf76e8624d7da5295065b10a247c",
      "sender": "wumpus",
      "payload": "well if cs_main usage is brought down enough, that will start to make sense",
      "action": false,
      "timestamp": "2016-11-10T19:21:58+00:00"
    },
    {
      "id": "b108b0a942c94ceca0794f33c5f3550f",
      "sender": "BlueMatt",
      "payload": "then people can remove cs_main one message at a time and it will be useful",
      "action": false,
      "timestamp": "2016-11-10T19:22:10+00:00"
    },
    {
      "id": "9e24799e1e174c7daad6a110c0d38eef",
      "sender": "BlueMatt",
      "payload": "I'd be happy to see, but dont know if we'll make, cs_main split-outs too much for 0.14 (thats next after main.cpp split)",
      "action": false,
      "timestamp": "2016-11-10T19:22:32+00:00"
    },
    {
      "id": "55a50b2cac91458b81194030bec741e9",
      "sender": "BlueMatt",
      "payload": "but I'd like to see a few free wins like being able to respond to getblocktxn requests while a block is processing",
      "action": false,
      "timestamp": "2016-11-10T19:22:48+00:00"
    },
    {
      "id": "195eda68ac9d4a87bf100a3e077bc6e1",
      "sender": "BlueMatt",
      "payload": "anyone have any thoughts on blockers for this? things likely to break? etc?",
      "action": false,
      "timestamp": "2016-11-10T19:23:05+00:00"
    },
    {
      "id": "a755201af25a4fe18ce39fc6af742e31",
      "sender": "gmaxwell",
      "payload": "okay, thanks for the concrete example of something pretty useful.",
      "action": false,
      "timestamp": "2016-11-10T19:23:05+00:00"
    },
    {
      "id": "889d53a62a464189876751bf7b72bdc6",
      "sender": "cfields",
      "payload": "BlueMatt: seems unlikely to have any real-world benefit without breaking out CNodeState? Maybe we should try to knock that out first?",
      "action": false,
      "timestamp": "2016-11-10T19:23:21+00:00"
    },
    {
      "id": "76bb5d0517c644b3ac6b56637fd76a6d",
      "sender": "gmaxwell",
      "payload": "I was struggling to come up with one, but that one is good.",
      "action": false,
      "timestamp": "2016-11-10T19:23:28+00:00"
    },
    {
      "id": "d3e5b075d3e2486495db5c97afa3300d",
      "sender": "wumpus",
      "payload": "being able to service multiple nodes at once would be very useful",
      "action": false,
      "timestamp": "2016-11-10T19:23:44+00:00"
    },
    {
      "id": "b3389777eaa0447fb52f51c535168693",
      "sender": "BlueMatt",
      "payload": "cfields: why do you have to break out CNodeState? you'll never call ProcessMessages in two threads for a single peer at the same time",
      "action": false,
      "timestamp": "2016-11-10T19:24:01+00:00"
    },
    {
      "id": "793db39ff9784b0dbb8171b7993d65d9",
      "sender": "BlueMatt",
      "payload": "cfields: that would violate our serialization stuff",
      "action": false,
      "timestamp": "2016-11-10T19:24:07+00:00"
    },
    {
      "id": "cf0e8c7b36b042e9b69831097a311717",
      "sender": "gmaxwell",
      "payload": "Yes, in particular being able to reply to getblocktxn multiple times in parallel should reduce block relaying delays.",
      "action": false,
      "timestamp": "2016-11-10T19:24:30+00:00"
    },
    {
      "id": "1472cd63ecd142bd862894702c7aeaf2",
      "sender": "BlueMatt",
      "payload": "gmaxwell: yes, i really want it for FIBRE-based relay network - respond to getblocktxn from a shared_ptr<const CBlock> block_currently_processing",
      "action": false,
      "timestamp": "2016-11-10T19:25:02+00:00"
    },
    {
      "id": "8bb5109474c74eb094e7f01653553f3c",
      "sender": "wumpus",
      "payload": "I mean looking at it from the other side, there's no good reason for keeping doing message processing only in one thread",
      "action": false,
      "timestamp": "2016-11-10T19:25:06+00:00"
    },
    {
      "id": "fd378b71ee594dd88261e6b67f922d93",
      "sender": "morcos",
      "payload": "BlueMatt: I think its going to be important to do a thorough review of synchronization issues first.  Sometimes I feel like things just happen to not be a problem b/c they are only accessed from the single thread.",
      "action": false,
      "timestamp": "2016-11-10T19:25:16+00:00"
    },
    {
      "id": "9d2ed2507989423b8f85ad05d29492f5",
      "sender": "BlueMatt",
      "payload": "morcos: yea, thats my concern :(",
      "action": false,
      "timestamp": "2016-11-10T19:25:34+00:00"
    },
    {
      "id": "052ae162bd1f48c191626552d50541c8",
      "sender": "cfields",
      "payload": "BlueMatt: well when each one is grabbing for cs_main, it only takes one long lock to drop us back to single-threaded",
      "action": false,
      "timestamp": "2016-11-10T19:25:41+00:00"
    },
    {
      "id": "1ce235b7685848b2b9ad16a8db3d8f70",
      "sender": "morcos",
      "payload": "We do an ok job of fixing these missing locks when we find them, but if we're goign to make multiple message processing threads, we need to make sure we've really got them all",
      "action": false,
      "timestamp": "2016-11-10T19:25:42+00:00"
    },
    {
      "id": "dcdfd8b3be9c44a9a6c0b7096fb9dd74",
      "sender": "BlueMatt",
      "payload": "morcos: any concrete things i should be looking for",
      "action": false,
      "timestamp": "2016-11-10T19:25:44+00:00"
    },
    {
      "id": "8eb574eb84ed465296a77d542bd635c9",
      "sender": "morcos",
      "payload": "I think we should make a list of what needs to be protected by cs_main",
      "action": false,
      "timestamp": "2016-11-10T19:25:59+00:00"
    },
    {
      "id": "ef1d7f98dd944f9da7ca581d2c1442e1",
      "sender": "BlueMatt",
      "payload": "cfields: yea, I mean I'm ok with switching to a multi-threaded model that does ~nothing and then slowly reducing the locks",
      "action": false,
      "timestamp": "2016-11-10T19:26:10+00:00"
    },
    {
      "id": "161d13f8ecc043809bb80d6f1c1b3a95",
      "sender": "gmaxwell",
      "payload": "So I think making process message concurrent may create greater exposure for data races around the nodestats.  Right now the locking around stats is _widely_ incorrect, leading to undefined behavior. (I haven't been watching closely and cfields likely improved a lot of it recently, but I expect there are still problems)",
      "action": false,
      "timestamp": "2016-11-10T19:26:15+00:00"
    },
    {
      "id": "64ac374f67bd4609b6b00bbe136202e3",
      "sender": "gmaxwell",
      "payload": "(this is responsive to matt's question about likely sources of problems)",
      "action": false,
      "timestamp": "2016-11-10T19:26:47+00:00"
    },
    {
      "id": "d5263408fdc94510990ac7b249644393",
      "sender": "sipa",
      "payload": "gmaxwell: for stats we can just change them all to atomics",
      "action": false,
      "timestamp": "2016-11-10T19:27:18+00:00"
    },
    {
      "id": "c519c58f1c5b46b09b01d1082d30e4cb",
      "sender": "gmaxwell",
      "payload": "I recommend that we run testing harnesses with valgrind DRD and try to get this change to be data race free at least according to DRD.",
      "action": false,
      "timestamp": "2016-11-10T19:27:19+00:00"
    },
    {
      "id": "807ccbfa1cf646eab162fb628541341f",
      "sender": "BlueMatt",
      "payload": "gmaxwell: good suggestion, indeed",
      "action": false,
      "timestamp": "2016-11-10T19:27:34+00:00"
    },
    {
      "id": "afddd53f834f4185b3179facda86d1f1",
      "sender": "gmaxwell",
      "payload": "sipa: I made that suggestion previously. I think we access them infrequently enough that it's not an awful idea.",
      "action": false,
      "timestamp": "2016-11-10T19:27:47+00:00"
    },
    {
      "id": "588a2f1195624d4fb1483ada85f7c7d4",
      "sender": "sipa",
      "payload": "gmaxwell: you can also cache per peer, and flush to a locked global occasionally if it's a concern.",
      "action": false,
      "timestamp": "2016-11-10T19:28:14+00:00"
    },
    {
      "id": "99501a7ecc2d41639150fcef566c73bb",
      "sender": "sipa",
      "payload": "stats are easy, no consistency requirements",
      "action": false,
      "timestamp": "2016-11-10T19:28:20+00:00"
    },
    {
      "id": "67373259bd044cdb9e21c78ca3f48cb5",
      "sender": "gmaxwell",
      "payload": "last time I ran DRD I saw some races around stats but there wasn't a wall of errors.",
      "action": false,
      "timestamp": "2016-11-10T19:28:45+00:00"
    },
    {
      "id": "d103c52063b245909e713b7d3972c793",
      "sender": "wumpus",
      "payload": "and the per-node stats should not be an issue as we likely don't want to be processing two messages from the same peer at the same time?",
      "action": false,
      "timestamp": "2016-11-10T19:28:54+00:00"
    },
    {
      "id": "3d8c5e1a7c9c49809f00349e4f13d288",
      "sender": "cfields",
      "payload": "sipa: that sounds like a good model",
      "action": false,
      "timestamp": "2016-11-10T19:28:56+00:00"
    },
    {
      "id": "ae32b1862f834b94a4b3b210f84be915",
      "sender": "sipa",
      "payload": "wumpus: indeed",
      "action": false,
      "timestamp": "2016-11-10T19:29:11+00:00"
    },
    {
      "id": "b9c31d4e7c11461199f5bad395338054",
      "sender": "BlueMatt",
      "payload": "wumpus: yes, that would reduce lots of issues",
      "action": false,
      "timestamp": "2016-11-10T19:29:14+00:00"
    },
    {
      "id": "33af9e6f077443d0bb01d7bb7e54ea97",
      "sender": "gmaxwell",
      "payload": "wumpus: I suspect we can get a message from peer A that causes use to iterate over all the other peers stats.",
      "action": false,
      "timestamp": "2016-11-10T19:29:19+00:00"
    },
    {
      "id": "84c0df195adb4cefbfb9e50880ad9adb",
      "sender": "sdaftuar",
      "payload": "BlueMatt: have you given much thought to how the threading logic would work?",
      "action": false,
      "timestamp": "2016-11-10T19:29:28+00:00"
    },
    {
      "id": "3075a1274158498ebf8ee3c7be6a766d",
      "sender": "sdaftuar",
      "payload": "i mean, how you'd decide how to split work across threads",
      "action": false,
      "timestamp": "2016-11-10T19:29:41+00:00"
    },
    {
      "id": "7abc01c7c7e44c529a5c11997d054df5",
      "sender": "gmaxwell",
      "payload": "(just an example why single peer at a time doesn't automatically mean thread safty of per node stats)",
      "action": false,
      "timestamp": "2016-11-10T19:29:46+00:00"
    },
    {
      "id": "65dbab98f3ae4fb2b41abafbb6e3a8d5",
      "sender": "wumpus",
      "payload": "gmaxwell: that sounds scary",
      "action": false,
      "timestamp": "2016-11-10T19:29:53+00:00"
    },
    {
      "id": "a22dfcc95b5a4bb6a6475778d6a08ee7",
      "sender": "gmaxwell",
      "payload": "(maybe we don't actually do that anywhere, at least in response to a message... a connection, for example, causes that--)",
      "action": false,
      "timestamp": "2016-11-10T19:30:35+00:00"
    },
    {
      "id": "80c2f869f22e42d5a1c11076214552c2",
      "sender": "BlueMatt",
      "payload": "sdaftuar: hum? do we need anything more complicated than just a thread pool each looking for peers that have available work and arent being worked on that just wait on a cv when there is nothing to do",
      "action": false,
      "timestamp": "2016-11-10T19:30:35+00:00"
    },
    {
      "id": "f0d9b09ae6a74367aec8da6c3f4433fe",
      "sender": "wumpus",
      "payload": "gmaxwell: no, but keeping to rules like that will make it easier manageable",
      "action": false,
      "timestamp": "2016-11-10T19:30:51+00:00"
    },
    {
      "id": "973e5463c15f4b7688c020759903d5d2",
      "sender": "gmaxwell",
      "payload": "Another point to keep in mind is thread prolifervation and address space usage on 32-bit hosts. Not a reason to not do this, but just a cost.",
      "action": false,
      "timestamp": "2016-11-10T19:31:17+00:00"
    },
    {
      "id": "963982643cc54793b683a8026b5ba294",
      "sender": "sdaftuar",
      "payload": "well, my thought was that since most messages are tx's, we might find ourselves tying up all our threads but unable to continue, as they're all contending on cs_main",
      "action": false,
      "timestamp": "2016-11-10T19:31:19+00:00"
    },
    {
      "id": "99283bad474a437099d37666e7b93116",
      "sender": "sdaftuar",
      "payload": "so you wouldn't necessarily be able to respond to a getblocktxn while processing a block",
      "action": false,
      "timestamp": "2016-11-10T19:31:34+00:00"
    },
    {
      "id": "b5d268c26cc54ca9b674916837b71593",
      "sender": "sdaftuar",
      "payload": "you could do somethign smarter though...",
      "action": false,
      "timestamp": "2016-11-10T19:31:42+00:00"
    },
    {
      "id": "ea8d49f1a50c4c5bb4221cbceefdaffd",
      "sender": "wumpus",
      "payload": "gmaxwell: it would still be possible to run with only one thread I suppose",
      "action": false,
      "timestamp": "2016-11-10T19:31:55+00:00"
    },
    {
      "id": "6e2e96df252e410ab6086a2025abdb19",
      "sender": "wumpus",
      "payload": "gmaxwell: I'm not terribly worried",
      "action": false,
      "timestamp": "2016-11-10T19:31:59+00:00"
    },
    {
      "id": "45dd74deb32c413a937ad0ffa59faef5",
      "sender": "BlueMatt",
      "payload": "sdaftuar: yes, i was thinking for v1 we ignore that issue",
      "action": false,
      "timestamp": "2016-11-10T19:32:01+00:00"
    },
    {
      "id": "d15eb1c86bd046c7afc873cbae0e6554",
      "sender": "sdaftuar",
      "payload": "ok :)",
      "action": false,
      "timestamp": "2016-11-10T19:32:08+00:00"
    },
    {
      "id": "68107d717c6141d786d4cfb463b49efe",
      "sender": "gmaxwell",
      "payload": "wumpus: I'm not either.",
      "action": false,
      "timestamp": "2016-11-10T19:32:09+00:00"
    },
    {
      "id": "c7a785912f32429a9a34800c4111a6b8",
      "sender": "BlueMatt",
      "payload": "sdaftuar: indeed, eventually we could have some \"oh, these messages take cs_main\" list to make it smart",
      "action": false,
      "timestamp": "2016-11-10T19:32:21+00:00"
    },
    {
      "id": "b4c3ebc6f5ce4f7598accbd3d7919783",
      "sender": "gmaxwell",
      "payload": "Besides, this is a better use of threads (actual concurrency) than some others we have had.",
      "action": false,
      "timestamp": "2016-11-10T19:32:37+00:00"
    },
    {
      "id": "1db8b6b928da4d7f960a629d38fb256d",
      "sender": "BlueMatt",
      "payload": "gmaxwell: very true :(",
      "action": false,
      "timestamp": "2016-11-10T19:32:47+00:00"
    },
    {
      "id": "602c1747e2c74cd7b1265effed737e9d",
      "sender": "wumpus",
      "payload": "gmaxwell: we certainly shouldn't be restricting work towards better performance because there happen to be a few nodes on small systems, those can be handled specifically",
      "action": false,
      "timestamp": "2016-11-10T19:32:58+00:00"
    },
    {
      "id": "5e446adae13d4e83b9b6333d956bde4f",
      "sender": "gmaxwell",
      "payload": "(e.g. connect has a thread, wallet flush thread, etc.)",
      "action": false,
      "timestamp": "2016-11-10T19:33:10+00:00"
    },
    {
      "id": "716bfd5897d741fe8939ea79161ce9cd",
      "sender": "BlueMatt",
      "payload": "we can make up the difference by moving wallet flush into cscheduler thread :)",
      "action": false,
      "timestamp": "2016-11-10T19:33:17+00:00"
    },
    {
      "id": "d1f3083d430842a484319c2ac868aae9",
      "sender": "gmaxwell",
      "payload": "wumpus: agreed, I am just exposing areas of consideration. I support the work.",
      "action": false,
      "timestamp": "2016-11-10T19:33:24+00:00"
    },
    {
      "id": "331b82a63c3449cdb42f71d4ad88d706",
      "sender": "wumpus",
      "payload": "(and I run most of my nodes on 32-bit ARM so it's not like I don't care)",
      "action": false,
      "timestamp": "2016-11-10T19:33:26+00:00"
    },
    {
      "id": "d7bb8728e28a483d9fa1a0c0f725719d",
      "sender": "BlueMatt",
      "payload": "well, and like three net threads to cscheduler",
      "action": false,
      "timestamp": "2016-11-10T19:33:30+00:00"
    },
    {
      "id": "1f853463d6ba45a4b9a4edc95b78ca9a",
      "sender": "wumpus",
      "payload": "yes, we can do thread-stack accounting like that, but let's not get lost in details",
      "action": false,
      "timestamp": "2016-11-10T19:33:59+00:00"
    },
    {
      "id": "6675bd3341a048af81c4509a1faffc11",
      "sender": "morcos",
      "payload": "and while we're at it we can increase script checking threads :)",
      "action": false,
      "timestamp": "2016-11-10T19:34:04+00:00"
    },
    {
      "id": "6a969c9a593046cfacaec8e2944b1e44",
      "sender": "petertodd",
      "payload": "wumpus: oh, on rpi's and the like?",
      "action": false,
      "timestamp": "2016-11-10T19:34:10+00:00"
    },
    {
      "id": "9c6f5904cbc245bea43f9f9852444aec",
      "sender": "wumpus",
      "payload": "petertodd: cubox-i's are my favourite",
      "action": false,
      "timestamp": "2016-11-10T19:34:22+00:00"
    },
    {
      "id": "4849d0a12c174f7a88c28f26283ec993",
      "sender": "petertodd",
      "payload": "wumpus: interesting, thanks!",
      "action": false,
      "timestamp": "2016-11-10T19:34:28+00:00"
    },
    {
      "id": "1c3d46dc7e094cbfa0b6fbb0a4681793",
      "sender": "wumpus",
      "payload": "next topic, I suppose",
      "action": false,
      "timestamp": "2016-11-10T19:35:23+00:00"
    },
    {
      "id": "e052a9f3f33848a1b5e630c2905a5745",
      "sender": "gmaxwell",
      "payload": "(there are other possibilties like decresing the stack size on some threads that don't do much, firefox uses 128k or 256k (I forget) stacks for media processing threads.  So I really don't at all think it's a blocker, just something to keep in mind.)",
      "action": false,
      "timestamp": "2016-11-10T19:35:30+00:00"
    },
    {
      "id": "e99cf6bdd067467e8bf750bcc7247aac",
      "sender": "wumpus",
      "payload": "gmaxwell: indeed you can do that through an environment variable IIRC, I think I even list it in my \"reducing bitcoind memory usage\" document ,if not I should",
      "action": false,
      "timestamp": "2016-11-10T19:36:14+00:00"
    },
    {
      "id": "2f0f72565a9c4db8bb56dcdf844ee540",
      "sender": "wumpus",
      "payload": "#topic 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:36:29+00:00"
    },
    {
      "id": "c08cd7fb2dc74e14b1b7b143678c2618",
      "sender": "wumpus",
      "payload": "@MarcoFalke",
      "action": false,
      "timestamp": "2016-11-10T19:36:49+00:00"
    },
    {
      "id": "c10d72f8fe4c451cbe7d2526fc34c018",
      "sender": "jonasschnelli",
      "payload": "multiwallet support would be nice",
      "action": false,
      "timestamp": "2016-11-10T19:37:07+00:00"
    },
    {
      "id": "43e662583bd24a50beeaf0124fa83cab",
      "sender": "wumpus",
      "payload": "oh he left?",
      "action": false,
      "timestamp": "2016-11-10T19:37:16+00:00"
    },
    {
      "id": "7dd51d6622e644a7bcad237b77e56ef5",
      "sender": "gmaxwell",
      "payload": "wumpus: yes, well you can control it for all threads in an env variable --- though that can result in security problems. :(  But there are some threads where their stack usage is precisely decidable easily. (e.g. the connect thread).",
      "action": false,
      "timestamp": "2016-11-10T19:37:27+00:00"
    },
    {
      "id": "60a5ec57f075412b969bd6a9da9a4d4e",
      "sender": "jtimon",
      "payload": "yep, it seems so",
      "action": false,
      "timestamp": "2016-11-10T19:37:27+00:00"
    },
    {
      "id": "979f359012cf4b6881dc0497c8aee0a9",
      "sender": "jonasschnelli",
      "payload": "[20:36:29]  <@wumpus>\t#topic 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:37:52+00:00"
    },
    {
      "id": "746d900da1424d82a697ff17091cdced",
      "sender": "jonasschnelli",
      "payload": "[20:36:49]  <@wumpus>\t@MarcoFalke",
      "action": false,
      "timestamp": "2016-11-10T19:37:52+00:00"
    },
    {
      "id": "c307d4d24a4c4debb8994ebb5baea9bc",
      "sender": "BlueMatt",
      "payload": "MarcoFalk_:",
      "action": false,
      "timestamp": "2016-11-10T19:38:00+00:00"
    },
    {
      "id": "be0c002565f54ba79010c0d09448e292",
      "sender": "bitcoin-git",
      "payload": "[bitcoin] morcos opened pull request #9123: Remove extraneous LogPrint from fee estimation (master...eliminateFeeWarning) https://github.com/bitcoin/bitcoin/pull/9123",
      "action": false,
      "timestamp": "2016-11-10T19:38:08+00:00"
    },
    {
      "id": "a9614499790f4c108e25d8afaafa67e0",
      "sender": "MarcoFalk_",
      "payload": "Jup, I'd like to hear what is a priority to get in to 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:38:19+00:00"
    },
    {
      "id": "0f2bf20601bd441590639e79e4382a5c",
      "sender": "jtimon",
      "payload": "multiwallet refactoring for 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:38:21+00:00"
    },
    {
      "id": "a35676021075466082b8fb60d83d71b9",
      "sender": "MarcoFalk_",
      "payload": "^",
      "action": false,
      "timestamp": "2016-11-10T19:38:26+00:00"
    },
    {
      "id": "0d580204474247ec9440594f79e3b7c4",
      "sender": "wumpus",
      "payload": "gmaxwell: I'm not sure about security problems, though yes it can cause crashes if you set it that low that the stack underflows",
      "action": false,
      "timestamp": "2016-11-10T19:38:26+00:00"
    },
    {
      "id": "db080976333941e48068ba4b2e023271",
      "sender": "jonasschnelli",
      "payload": "gives MarcoFalk a IRC bouncer for birthday",
      "action": true,
      "timestamp": "2016-11-10T19:38:28+00:00"
    },
    {
      "id": "19838c0449d8465d8372dc8a4f9a33b9",
      "sender": "BlueMatt",
      "payload": "main.cpp split, but thats guaranteed at this point, pretty much",
      "action": false,
      "timestamp": "2016-11-10T19:38:42+00:00"
    },
    {
      "id": "f73872c72bb047868b7ba47d9c9b0b1d",
      "sender": "sdaftuar",
      "payload": "i think the validation speedups from jeremyrubin would be great for 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:38:57+00:00"
    },
    {
      "id": "d6af3092eed74479a20f9edf08f2005a",
      "sender": "MarcoFalk_",
      "payload": "Ok, what is the progess on the net refactor. Is it almost done?",
      "action": false,
      "timestamp": "2016-11-10T19:39:00+00:00"
    },
    {
      "id": "8a9df391ca634e65a2c0ad35c3e98a6e",
      "sender": "wumpus",
      "payload": "gmaxwell: then again the thread stacks are extremely small on some platforms",
      "action": false,
      "timestamp": "2016-11-10T19:39:01+00:00"
    },
    {
      "id": "e3aeb96e702b4b98a11b0ae88a607345",
      "sender": "wumpus",
      "payload": "gmaxwell: linux assigns quite a lot by default",
      "action": false,
      "timestamp": "2016-11-10T19:39:11+00:00"
    },
    {
      "id": "10e33f6f97ce4ba3a1f84d2fcdb97b72",
      "sender": "BlueMatt",
      "payload": "sdaftuar: yea, at least the cucku cache thing",
      "action": false,
      "timestamp": "2016-11-10T19:39:12+00:00"
    },
    {
      "id": "f16f251bbf3d409280cb47a448a12f98",
      "sender": "jonasschnelli",
      "payload": "I think there is not much left for the multi-wallet support. Though, not sure if we can make this happen for 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:39:16+00:00"
    },
    {
      "id": "77faf76c02924f12b85d5b91f192f01c",
      "sender": "jonasschnelli",
      "payload": "Also.. we should add a private-key free mode.",
      "action": false,
      "timestamp": "2016-11-10T19:39:30+00:00"
    },
    {
      "id": "4dc3eea59ad94a2e8264ff4e2b5b2adb",
      "sender": "jonasschnelli",
      "payload": "A safe-mode",
      "action": false,
      "timestamp": "2016-11-10T19:39:43+00:00"
    },
    {
      "id": "a3aa1eaed07c4dfd99f5d9d68eb45748",
      "sender": "gmaxwell",
      "payload": "sdaftuar: I agree, all of them.",
      "action": false,
      "timestamp": "2016-11-10T19:39:44+00:00"
    },
    {
      "id": "27cc381ad2db4db2bf7553e1b8a511eb",
      "sender": "wumpus",
      "payload": "if we all agree to start reviewing wallet changes, I'm sure we can get multi wallet support in 0.14",
      "action": false,
      "timestamp": "2016-11-10T19:39:48+00:00"
    },
    {
      "id": "70a0d53f6c134db59b2c8c726e8014c2",
      "sender": "jtimon",
      "payload": "I would like to move on libconsensus, but so far nothing seems to be happening on that front",
      "action": false,
      "timestamp": "2016-11-10T19:39:52+00:00"
    },
    {
      "id": "6ee78ae186684eec961d64df5c19caa6",
      "sender": "MarcoFalk_",
      "payload": "Some of the wallet changes need rebase",
      "action": false,
      "timestamp": "2016-11-10T19:40:00+00:00"
    },
    {
      "id": "bc4cccc49e9d45019159347644a25881",
      "sender": "jonasschnelli",
      "payload": "wumpus: Nice! I can review some stuff next week.",
      "action": false,
      "timestamp": "2016-11-10T19:40:12+00:00"
    },
    {
      "id": "ab513d64630a45ab97d6c2b91b487676",
      "sender": "gmaxwell",
      "payload": "In terms of wallet features I think some kind of multiwallet support would have the greatest ratio of benefit to cost+risk.",
      "action": false,
      "timestamp": "2016-11-10T19:40:15+00:00"
    },
    {
      "id": "2cb19af764b543c49e9c0aff87f95e7d",
      "sender": "gmaxwell",
      "payload": "It's just software eng.",
      "action": false,
      "timestamp": "2016-11-10T19:40:23+00:00"
    },
    {
      "id": "d5c3b50982364762934b6ffc281802f9",
      "sender": "jonasschnelli",
      "payload": "gmaxwell: ack!",
      "action": false,
      "timestamp": "2016-11-10T19:40:23+00:00"
    },
    {
      "id": "cd911be4d1b440bea652890739253ecb",
      "sender": "jonasschnelli",
      "payload": "Also, with the current fundrawtransaction options, you can perfectly run watch-only wallets",
      "action": false,
      "timestamp": "2016-11-10T19:41:01+00:00"
    },
    {
      "id": "97efba0c0d6b42d3af73a0dce0184665",
      "sender": "cfields",
      "payload": "I'm aiming to get net.h/cpp split in half in the next ~week also.",
      "action": false,
      "timestamp": "2016-11-10T19:41:56+00:00"
    },
    {
      "id": "de1dd96fda324eed83dac75f40b5f217",
      "sender": "jonasschnelli",
      "payload": "So.. theres a project: https://github.com/bitcoin/bitcoin/projects/2",
      "action": false,
      "timestamp": "2016-11-10T19:41:58+00:00"
    },
    {
      "id": "114fa0621072416fa3ebee9933ecacb9",
      "sender": "jonasschnelli",
      "payload": "for MW support",
      "action": false,
      "timestamp": "2016-11-10T19:42:02+00:00"
    },
    {
      "id": "86de371c34564190926b6f28c1cb3f84",
      "sender": "cfields",
      "payload": "(for the 0.14 list)",
      "action": false,
      "timestamp": "2016-11-10T19:42:03+00:00"
    },
    {
      "id": "bba4f2b7c36d49c7a53c22466a72a74f",
      "sender": "gmaxwell",
      "payload": "So I think multiwallet should be a greater priority.  Also while 0.14 has a lot of really great infrastructural changes, I think it has relatively few ordinary user visible improvements.",
      "action": false,
      "timestamp": "2016-11-10T19:42:04+00:00"
    },
    {
      "id": "f2fb5b87d2614fffb3b01afa16dbdc80",
      "sender": "paveljanik",
      "payload": "Network on/off in GUI please :-)",
      "action": false,
      "timestamp": "2016-11-10T19:42:26+00:00"
    },
    {
      "id": "4afa238709f645e48f83b7fea4c8ac65",
      "sender": "jonasschnelli",
      "payload": "paveljanik: Yes. I'll make that happen soon.",
      "action": false,
      "timestamp": "2016-11-10T19:42:37+00:00"
    },
    {
      "id": "6e6bcf59f0194db38dfada8a7ed75476",
      "sender": "wumpus",
      "payload": "because most of the focus has been on 0.13.1, 0.14 will be somewhat of a smaller release, I don't think that's a problem",
      "action": false,
      "timestamp": "2016-11-10T19:42:49+00:00"
    },
    {
      "id": "bbbc4df2052d4610b4539f4105e366d0",
      "sender": "gmaxwell",
      "payload": "There are a number of other things I'd like to work on, like more bandwidth usage controls. Improvement to header fetching logic... but I think it's not useful to speak to work that hasn't even started.",
      "action": false,
      "timestamp": "2016-11-10T19:43:05+00:00"
    },
    {
      "id": "0c0a26b6d56e47a598b6222e6a76cba6",
      "sender": "jonasschnelli",
      "payload": "I was hoping the mempool stats can be in 0.14... but not sure if there are enough reviews",
      "action": false,
      "timestamp": "2016-11-10T19:43:19+00:00"
    },
    {
      "id": "25823306499649cba533457bfffb3fc7",
      "sender": "BlueMatt",
      "payload": "bumpfee",
      "action": false,
      "timestamp": "2016-11-10T19:43:21+00:00"
    },
    {
      "id": "637dcf47b0c24dbcad7069b8ef6ef31f",
      "sender": "MarcoFalk_",
      "payload": "I was pinging luke-jr on #8776, but haven't heard anything about luke-jr recently",
      "action": false,
      "timestamp": "2016-11-10T19:43:22+00:00"
    },
    {
      "id": "d1151389f5bd41f4a175426323bb6520",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/8776 | Wallet refactoring leading up to multiwallet by luke-jr \u00c3\u0082\u00c2\u00b7 Pull Request #8776 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2016-11-10T19:43:23+00:00"
    },
    {
      "id": "db53d4879652494abd2e1fec1c6581d8",
      "sender": "MarcoFalk_",
      "payload": "Hope hes doing fine",
      "action": false,
      "timestamp": "2016-11-10T19:43:26+00:00"
    },
    {
      "id": "7d5015ae4a85464a9a65dea5ecfa5043",
      "sender": "paveljanik",
      "payload": "jonasschnelli, mempool stats: count with me for review!",
      "action": false,
      "timestamp": "2016-11-10T19:43:54+00:00"
    },
    {
      "id": "5b45c3f2698f4bfcb6956f5ecee881a3",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: yeah! Bumpfee should get some review. Guys! https://github.com/bitcoin/bitcoin/pull/8456",
      "action": false,
      "timestamp": "2016-11-10T19:44:12+00:00"
    },
    {
      "id": "703f71fcc88e46c69ffcd15e396991e6",
      "sender": "paveljanik",
      "payload": "it would be nice to have a estimatefee 2, 3, 4 graph also...",
      "action": false,
      "timestamp": "2016-11-10T19:44:26+00:00"
    },
    {
      "id": "0bc40b087a854b2ea8618cb83a5d3049",
      "sender": "wumpus",
      "payload": "cfields: weren't you working on bandwidth throttling w/ the P2P libevent switch?",
      "action": false,
      "timestamp": "2016-11-10T19:44:29+00:00"
    },
    {
      "id": "59619cf5c3a74f6f8a536c0214c75f09",
      "sender": "MarcoFalk_",
      "payload": "paveljanik: I think the review-intense part is #8501",
      "action": false,
      "timestamp": "2016-11-10T19:44:30+00:00"
    },
    {
      "id": "7a08de770f3d4c409916a9697dfb133e",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/8501 | Add mempool statistics collector by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #8501 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2016-11-10T19:44:32+00:00"
    },
    {
      "id": "628fb4f04e26463387aebe234cbdaa59",
      "sender": "gmaxwell",
      "payload": "We'll see what shows up, in any case.",
      "action": false,
      "timestamp": "2016-11-10T19:44:36+00:00"
    },
    {
      "id": "24fa892925854eb88ea29ca71bb0bf77",
      "sender": "wumpus",
      "payload": "yeah there's not much point in listing all major open pulls here now",
      "action": false,
      "timestamp": "2016-11-10T19:44:51+00:00"
    },
    {
      "id": "02c7e001ccab4347bccbb5ab6ffd20e2",
      "sender": "MarcoFalk_",
      "payload": "paveljanik: The gui change is rel. simple",
      "action": false,
      "timestamp": "2016-11-10T19:44:54+00:00"
    },
    {
      "id": "13870bd82f18461f8911e26a081737fe",
      "sender": "jonasschnelli",
      "payload": "Yes. #8501 is groundwork for mempool stats. Has no review so far",
      "action": false,
      "timestamp": "2016-11-10T19:45:06+00:00"
    },
    {
      "id": "27be96fae42f466db39b63e1ae84f310",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/8501 | Add mempool statistics collector by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #8501 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2016-11-10T19:45:08+00:00"
    },
    {
      "id": "04c1e424b161430bbd57e08543ddaa63",
      "sender": "wumpus",
      "payload": "we know about them, what they need is more review and testing :)",
      "action": false,
      "timestamp": "2016-11-10T19:45:11+00:00"
    },
    {
      "id": "9d031e647a1941d596bd8de8b12a1050",
      "sender": "MarcoFalk_",
      "payload": "(and rebase) *ducks*",
      "action": false,
      "timestamp": "2016-11-10T19:45:25+00:00"
    },
    {
      "id": "b375c6d8fcd24b61aa5cb341957858e7",
      "sender": "morcos",
      "payload": "I'm going to do at least some minor (and needed) improvements to fee estimation.  Is  there any interest on estimates for longer than 25 blocks?  Or should I continue to punt on that?",
      "action": false,
      "timestamp": "2016-11-10T19:45:26+00:00"
    },
    {
      "id": "6f98f58affe24cdb9458151d447ae72b",
      "sender": "cfields",
      "payload": "wumpus: yes, i don't think that's likely for 0.14 though. The libevent changes are going to be quite different from what I originally intended, I think",
      "action": false,
      "timestamp": "2016-11-10T19:45:38+00:00"
    },
    {
      "id": "e38de1211fd3495d9193e9413bf4ee95",
      "sender": "gmaxwell",
      "payload": "WRT review, I believe that multiwallet review is fundimentally easier than bumpfee for example, because in bumpfee I need to reason about a complex state machine, the effect on the network, corner cases with double spends, etc.  And multiwallet is 98% \"does this crash or not\". :)",
      "action": false,
      "timestamp": "2016-11-10T19:45:41+00:00"
    },
    {
      "id": "d99547e7c02f4b0d95a370234f850a3c",
      "sender": "wumpus",
      "payload": "cfields: it's taking quite longer than we expected :)",
      "action": false,
      "timestamp": "2016-11-10T19:45:55+00:00"
    },
    {
      "id": "6cb0e9ffe7b44621abe1e5f4b15a533b",
      "sender": "wumpus",
      "payload": "gmaxwell: so start reviewing multiwallet pulls then :D",
      "action": false,
      "timestamp": "2016-11-10T19:46:13+00:00"
    },
    {
      "id": "3fc7ce5b618c4a1b98ecebc60f6a1f47",
      "sender": "BlueMatt",
      "payload": "wumpus: lol, doesnt everything",
      "action": false,
      "timestamp": "2016-11-10T19:46:18+00:00"
    },
    {
      "id": "3baa0eed4fc8486b923662fd8e5ff457",
      "sender": "wumpus",
      "payload": "(or did you already?)",
      "action": false,
      "timestamp": "2016-11-10T19:46:21+00:00"
    },
    {
      "id": "2373691cd9a940fcb923c3422ea18f45",
      "sender": "gmaxwell",
      "payload": "morcos: mempool backlog levels are not great enough where estimates >25 blocks matter that much I think, currently.",
      "action": false,
      "timestamp": "2016-11-10T19:46:30+00:00"
    },
    {
      "id": "bd2844024ae74ce88fb92e75fb08e646",
      "sender": "jtimon",
      "payload": "btw maybe we can talk about the \"custom mode\" (separately from the blocksigning mode which I think it's unlikely to get to master with the union and the global, but we can just rebase every release)",
      "action": false,
      "timestamp": "2016-11-10T19:46:35+00:00"
    },
    {
      "id": "8f8c9621fe374aafba31980498946cf4",
      "sender": "cfields",
      "payload": "wumpus: yes, sorry for that. I vastly underestimated the refactor impact.",
      "action": false,
      "timestamp": "2016-11-10T19:46:39+00:00"
    },
    {
      "id": "0fa4114b593640e6a074d14bd8a809fe",
      "sender": "wumpus",
      "payload": "BlueMatt: yes, I'm kind of overwhelmed already, so I don't care that much some things are going slower",
      "action": false,
      "timestamp": "2016-11-10T19:46:59+00:00"
    },
    {
      "id": "0739196a928943d09ebc99ac4d830959",
      "sender": "morcos",
      "payload": "gmaxwell: But its often possible to pay a much lower fee if you are willing to wait 100 blocks or whatever...  So in the interest of keeping fees down.., but I just don't know if thats much of a use case.",
      "action": false,
      "timestamp": "2016-11-10T19:47:11+00:00"
    },
    {
      "id": "796b19bbbf504fbea0e91ed0522c7b94",
      "sender": "gmaxwell",
      "payload": "morcos: fun graph, fee availble at the time of a block (red) vs immediately after (green): https://people.xiph.org/~greg/temp/fee_avail.png  thats a week of data,  also a different reason during the high fee floods a couple weeks ago: https://people.xiph.org/~greg/temp/fee_avail2.png",
      "action": false,
      "timestamp": "2016-11-10T19:47:39+00:00"
    },
    {
      "id": "96d652439d1f48648a31dc08b75ca00c",
      "sender": "gmaxwell",
      "payload": "morcos: interesting, if it would make a big difference I think it would be interesting. I wasn't thinking it would make much of a difference.",
      "action": false,
      "timestamp": "2016-11-10T19:48:09+00:00"
    },
    {
      "id": "a45a8e08501c44e5942c140d648a7fcb",
      "sender": "wumpus",
      "payload": "cfields: my worry is that some things are blocked on it, e.g. gmaxwell talks about wanting to do things with bandwidth management, those things would all be easier if we had switched to libevent, instead of trying to cram it into the current networking backend",
      "action": false,
      "timestamp": "2016-11-10T19:48:27+00:00"
    },
    {
      "id": "7470a62ecb4743c8863e9a2d8fd47047",
      "sender": "gmaxwell",
      "payload": "morcos: I still wouldn't priortize it over general improvements.",
      "action": false,
      "timestamp": "2016-11-10T19:48:29+00:00"
    },
    {
      "id": "85456cbe18a44c13b281f0c3e08cf84f",
      "sender": "morcos",
      "payload": "gmaxwell: tremendous difference. i'm pretty sure you could always pay about 2 sat/byte if you are wiling to wait a couple days..  limiting factor might be the 3 day eviction.",
      "action": false,
      "timestamp": "2016-11-10T19:49:06+00:00"
    },
    {
      "id": "5b561d73e5a14898b8a66e4721fac341",
      "sender": "gmaxwell",
      "payload": "Yes, I've held off on doing too much more with bandwidth management due to that.  There are somethings we can do, for example delaying inv relays when bandwidth starved.",
      "action": false,
      "timestamp": "2016-11-10T19:49:13+00:00"
    },
    {
      "id": "cd10a8a272394061886d78535f82f3e8",
      "sender": "cfields",
      "payload": "wumpus: ACK. I'll pick up the pace.",
      "action": false,
      "timestamp": "2016-11-10T19:49:36+00:00"
    },
    {
      "id": "b05c136dfd014b11acea615c02088455",
      "sender": "gmaxwell",
      "payload": "morcos: my publically reachable nodes don't really expirence 3 day eviction, -- some clown or another inevitably connects and restores the evicted stuff. :P",
      "action": false,
      "timestamp": "2016-11-10T19:49:49+00:00"
    },
    {
      "id": "cfa4bff26517438490cce4b536a33bee",
      "sender": "sipa",
      "payload": "gmaxwell, cfields: it sounds to me like the bandwidth management you're talking about is very different and probably won't have much code conflicts",
      "action": false,
      "timestamp": "2016-11-10T19:50:09+00:00"
    },
    {
      "id": "485613819ca0481c914decdfd4d12243",
      "sender": "sipa",
      "payload": "as gmaxwell is talking about application level decisions that afaik don't even affect anything at the network layer",
      "action": false,
      "timestamp": "2016-11-10T19:50:36+00:00"
    },
    {
      "id": "f45a8def037f4031bea03fa1fcfba570",
      "sender": "gmaxwell",
      "payload": "Well I specifically just mentioned the part of the management scope that wouldn't have conflicts. (and I think should probably be done first:  to quickly offer something but then relay it out slowly is somewhat peer abusive. :P )",
      "action": false,
      "timestamp": "2016-11-10T19:50:53+00:00"
    },
    {
      "id": "915b9725f337411e97696880531e8730",
      "sender": "cfields",
      "payload": "sipa: indeed",
      "action": false,
      "timestamp": "2016-11-10T19:51:41+00:00"
    },
    {
      "id": "1d985c8836f34834a1c7302bb215d7b5",
      "sender": "wumpus",
      "payload": "other topics?",
      "action": false,
      "timestamp": "2016-11-10T19:53:44+00:00"
    },
    {
      "id": "d7112ea3258b48db827473febd0500a2",
      "sender": "gmaxwell",
      "payload": "we should say hello to all the americans that missed the timezone change.",
      "action": false,
      "timestamp": "2016-11-10T19:54:19+00:00"
    },
    {
      "id": "7f184cc632254744b09163b1dcad88bf",
      "sender": "gmaxwell",
      "payload": "and are just arriving now. :P",
      "action": false,
      "timestamp": "2016-11-10T19:54:25+00:00"
    },
    {
      "id": "940d3b980afc401c992e6f0c71d60ad4",
      "sender": "jcorgan",
      "payload": "heh",
      "action": false,
      "timestamp": "2016-11-10T19:54:33+00:00"
    },
    {
      "id": "031bd59fd49d4b6091fef12be97f77ac",
      "sender": "petertodd",
      "payload": "gmaxwell: canadians too :)",
      "action": false,
      "timestamp": "2016-11-10T19:54:48+00:00"
    },
    {
      "id": "83e821334a9d49b599b42d00cbaf186c",
      "sender": "gmaxwell",
      "payload": "Hi guys.",
      "action": false,
      "timestamp": "2016-11-10T19:54:56+00:00"
    },
    {
      "id": "a9012d3877564e3b965b272c8c30ec31",
      "sender": "achow101",
      "payload": "hi",
      "action": false,
      "timestamp": "2016-11-10T19:55:00+00:00"
    },
    {
      "id": "317661b5d7db4c648842ba3644c06470",
      "sender": "gmaxwell",
      "payload": "Welcome to the end of the meeting.",
      "action": false,
      "timestamp": "2016-11-10T19:55:00+00:00"
    },
    {
      "id": "86091608643446b2895ab2c206b53f72",
      "sender": "wumpus",
      "payload": "yes, welcome",
      "action": false,
      "timestamp": "2016-11-10T19:55:46+00:00"
    },
    {
      "id": "53ba266b6a134e31b2a42f661b974daa",
      "sender": "sipa",
      "payload": "kthxbye",
      "action": false,
      "timestamp": "2016-11-10T19:55:50+00:00"
    },
    {
      "id": "1bb835739489430cb988064f03e57f2a",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2016-11-10T19:55:51+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "a2d3b8c256814e9b9c9906afca1816f4",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2016-11-10T19:03:00+00:00"
      },
      "operand": null,
      "id": "a2d3b8c256814e9b9c9906afca1816f4",
      "timestamp": "2016-11-10T19:03:00+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "f56984f6b8fe41a1be29a622264c11fc",
        "sender": "wumpus",
        "payload": "#topic hybrid SPV",
        "action": false,
        "timestamp": "2016-11-10T19:04:51+00:00"
      },
      "operand": "hybrid SPV",
      "id": "f56984f6b8fe41a1be29a622264c11fc",
      "timestamp": "2016-11-10T19:04:51+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "9dbd25f8a2d44a1ba2d3ee452d181bcd",
        "sender": "wumpus",
        "payload": "#topic  multithread ProcessMessages",
        "action": false,
        "timestamp": "2016-11-10T19:20:34+00:00"
      },
      "operand": "multithread ProcessMessages",
      "id": "9dbd25f8a2d44a1ba2d3ee452d181bcd",
      "timestamp": "2016-11-10T19:20:34+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "2f0f72565a9c4db8bb56dcdf844ee540",
        "sender": "wumpus",
        "payload": "#topic 0.14",
        "action": false,
        "timestamp": "2016-11-10T19:36:29+00:00"
      },
      "operand": "0.14",
      "id": "2f0f72565a9c4db8bb56dcdf844ee540",
      "timestamp": "2016-11-10T19:36:29+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "d1151389f5bd41f4a175426323bb6520",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/8776 | Wallet refactoring leading up to multiwallet by luke-jr \u00c3\u0082\u00c2\u00b7 Pull Request #8776 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2016-11-10T19:43:23+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/8776",
      "id": "d1151389f5bd41f4a175426323bb6520",
      "timestamp": "2016-11-10T19:43:23+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "7a08de770f3d4c409916a9697dfb133e",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/8501 | Add mempool statistics collector by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #8501 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2016-11-10T19:44:32+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/8501",
      "id": "7a08de770f3d4c409916a9697dfb133e",
      "timestamp": "2016-11-10T19:44:32+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "27be96fae42f466db39b63e1ae84f310",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/8501 | Add mempool statistics collector by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #8501 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2016-11-10T19:45:08+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/8501",
      "id": "27be96fae42f466db39b63e1ae84f310",
      "timestamp": "2016-11-10T19:45:08+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "1bb835739489430cb988064f03e57f2a",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2016-11-10T19:55:51+00:00"
      },
      "operand": null,
      "id": "1bb835739489430cb988064f03e57f2a",
      "timestamp": "2016-11-10T19:55:51+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}