{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "d7d4ced98d1c422cbd343c4bf170c661",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 41,
    "lightningbot": 2,
    "jonasschnelli": 74,
    "kanzure": 9,
    "instagibbs": 6,
    "cfields": 6,
    "jtimon": 15,
    "BlueMatt": 67,
    "gribble": 12,
    "sipa": 59,
    "achow101": 8,
    "luke-jr": 26,
    "petertodd": 15,
    "gmaxwell": 41,
    "bitcoin-git": 1,
    "edcba": 1,
    "praxeology": 1
  },
  "start_time": "2017-04-27T19:02:01+00:00",
  "end_time": "2017-04-27T20:01:43+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": "bitcoind expiration",
  "messages": [
    {
      "id": "2aec4b0b203b40efa69966b7def6f8b5",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2017-04-27T19:02:01+00:00"
    },
    {
      "id": "6dfa69874a8a4410ab1ecac82258e92d",
      "sender": "lightningbot",
      "payload": "Meeting started Thu Apr 27 19:02:01 2017 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2017-04-27T19:02:01+00:00"
    },
    {
      "id": "5cbec1b2f9ca4728af0db3d697241ad5",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2017-04-27T19:02:01+00:00"
    },
    {
      "id": "12a3bb9dd46148fe8d6ff6c5f4ebdca3",
      "sender": "jonasschnelli",
      "payload": "I have two topic proposals: \"hd-restore\" and \"limited NODE_NETWORK (NODE_NETWORK_LIMITED) signaling\"",
      "action": false,
      "timestamp": "2017-04-27T19:02:31+00:00"
    },
    {
      "id": "00119ed998d44cf88b3d3a00aa3ab1fc",
      "sender": "wumpus",
      "payload": "#bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt",
      "action": false,
      "timestamp": "2017-04-27T19:02:33+00:00"
    },
    {
      "id": "23e8227c1c5e435faa7e70e1da1f1966",
      "sender": "wumpus",
      "payload": "instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 instagibbs",
      "action": false,
      "timestamp": "2017-04-27T19:02:33+00:00"
    },
    {
      "id": "656fa03f1ba04e66911144ac87f6828a",
      "sender": "kanzure",
      "payload": "hi.",
      "action": false,
      "timestamp": "2017-04-27T19:02:39+00:00"
    },
    {
      "id": "090516e3b09c4502bfcb49e1371035cd",
      "sender": "instagibbs",
      "payload": "here",
      "action": false,
      "timestamp": "2017-04-27T19:02:44+00:00"
    },
    {
      "id": "d58fdc4e2d5740ab8f6dfc33563987f5",
      "sender": "cfields",
      "payload": "hi",
      "action": false,
      "timestamp": "2017-04-27T19:02:47+00:00"
    },
    {
      "id": "1782e01c49cc47e887d2407302de14af",
      "sender": "wumpus",
      "payload": "#topic hd-restore (jonasschnelli)",
      "action": false,
      "timestamp": "2017-04-27T19:03:17+00:00"
    },
    {
      "id": "2d3cf876ea4c4fcc97633b8941d8334e",
      "sender": "jtimon",
      "payload": "suggested topic: summary of BlueMatt's overall plan for libconsensu",
      "action": false,
      "timestamp": "2017-04-27T19:03:21+00:00"
    },
    {
      "id": "2a9ad02e0f0a4ce78381719125025aa4",
      "sender": "kanzure",
      "payload": "is this 10240?",
      "action": false,
      "timestamp": "2017-04-27T19:03:41+00:00"
    },
    {
      "id": "89364f521cee4f9fa1d14641fc058ba1",
      "sender": "jtimon",
      "payload": "if BlueMatt wants of course",
      "action": false,
      "timestamp": "2017-04-27T19:03:45+00:00"
    },
    {
      "id": "66b384f5ba4f4faca2566054f8a5e2c9",
      "sender": "BlueMatt",
      "payload": "jtimon: k, can share. jonasschnelli you have the floor :)",
      "action": false,
      "timestamp": "2017-04-27T19:03:47+00:00"
    },
    {
      "id": "eef76cd8e9d14d0286da1bef1615a80f",
      "sender": "jonasschnelli",
      "payload": "Re. HD restore. I'm not sure if we should always try to restore funds or if we should check for the bestblock and compare it to the chain tip and only then restore",
      "action": false,
      "timestamp": "2017-04-27T19:03:50+00:00"
    },
    {
      "id": "1a18ce45674f4540841bc9764b228c3c",
      "sender": "jonasschnelli",
      "payload": "The main stuff is in #10240",
      "action": false,
      "timestamp": "2017-04-27T19:04:12+00:00"
    },
    {
      "id": "1be81c61f61743e88724075d7035ed83",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10240 | [WIP] Add basic HD wallet restore functionality by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #10240 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:04:13+00:00"
    },
    {
      "id": "85728f8480b24f1c955b2566dda9a8b0",
      "sender": "instagibbs",
      "payload": "ack libconsensus discussion",
      "action": false,
      "timestamp": "2017-04-27T19:04:24+00:00"
    },
    {
      "id": "753883916de142fc9a1c5d2d1586f528",
      "sender": "jonasschnelli",
      "payload": "But I think we should only restore if the wallet's bestblock lacks behind",
      "action": false,
      "timestamp": "2017-04-27T19:04:34+00:00"
    },
    {
      "id": "df4d4a1b1b3a48a895ecca2cf3f385b4",
      "sender": "instagibbs",
      "payload": "oh sorry, didnt see topic set already :)",
      "action": false,
      "timestamp": "2017-04-27T19:04:35+00:00"
    },
    {
      "id": "e0a8eee5e60b42d4991dbc1449938f94",
      "sender": "jonasschnelli",
      "payload": "Because...",
      "action": false,
      "timestamp": "2017-04-27T19:04:44+00:00"
    },
    {
      "id": "e3ca8d17a13447ac8b57028f7bdde43b",
      "sender": "jonasschnelli",
      "payload": "Encrypted wallets may need to unlock",
      "action": false,
      "timestamp": "2017-04-27T19:04:51+00:00"
    },
    {
      "id": "6d5e5a90ebc040fbb92a7b8b8a174bbd",
      "sender": "jonasschnelli",
      "payload": "And also for performance / log reasons",
      "action": false,
      "timestamp": "2017-04-27T19:05:06+00:00"
    },
    {
      "id": "cc1f835584a5497ba76680e6eabda8fd",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: i assumed we'd always keep a buffer of X pubkeys around",
      "action": false,
      "timestamp": "2017-04-27T19:05:09+00:00"
    },
    {
      "id": "7abe91d3cd9e483c9b2f5a9905b76048",
      "sender": "BlueMatt",
      "payload": "because you may have wallet \"forks\"",
      "action": false,
      "timestamp": "2017-04-27T19:05:15+00:00"
    },
    {
      "id": "9fa08cbd96ef4f30bb077100005a789f",
      "sender": "BlueMatt",
      "payload": "not sure what you mean by \"restore\"?",
      "action": false,
      "timestamp": "2017-04-27T19:05:21+00:00"
    },
    {
      "id": "5416ab83b8b147189c3097a45ecd0704",
      "sender": "BlueMatt",
      "payload": "(feel free to tell me to shut up and go read the pr)",
      "action": false,
      "timestamp": "2017-04-27T19:05:28+00:00"
    },
    {
      "id": "5ce1a721f460408da8177fe3e621f359",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: By restore I mean always check the keypool keys and auto-extend (if only 50 [TBD] keys are left, topup to 100 [TBD]",
      "action": false,
      "timestamp": "2017-04-27T19:05:55+00:00"
    },
    {
      "id": "693e08a18dd846d38a76c05353a1f4dd",
      "sender": "kanzure",
      "payload": "looks like it's re: finding relevant transactions",
      "action": false,
      "timestamp": "2017-04-27T19:05:57+00:00"
    },
    {
      "id": "a99fb8f3cda64194a322f73998f4ac95",
      "sender": "jonasschnelli",
      "payload": "If we always restore... we would need to unlock encrypted wallet...",
      "action": false,
      "timestamp": "2017-04-27T19:06:19+00:00"
    },
    {
      "id": "926b24f981e348e38f8943e834756756",
      "sender": "jonasschnelli",
      "payload": "(more often)",
      "action": false,
      "timestamp": "2017-04-27T19:06:29+00:00"
    },
    {
      "id": "b3891c55258e4e5f8a65b70ed2f5bfe4",
      "sender": "sipa",
      "payload": "jonasschnelli: my assumption was that we'd always mark seen keys as used (and we should do that independently)",
      "action": false,
      "timestamp": "2017-04-27T19:06:30+00:00"
    },
    {
      "id": "55b4e4359536446ab3aa066852407e13",
      "sender": "sipa",
      "payload": "jonasschnelli: we should also always extend the keypool when we can",
      "action": false,
      "timestamp": "2017-04-27T19:06:43+00:00"
    },
    {
      "id": "ad48e61e927542a08983e2664f08225b",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: ah, you mean like \"when do we extend keypool to watch buffer\"?",
      "action": false,
      "timestamp": "2017-04-27T19:06:54+00:00"
    },
    {
      "id": "757b4e85030148648e6a4208eb8383a0",
      "sender": "jonasschnelli",
      "payload": "sipa: Yes. But what if we can't?",
      "action": false,
      "timestamp": "2017-04-27T19:06:56+00:00"
    },
    {
      "id": "b060bb9276c842c99712397e549d078e",
      "sender": "sipa",
      "payload": "jonasschnelli: and if the keypool runs out in a non-interactive setting, shutdown",
      "action": false,
      "timestamp": "2017-04-27T19:06:59+00:00"
    },
    {
      "id": "e4cbbb7a13554b82928962651367d624",
      "sender": "achow101",
      "payload": "If it needs to generate keys you could prompt the user right when the main gui pops up",
      "action": false,
      "timestamp": "2017-04-27T19:07:00+00:00"
    },
    {
      "id": "b78a77eb4e8f47e5b62a1094ca561512",
      "sender": "jonasschnelli",
      "payload": "And whats a save gap limit? I would assume >100 keys.",
      "action": false,
      "timestamp": "2017-04-27T19:07:15+00:00"
    },
    {
      "id": "7ea4b583f12242ecbd4436fe7e5a77e1",
      "sender": "BlueMatt",
      "payload": "another option would be to stop updating best seen block",
      "action": false,
      "timestamp": "2017-04-27T19:07:18+00:00"
    },
    {
      "id": "c70b602e2c3a440b82fd62b79d910393",
      "sender": "BlueMatt",
      "payload": "and then kick off a background rescan-from-that-height when wallet next unlocks",
      "action": false,
      "timestamp": "2017-04-27T19:07:29+00:00"
    },
    {
      "id": "d421260d111b4f1c8efbfa17e351b24f",
      "sender": "jonasschnelli",
      "payload": "If someone has handed out 101 keys and only the position 101 has payed...",
      "action": false,
      "timestamp": "2017-04-27T19:07:38+00:00"
    },
    {
      "id": "bb18d7bb4cdb4af78dd08cbf6e8febb8",
      "sender": "BlueMatt",
      "payload": "if gap goes under some threshold",
      "action": false,
      "timestamp": "2017-04-27T19:07:38+00:00"
    },
    {
      "id": "276824621d4446be9687355524aefb6a",
      "sender": "kanzure",
      "payload": "yea, trigger on next unlock is better than achow101 popup",
      "action": false,
      "timestamp": "2017-04-27T19:07:45+00:00"
    },
    {
      "id": "aace9da8ad764c7ea1ab1276d174e349",
      "sender": "BlueMatt",
      "payload": "achow101: needs to be cli-compatible, though",
      "action": false,
      "timestamp": "2017-04-27T19:07:58+00:00"
    },
    {
      "id": "b23f03a70f83467d909e024065b15b60",
      "sender": "jonasschnelli",
      "payload": "achow101: GUI is solvable..",
      "action": false,
      "timestamp": "2017-04-27T19:08:03+00:00"
    },
    {
      "id": "b41eb83a944c42bdb066ade5833fc21f",
      "sender": "sipa",
      "payload": "jonasschnelli: if we fix the bdb flushing stupidity, generating new keys becomes very cheap",
      "action": false,
      "timestamp": "2017-04-27T19:08:07+00:00"
    },
    {
      "id": "831159a99a134b77a65d3cd1360cbc41",
      "sender": "jonasschnelli",
      "payload": "I don't know how to solve the non GUI way",
      "action": false,
      "timestamp": "2017-04-27T19:08:11+00:00"
    },
    {
      "id": "67c2d3d626c5444db9e3b580341ee50c",
      "sender": "sipa",
      "payload": "jonasschnelli: shutdown. make sure it doesn't happen",
      "action": false,
      "timestamp": "2017-04-27T19:08:20+00:00"
    },
    {
      "id": "7011bfe4e2574e94ba72c604a9e1a62a",
      "sender": "achow101",
      "payload": "jonasschnelli: how would you hand out 101 keys if the 101st wasn't generated yet?",
      "action": false,
      "timestamp": "2017-04-27T19:08:21+00:00"
    },
    {
      "id": "d304f63662f944ce9ede445f0a9acc7a",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: i mean keys are cheap, can do 250 or 500 or something crazy",
      "action": false,
      "timestamp": "2017-04-27T19:08:29+00:00"
    },
    {
      "id": "5c3d6675b0f2445197b32f2f91400317",
      "sender": "jonasschnelli",
      "payload": "sipa: But how to unlock during init in the first place?",
      "action": false,
      "timestamp": "2017-04-27T19:08:35+00:00"
    },
    {
      "id": "1ff4f9efc1664f4381c82e835fe3a904",
      "sender": "sipa",
      "payload": "jonasschnelli: you can't",
      "action": false,
      "timestamp": "2017-04-27T19:08:40+00:00"
    },
    {
      "id": "c27550680bfb4f7daac3657820385125",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: but cant we just use the keypool number now as the \"buffer\"?",
      "action": false,
      "timestamp": "2017-04-27T19:08:47+00:00"
    },
    {
      "id": "fdd9b96831f14a74b91dbb4ee87e33b3",
      "sender": "sipa",
      "payload": "ah, i see what you mean",
      "action": false,
      "timestamp": "2017-04-27T19:08:48+00:00"
    },
    {
      "id": "ac7035146504405890348d1ec95c857c",
      "sender": "jonasschnelli",
      "payload": "But right after we rescan and sync",
      "action": false,
      "timestamp": "2017-04-27T19:08:50+00:00"
    },
    {
      "id": "63e82c268703430a8cfbe1ae7f47b631",
      "sender": "BlueMatt",
      "payload": "and, like, the lower bound should be like keypool count / 2",
      "action": false,
      "timestamp": "2017-04-27T19:09:07+00:00"
    },
    {
      "id": "f1a195e76a5746fbb969b0c18aefd305",
      "sender": "BlueMatt",
      "payload": "sipa: you cant just shutdown mid-sync",
      "action": false,
      "timestamp": "2017-04-27T19:09:21+00:00"
    },
    {
      "id": "84f3c252aed141bc8588bce93aaaeff5",
      "sender": "jonasschnelli",
      "payload": "BlueMatt: Yes. But with the current 100 default, we would enforce a shutdown on startup for encrypted wallets",
      "action": false,
      "timestamp": "2017-04-27T19:09:30+00:00"
    },
    {
      "id": "4b2d062bed4e4c7ca3c3d07f48be61bf",
      "sender": "sipa",
      "payload": "BlueMatt: why not?",
      "action": false,
      "timestamp": "2017-04-27T19:09:33+00:00"
    },
    {
      "id": "8266f0e9a13a4b95b2dbc0a7a42734d9",
      "sender": "sipa",
      "payload": "it's an error condition that we cannot recover from",
      "action": false,
      "timestamp": "2017-04-27T19:09:47+00:00"
    },
    {
      "id": "0d99022fbb224234abbdea65f469b62e",
      "sender": "BlueMatt",
      "payload": "re-proposes that we stop updating wallet's best height if our keypool falls below keypool / 2",
      "action": true,
      "timestamp": "2017-04-27T19:09:48+00:00"
    },
    {
      "id": "f085e0e702fb41c29ea4ba19f26c4e23",
      "sender": "BlueMatt",
      "payload": "and then rescan when keypool next gets filled",
      "action": false,
      "timestamp": "2017-04-27T19:09:56+00:00"
    },
    {
      "id": "de9e848755294b429e356587fa5c00b5",
      "sender": "sipa",
      "payload": "hmm",
      "action": false,
      "timestamp": "2017-04-27T19:09:57+00:00"
    },
    {
      "id": "bf5e293c84d04079b5b3f0c908f2f5c4",
      "sender": "jonasschnelli",
      "payload": "IMO an explicit \"restore-mode\" with a \"unlock during startup\" (not sure how) would be preferable for encrypted wallets",
      "action": false,
      "timestamp": "2017-04-27T19:10:05+00:00"
    },
    {
      "id": "5bc00e0b81ba424693a844966016405c",
      "sender": "sipa",
      "payload": "BlueMatt: you should also stop pruning",
      "action": false,
      "timestamp": "2017-04-27T19:10:12+00:00"
    },
    {
      "id": "656e9ca2bda44c7cbc90744edb8868ee",
      "sender": "BlueMatt",
      "payload": "sipa: yes, that would be my major reservation",
      "action": false,
      "timestamp": "2017-04-27T19:10:20+00:00"
    },
    {
      "id": "df00fb49427d4226a05e8aafd9e33640",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: not sure you realistically can in a daemon setting",
      "action": false,
      "timestamp": "2017-04-27T19:10:29+00:00"
    },
    {
      "id": "92f9bf664b3d4f7686524bd5ac1d1971",
      "sender": "jonasschnelli",
      "payload": "is stdin a total nogo? *duck*",
      "action": false,
      "timestamp": "2017-04-27T19:10:40+00:00"
    },
    {
      "id": "bcd50399aafc4f75a628d8c9cc6897c7",
      "sender": "sipa",
      "payload": "so i guess we need a special \"stop syncing\" mode that we go into when the keypool runs out",
      "action": false,
      "timestamp": "2017-04-27T19:10:44+00:00"
    },
    {
      "id": "409827c4ed0a41198d9ee4607cb3be00",
      "sender": "sipa",
      "payload": "jonasschnelli: there is no stdin with -daemon",
      "action": false,
      "timestamp": "2017-04-27T19:10:49+00:00"
    },
    {
      "id": "b59f68e87bce4c1382163a4cd0b01897",
      "sender": "BlueMatt",
      "payload": "sipa: i guess you can stop pruning and if disk fills it will do the shutdown part for you :p",
      "action": false,
      "timestamp": "2017-04-27T19:10:51+00:00"
    },
    {
      "id": "c09d02b644fb42e29aca12e470175dee",
      "sender": "sipa",
      "payload": "BlueMatt: ugh",
      "action": false,
      "timestamp": "2017-04-27T19:10:58+00:00"
    },
    {
      "id": "26805d1ef62b4bfd9d3eb69139b88a07",
      "sender": "BlueMatt",
      "payload": "yea, i know",
      "action": false,
      "timestamp": "2017-04-27T19:11:02+00:00"
    },
    {
      "id": "5c2fc237357f455482b132b8e06240f9",
      "sender": "jonasschnelli",
      "payload": "sipa: Yes. But at least you could run in non-daemon headless",
      "action": false,
      "timestamp": "2017-04-27T19:11:03+00:00"
    },
    {
      "id": "44694544dc8149ad9d5b27a1648f402a",
      "sender": "wumpus",
      "payload": "yes a blocking mode makes sense in that case",
      "action": false,
      "timestamp": "2017-04-27T19:11:07+00:00"
    },
    {
      "id": "25ae8cb7b1bb44d6b9571f846369c938",
      "sender": "BlueMatt",
      "payload": "ok, so blocking in pruning mode, rescan-later in non-pruning mode?",
      "action": false,
      "timestamp": "2017-04-27T19:11:24+00:00"
    },
    {
      "id": "4e5982eee0ed4811ba31526091aca7f3",
      "sender": "wumpus",
      "payload": "and no, stdin is not an option, there should be no expectation with bitcoind that there's anyone at the terminal",
      "action": false,
      "timestamp": "2017-04-27T19:11:34+00:00"
    },
    {
      "id": "95caad85f6774612899d633efb5ff01e",
      "sender": "jonasschnelli",
      "payload": "If you run with an encrypted wallet and the bestblock lacks behind, shutdown if we can't unlock over stdin",
      "action": false,
      "timestamp": "2017-04-27T19:11:35+00:00"
    },
    {
      "id": "19d2c3ebae16428482ec6a57eb0d2131",
      "sender": "BlueMatt",
      "payload": "no stdin, just shutdown",
      "action": false,
      "timestamp": "2017-04-27T19:11:52+00:00"
    },
    {
      "id": "8471472c11f54e838e87633db677f77e",
      "sender": "jonasschnelli",
      "payload": "wumpus: So we have only RPC to unlock?",
      "action": false,
      "timestamp": "2017-04-27T19:11:56+00:00"
    },
    {
      "id": "c4945269eb99443c83e861eec2769641",
      "sender": "wumpus",
      "payload": "everything should be scriptable",
      "action": false,
      "timestamp": "2017-04-27T19:11:57+00:00"
    },
    {
      "id": "f1c5b4a4c2714a859c1299cb77444d7b",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: but only in prune mode",
      "action": false,
      "timestamp": "2017-04-27T19:11:57+00:00"
    },
    {
      "id": "e5e3fe90f31343fe974b4a0be5594cdc",
      "sender": "wumpus",
      "payload": "jonasschnelli: yes",
      "action": false,
      "timestamp": "2017-04-27T19:12:07+00:00"
    },
    {
      "id": "49e8f874677242b584da9f26fb1bb7ea",
      "sender": "jonasschnelli",
      "payload": "But how do we unlock/extend before we sync?",
      "action": false,
      "timestamp": "2017-04-27T19:12:14+00:00"
    },
    {
      "id": "78d44fc8ab9042d6bc8a825aab45890f",
      "sender": "wumpus",
      "payload": "just wait until the wallet is unlocked to start",
      "action": false,
      "timestamp": "2017-04-27T19:12:25+00:00"
    },
    {
      "id": "850b2ceb878d44a2b4aa9a540e2f6e55",
      "sender": "jonasschnelli",
      "payload": "rpc starts after chain sync",
      "action": false,
      "timestamp": "2017-04-27T19:12:25+00:00"
    },
    {
      "id": "393ca6ab62824fd6b0c09060196ba88c",
      "sender": "sipa",
      "payload": "jonasschnelli: you go into a blocking mode, and you continue after walletunlock",
      "action": false,
      "timestamp": "2017-04-27T19:12:31+00:00"
    },
    {
      "id": "4efaf0a345084036b86aeee53e957162",
      "sender": "wumpus",
      "payload": "right",
      "action": false,
      "timestamp": "2017-04-27T19:12:37+00:00"
    },
    {
      "id": "7c3a678c87854bbf9444c8773734129e",
      "sender": "sipa",
      "payload": "jonasschnelli: and no, no stdin ever",
      "action": false,
      "timestamp": "2017-04-27T19:12:52+00:00"
    },
    {
      "id": "db940c387eb64a5dafff097ad0879fbc",
      "sender": "jonasschnelli",
      "payload": "but can we block the sync and wait for RPC wallettunlock?",
      "action": false,
      "timestamp": "2017-04-27T19:13:03+00:00"
    },
    {
      "id": "4852212b25f547c998e1920482abe1a0",
      "sender": "sipa",
      "payload": "jonasschnelli: why not?",
      "action": false,
      "timestamp": "2017-04-27T19:13:09+00:00"
    },
    {
      "id": "3b0174caa82d46e1ac72093e58071c79",
      "sender": "wumpus",
      "payload": "sure",
      "action": false,
      "timestamp": "2017-04-27T19:13:15+00:00"
    },
    {
      "id": "99238b6d06ec4d56a8d87f941d3109cb",
      "sender": "jonasschnelli",
      "payload": "(without changing too much)?",
      "action": false,
      "timestamp": "2017-04-27T19:13:18+00:00"
    },
    {
      "id": "52e572f739b94c3ca5c2eefa269974c0",
      "sender": "BlueMatt",
      "payload": "ProcessNewBlock { return false; }",
      "action": false,
      "timestamp": "2017-04-27T19:13:18+00:00"
    },
    {
      "id": "2801db26823e4d32beea4dc061231870",
      "sender": "jonasschnelli",
      "payload": "okay... sounds good. Need to take a closer look.",
      "action": false,
      "timestamp": "2017-04-27T19:13:31+00:00"
    },
    {
      "id": "d0ece427ef2149418bd55c3271fbd22c",
      "sender": "sipa",
      "payload": "add a function to validation.h to let the core know that validation cannot progress",
      "action": false,
      "timestamp": "2017-04-27T19:13:33+00:00"
    },
    {
      "id": "ee5b54aa442b44e29fb33edb62c21fb8",
      "sender": "BlueMatt",
      "payload": "maybe stop net too under the current net-pause stuff",
      "action": false,
      "timestamp": "2017-04-27T19:13:42+00:00"
    },
    {
      "id": "5f2d8dc1229c4cd9a018013dbea2726e",
      "sender": "sipa",
      "payload": "right",
      "action": false,
      "timestamp": "2017-04-27T19:13:47+00:00"
    },
    {
      "id": "0916b61bb0c84632bc425b85eafc2721",
      "sender": "jonasschnelli",
      "payload": "Good point.",
      "action": false,
      "timestamp": "2017-04-27T19:13:53+00:00"
    },
    {
      "id": "f5e2db50012c4c64aed78dae51e17de6",
      "sender": "kanzure",
      "payload": "should it shutdown if wallet is not unlocked within a certain time period? if it's not shutdown users might expect it to still be syncing.",
      "action": false,
      "timestamp": "2017-04-27T19:13:54+00:00"
    },
    {
      "id": "27fd88b325ff4a4bb2f1b3cfacc2018f",
      "sender": "jonasschnelli",
      "payload": "Next question: what's a sane gap limit?",
      "action": false,
      "timestamp": "2017-04-27T19:14:00+00:00"
    },
    {
      "id": "3eac18356940486ca425a1cbfa646eb1",
      "sender": "wumpus",
      "payload": "the only precondition for getting out of Init() is that the genesis block has been processed, everything else can be delayed",
      "action": false,
      "timestamp": "2017-04-27T19:14:02+00:00"
    },
    {
      "id": "a6b32f843e5f4f2ab7d4833939fabba8",
      "sender": "jonasschnelli",
      "payload": "100 seems way to low to me",
      "action": false,
      "timestamp": "2017-04-27T19:14:04+00:00"
    },
    {
      "id": "c079717cb2f44e2b9cf29c44b6fd5362",
      "sender": "sipa",
      "payload": "jonasschnelli: fix bdb flushing insanity, and raise it to 1000 or 10000",
      "action": false,
      "timestamp": "2017-04-27T19:14:16+00:00"
    },
    {
      "id": "e1f22396091a4c05a7318f15bc3b8c2d",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: keypool / 2?",
      "action": false,
      "timestamp": "2017-04-27T19:14:17+00:00"
    },
    {
      "id": "847e76c7d36148b28f963358fc476cf6",
      "sender": "jonasschnelli",
      "payload": "(risk of losing funds is involved)",
      "action": false,
      "timestamp": "2017-04-27T19:14:18+00:00"
    },
    {
      "id": "029180d05683428fab11a6e5cddf5d2b",
      "sender": "BlueMatt",
      "payload": "and we can bump keypool to 500",
      "action": false,
      "timestamp": "2017-04-27T19:14:24+00:00"
    },
    {
      "id": "e414e7a8b8964b28a9c740a16db9a92b",
      "sender": "achow101",
      "payload": "how would you know that it is blocking and you need to walletunlock?",
      "action": false,
      "timestamp": "2017-04-27T19:14:25+00:00"
    },
    {
      "id": "440d83fe121c40c5920a24fdcdf0db06",
      "sender": "kanzure",
      "payload": "jonasschnelli: i think the answer will depend on performance.  also, do you really want to encourage users to use gaps? the answer might be yes..",
      "action": false,
      "timestamp": "2017-04-27T19:14:29+00:00"
    },
    {
      "id": "7d50c3eaaa2c48bd86ab7e12dd51e930",
      "sender": "kanzure",
      "payload": "achow101: yes that is why i suggested shutdown after a certain period of time. users might not realize that syncing is stopped otherwise.",
      "action": false,
      "timestamp": "2017-04-27T19:15:06+00:00"
    },
    {
      "id": "2a50e584416a4b968c52550d42cb015f",
      "sender": "jonasschnelli",
      "payload": "there my next concern pops up... all user will always have to have 500+ keypools. In an explicit restore more, only then we would need to have a large pool",
      "action": false,
      "timestamp": "2017-04-27T19:15:15+00:00"
    },
    {
      "id": "eb4644d39d2f4444b2f1ba8ed936ecc9",
      "sender": "sipa",
      "payload": "jonasschnelli: who cares about 500 keys'",
      "action": false,
      "timestamp": "2017-04-27T19:15:30+00:00"
    },
    {
      "id": "02b260a3849a48fe83b554f86f7ccab4",
      "sender": "sipa",
      "payload": "it's 16 kB of memory",
      "action": false,
      "timestamp": "2017-04-27T19:15:41+00:00"
    },
    {
      "id": "da5f1ec3f9d3479abafc1a12865de271",
      "sender": "sipa",
      "payload": "well, some small constant multiple of that",
      "action": false,
      "timestamp": "2017-04-27T19:15:52+00:00"
    },
    {
      "id": "3cacc19e296a4b799a86ed93c5c3bdc8",
      "sender": "kanzure",
      "payload": "i thought derivation time was the bottleneck?",
      "action": false,
      "timestamp": "2017-04-27T19:15:52+00:00"
    },
    {
      "id": "48c2ece65e634509817f61b20fcef63d",
      "sender": "jonasschnelli",
      "payload": "Hmm... yes.",
      "action": false,
      "timestamp": "2017-04-27T19:15:56+00:00"
    },
    {
      "id": "a63285afc36f494c91b51a97a57ca426",
      "sender": "jonasschnelli",
      "payload": "If it just would be a pubkey and H160 onyl.. but it's also the privatre key! hell",
      "action": false,
      "timestamp": "2017-04-27T19:16:08+00:00"
    },
    {
      "id": "86da6dfcc1b04788bf6649823c5d2498",
      "sender": "wumpus",
      "payload": "the memory usage of keys is not an issue, just generation time (and that's only due to bdb stupidity)",
      "action": false,
      "timestamp": "2017-04-27T19:16:17+00:00"
    },
    {
      "id": "e8e80e0299124c48ab53eddd225ce397",
      "sender": "sipa",
      "payload": "kanzure: we can do ~10000 derivation steps per second on a single thread on modern CPU",
      "action": false,
      "timestamp": "2017-04-27T19:16:33+00:00"
    },
    {
      "id": "a836554c34f34bff81acca626fef7361",
      "sender": "kanzure",
      "payload": "is that with bdb madness? :)",
      "action": false,
      "timestamp": "2017-04-27T19:16:42+00:00"
    },
    {
      "id": "b158ebfa02b74167b5a3b75a14e46830",
      "sender": "sipa",
      "payload": "and maybe 5 due to BDB flushing",
      "action": false,
      "timestamp": "2017-04-27T19:16:46+00:00"
    },
    {
      "id": "21e0944935224e27bf1002bd9f487338",
      "sender": "wumpus",
      "payload": "calling fsync after every key is not a good idea, it should create the entire keypool refill in one transaction",
      "action": false,
      "timestamp": "2017-04-27T19:16:47+00:00"
    },
    {
      "id": "1f503c9f4659444f809f767ad884f08c",
      "sender": "luke-jr",
      "payload": "IMO automatic pruning should probably have as a precondition that the wallet has updated to the block being pruned, if it doesn't already; then the wallet can just set its criteria for processing",
      "action": false,
      "timestamp": "2017-04-27T19:16:53+00:00"
    },
    {
      "id": "7ea7ed536c694b1d8ce66fd720db6c1a",
      "sender": "luke-jr",
      "payload": "and if auto-pruning is enabled, block validation (safely) when the size is hit, until it can prune further?",
      "action": false,
      "timestamp": "2017-04-27T19:17:20+00:00"
    },
    {
      "id": "78dc95a28c294c939e853e616c818ac6",
      "sender": "sipa",
      "payload": "luke-jr: agree, but that's not a concern right now as the wallet updates synchronously... with BlueMatt's coming changes maybe that changes",
      "action": false,
      "timestamp": "2017-04-27T19:17:30+00:00"
    },
    {
      "id": "28f6fdfe7740453da492296e5a1854f3",
      "sender": "BlueMatt",
      "payload": "yes, that changes, but it still shouldnt be too slow",
      "action": false,
      "timestamp": "2017-04-27T19:17:42+00:00"
    },
    {
      "id": "80ff224bdc32462bad842b4c1646ef17",
      "sender": "jonasschnelli",
      "payload": "With HD, there would also be no need for the disk-keypool for unencrypted wallets,.. it's just legacy. We could always fill up in-mem",
      "action": false,
      "timestamp": "2017-04-27T19:17:48+00:00"
    },
    {
      "id": "ea45f8b1a01b4c169e442c28e81289ee",
      "sender": "BlueMatt",
      "payload": "if your wallet falls behind consensus, you have a very, very large wallet",
      "action": false,
      "timestamp": "2017-04-27T19:18:02+00:00"
    },
    {
      "id": "4490a00cbe2346e8b8e4f9f662fe5cd3",
      "sender": "BlueMatt",
      "payload": "(and should pause sync anyway)",
      "action": false,
      "timestamp": "2017-04-27T19:18:13+00:00"
    },
    {
      "id": "150c89f612ad4de3ba55a45697b29e8a",
      "sender": "sipa",
      "payload": "right, the wallet should have the ability to pause syncing or prevent pruning",
      "action": false,
      "timestamp": "2017-04-27T19:18:39+00:00"
    },
    {
      "id": "3b6978d5417f47b6b3000927a67c411a",
      "sender": "jonasschnelli",
      "payload": "Conclusion: a) always scan keypool and topup, b) extend keypool and gap-limit to 500+, c) block when encrypted until RPC unlocked.",
      "action": false,
      "timestamp": "2017-04-27T19:18:49+00:00"
    },
    {
      "id": "210a2a9130b1457092cf8f739600bb20",
      "sender": "sipa",
      "payload": "sgtm",
      "action": false,
      "timestamp": "2017-04-27T19:19:11+00:00"
    },
    {
      "id": "fc4f2f39823b49a6ac2615223d325feb",
      "sender": "wumpus",
      "payload": "yes",
      "action": false,
      "timestamp": "2017-04-27T19:19:17+00:00"
    },
    {
      "id": "609faf1b386a4ee9aa763258d88ddd86",
      "sender": "jonasschnelli",
      "payload": "thanks. That was effective",
      "action": false,
      "timestamp": "2017-04-27T19:19:18+00:00"
    },
    {
      "id": "8ce2c4f575684253a9387ab2b406030c",
      "sender": "wumpus",
      "payload": "#topic libconsensus (BlueMatt)",
      "action": false,
      "timestamp": "2017-04-27T19:19:32+00:00"
    },
    {
      "id": "5d4303a0b6af4f78bd377c46b14488cc",
      "sender": "BlueMatt",
      "payload": "yes, so obviously this is all based on #771",
      "action": false,
      "timestamp": "2017-04-27T19:19:51+00:00"
    },
    {
      "id": "7d7931b9a6874c40be462c823f2ecfff",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/771 | CBlockStore by TheBlueMatt \u00c3\u0082\u00c2\u00b7 Pull Request #771 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:19:53+00:00"
    },
    {
      "id": "24e0a0ce8ac640fd9ca3bc6d8390f42e",
      "sender": "BlueMatt",
      "payload": ":)",
      "action": false,
      "timestamp": "2017-04-27T19:19:59+00:00"
    },
    {
      "id": "b4fe61c08cb44119ab2cd62fdfa21512",
      "sender": "jonasschnelli",
      "payload": "(19 Jan 2012)",
      "action": false,
      "timestamp": "2017-04-27T19:20:08+00:00"
    },
    {
      "id": "55de0737479944ff834a1be353267c3a",
      "sender": "wumpus",
      "payload": "archeology?",
      "action": false,
      "timestamp": "2017-04-27T19:20:22+00:00"
    },
    {
      "id": "c7f5a2d1242a4041a6ef2fd6a85a91db",
      "sender": "BlueMatt",
      "payload": "but pr #10279 creates a CChainState class which will hold things like mapBlockIndex chainActive, etc, etc",
      "action": false,
      "timestamp": "2017-04-27T19:20:23+00:00"
    },
    {
      "id": "124ffa2f5b014af7bce8399b914b7341",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10279 | Add a CChainState class to validation.cpp to take another step towards clarifying internal interfaces by TheBlueMatt \u00c3\u0082\u00c2\u00b7 Pull Request #10279 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:20:24+00:00"
    },
    {
      "id": "f7b503d0703745c3a79e56951a6995b0",
      "sender": "BlueMatt",
      "payload": "and have ProcessNewBlock Activate..., Connect, etc, etc, etc",
      "action": false,
      "timestamp": "2017-04-27T19:20:40+00:00"
    },
    {
      "id": "8b30bce46f9c470c8ae57761e5598ebd",
      "sender": "sipa",
      "payload": "yay",
      "action": false,
      "timestamp": "2017-04-27T19:20:53+00:00"
    },
    {
      "id": "6db50261156149618053838314b9cf12",
      "sender": "BlueMatt",
      "payload": "long-term that class' public interface will be libbitcoinconsensus, but right now its really just to clean up internal interfaces within validation.cpp",
      "action": false,
      "timestamp": "2017-04-27T19:21:04+00:00"
    },
    {
      "id": "c840009c480744e0a24a4df6eea67e6c",
      "sender": "wumpus",
      "payload": "sounds good to me",
      "action": false,
      "timestamp": "2017-04-27T19:21:13+00:00"
    },
    {
      "id": "4a74b3c1f5144898814a7b80cc887c12",
      "sender": "BlueMatt",
      "payload": "that class would get a pcoinsTip and related stuff to write/read blocks from disk",
      "action": false,
      "timestamp": "2017-04-27T19:21:29+00:00"
    },
    {
      "id": "d756463e735d4518a2fbe1cce572d0ce",
      "sender": "BlueMatt",
      "payload": "and then only be able to call that and pure functions (eg script validation)",
      "action": false,
      "timestamp": "2017-04-27T19:21:39+00:00"
    },
    {
      "id": "6d6e43aafedc4d198a415c268f766a1e",
      "sender": "jtimon",
      "payload": "BlueMatt: so what's the next thing we will be able to expose with these changes?",
      "action": false,
      "timestamp": "2017-04-27T19:21:45+00:00"
    },
    {
      "id": "0a68978f0d824abc8bb35149953e27f1",
      "sender": "cfields",
      "payload": "ooh, +1",
      "action": false,
      "timestamp": "2017-04-27T19:21:51+00:00"
    },
    {
      "id": "0e89b255d8814a51aa64bcec3ab5e8df",
      "sender": "BlueMatt",
      "payload": "there is a bit of cleanup in the pr, but mostly its just moving into a class",
      "action": false,
      "timestamp": "2017-04-27T19:21:54+00:00"
    },
    {
      "id": "c577ec43c42b415985fa20ae9ff1d603",
      "sender": "BlueMatt",
      "payload": "jtimon: expose-wise? probably nothing for like 2 more releases \"until its ready\"",
      "action": false,
      "timestamp": "2017-04-27T19:22:06+00:00"
    },
    {
      "id": "e8d4c8266acd44498040483028a132fe",
      "sender": "BlueMatt",
      "payload": "is not a fan of libbitcoinconsensus being a grab-bag of random verification functions",
      "action": true,
      "timestamp": "2017-04-27T19:22:15+00:00"
    },
    {
      "id": "9307da9469ed48eca46bcdbcd56567d5",
      "sender": "jtimon",
      "payload": "the class itself? mhmm",
      "action": false,
      "timestamp": "2017-04-27T19:22:21+00:00"
    },
    {
      "id": "442a0c8a164144feb61731cc0d25e4e7",
      "sender": "BlueMatt",
      "payload": "i mean \"the class\"  but I assume via a C API",
      "action": false,
      "timestamp": "2017-04-27T19:22:32+00:00"
    },
    {
      "id": "57662d1e28b74059a8d7e6cb9e22beab",
      "sender": "BlueMatt",
      "payload": "any other questions? or next topic?",
      "action": false,
      "timestamp": "2017-04-27T19:24:01+00:00"
    },
    {
      "id": "58cf53eed33045d8b21e5b7fd9b16571",
      "sender": "jtimon",
      "payload": "yes, I know, and I'm very open to see what you want to expose, even if I don't renounce to the verifyWithoutChangingState x {block, header, tx, script} + getFlags() vision I had",
      "action": false,
      "timestamp": "2017-04-27T19:24:08+00:00"
    },
    {
      "id": "a9a480af584e47bb8e7af0418f261db3",
      "sender": "jtimon",
      "payload": "but that's helpful, I can just imagine the class being exposed as a c api",
      "action": false,
      "timestamp": "2017-04-27T19:24:38+00:00"
    },
    {
      "id": "5816a90e61ec40fe975c7ee9754404d2",
      "sender": "wumpus",
      "payload": "not directly, it's just another step toward being able to",
      "action": false,
      "timestamp": "2017-04-27T19:25:15+00:00"
    },
    {
      "id": "324941213bfc4de7924fb8ef577e5a65",
      "sender": "wumpus",
      "payload": "#topic limited NODE_NETWORK (NODE_NETWORK_LIMITED) signaling (jonasschnelli)",
      "action": false,
      "timestamp": "2017-04-27T19:25:36+00:00"
    },
    {
      "id": "bc51b43f702e4df8a55afc6eae132b47",
      "sender": "petertodd",
      "payload": "wumpus: +1",
      "action": false,
      "timestamp": "2017-04-27T19:25:57+00:00"
    },
    {
      "id": "d7752c97cb584e2ba3d4ab24ac662051",
      "sender": "jonasschnelli",
      "payload": "I wanted to ask if a first step to announce pruned NODE_NETWORK would make sense.",
      "action": false,
      "timestamp": "2017-04-27T19:25:57+00:00"
    },
    {
      "id": "d8db680ba3bb452683660550204f0a43",
      "sender": "jonasschnelli",
      "payload": "Could be NODE_NETWORK_LIMITED",
      "action": false,
      "timestamp": "2017-04-27T19:26:04+00:00"
    },
    {
      "id": "2f1d95230723485daa6f2aa6b2718a22",
      "sender": "sipa",
      "payload": "jonasschnelli: what would it entail?",
      "action": false,
      "timestamp": "2017-04-27T19:26:11+00:00"
    },
    {
      "id": "4f842f0350a648cb8df3a6e431e7ce29",
      "sender": "jonasschnelli",
      "payload": "The only requirement is relay, and serve the last 144 blocks",
      "action": false,
      "timestamp": "2017-04-27T19:26:14+00:00"
    },
    {
      "id": "3ac6a8053cdc45c4b45b3450bd9c50f9",
      "sender": "petertodd",
      "payload": "jonasschnelli: ACK",
      "action": false,
      "timestamp": "2017-04-27T19:26:21+00:00"
    },
    {
      "id": "59a1b73b2aa34ff3917eff601a505a49",
      "sender": "wumpus",
      "payload": "we had this discussion recently, I thnk the conclusion was to use two service bits",
      "action": false,
      "timestamp": "2017-04-27T19:26:22+00:00"
    },
    {
      "id": "511330fb7ba847c28441c0b400420dfd",
      "sender": "wumpus",
      "payload": "(or one, at first)",
      "action": false,
      "timestamp": "2017-04-27T19:26:28+00:00"
    },
    {
      "id": "863071c03271403fa8c259fc63a15daf",
      "sender": "gmaxwell",
      "payload": "what wumpus said.",
      "action": false,
      "timestamp": "2017-04-27T19:26:31+00:00"
    },
    {
      "id": "edc83b56bb924323aec0219fa1db9c17",
      "sender": "jonasschnelli",
      "payload": "(which is almost always possible with the current auto-prune limit)",
      "action": false,
      "timestamp": "2017-04-27T19:26:32+00:00"
    },
    {
      "id": "26f8fd42ff604a138fb5ba339478ef68",
      "sender": "sipa",
      "payload": "i would suggest something that guarantees 1 day and 1 week",
      "action": false,
      "timestamp": "2017-04-27T19:26:43+00:00"
    },
    {
      "id": "00defc3dca3e417d87e3114940d40724",
      "sender": "wumpus",
      "payload": "one bit combination would be 144, one would be ~1000",
      "action": false,
      "timestamp": "2017-04-27T19:26:51+00:00"
    },
    {
      "id": "d5c3354a4681483baa4fac457a68fcc4",
      "sender": "luke-jr",
      "payload": "jonasschnelli: so segwit prune=550 wouldn't be allowed?",
      "action": false,
      "timestamp": "2017-04-27T19:26:58+00:00"
    },
    {
      "id": "45275d1a3c9042e9a29d0334d451044c",
      "sender": "BlueMatt",
      "payload": "resists the urge to bikeshed on the \"1 week\" number",
      "action": true,
      "timestamp": "2017-04-27T19:27:02+00:00"
    },
    {
      "id": "206c095606014607b5d46fc5263548f8",
      "sender": "gmaxwell",
      "payload": "Which should be 2 days and 2 weeks so the boundary condition doesn't leave you right out.",
      "action": false,
      "timestamp": "2017-04-27T19:27:02+00:00"
    },
    {
      "id": "1fb4fa25d28f4b9294afad971f58f617",
      "sender": "sipa",
      "payload": "BlueMatt: i have data!",
      "action": false,
      "timestamp": "2017-04-27T19:27:09+00:00"
    },
    {
      "id": "b5306b2b74ad4b61bb4c5c6e95b9523d",
      "sender": "jonasschnelli",
      "payload": "luke-jr: We would have to bump there",
      "action": false,
      "timestamp": "2017-04-27T19:27:11+00:00"
    },
    {
      "id": "7a9ae1955b654d5ba3279869a7db9eda",
      "sender": "gmaxwell",
      "payload": "BlueMatt: sipa has data on request rates.",
      "action": false,
      "timestamp": "2017-04-27T19:27:14+00:00"
    },
    {
      "id": "a85838709ac24f888bea425513a2ac2d",
      "sender": "BlueMatt",
      "payload": "oh, true, thats right",
      "action": false,
      "timestamp": "2017-04-27T19:27:21+00:00"
    },
    {
      "id": "3e423ed6c5fc4d63bc31cdb2c23db68f",
      "sender": "wumpus",
      "payload": "luke-jr: it's allowed, but it can't signal anything",
      "action": false,
      "timestamp": "2017-04-27T19:27:22+00:00"
    },
    {
      "id": "8d6fc18b9d874d008a1efe906a7950da",
      "sender": "sipa",
      "payload": "BlueMatt: i'll analyse the numbers again if there is interest",
      "action": false,
      "timestamp": "2017-04-27T19:27:44+00:00"
    },
    {
      "id": "79674a6fb5f843a0aad75652b2393726",
      "sender": "gmaxwell",
      "payload": "The only think to bikeshed is how much higher do we need the cutoff than his data, it should be at least a couple blocks higher because of reorgs/boundary conditions.",
      "action": false,
      "timestamp": "2017-04-27T19:27:44+00:00"
    },
    {
      "id": "5224615076634bdfa0870ffb23adf63f",
      "sender": "gmaxwell",
      "payload": "our existing minimum sizing for pruning is sized out for 288 blocks, so I think we should just do that, it will make ~144 pretty reliable.",
      "action": false,
      "timestamp": "2017-04-27T19:28:20+00:00"
    },
    {
      "id": "ff65e953af974fa88bc819837eddd9f1",
      "sender": "bitcoin-git",
      "payload": "[bitcoin] sipa opened pull request #10290: Add -stopatheight for benchmarking (master...shutdown_at_height) https://github.com/bitcoin/bitcoin/pull/10290",
      "action": false,
      "timestamp": "2017-04-27T19:28:29+00:00"
    },
    {
      "id": "d3a7d2d10f2c4b6bbfba480d629e7143",
      "sender": "wumpus",
      "payload": "yep",
      "action": false,
      "timestamp": "2017-04-27T19:28:38+00:00"
    },
    {
      "id": "d486fe179965408badc688240cb908d1",
      "sender": "BlueMatt",
      "payload": "sipa: ack without seeing code",
      "action": false,
      "timestamp": "2017-04-27T19:28:47+00:00"
    },
    {
      "id": "64e357b95e1348419ff84bf83147c658",
      "sender": "jonasschnelli",
      "payload": "Two service bits seems to be great. Did anyone started with specs/BIP?",
      "action": false,
      "timestamp": "2017-04-27T19:28:49+00:00"
    },
    {
      "id": "7e0416f9e2ed4247b90ef0a0aa50d3c5",
      "sender": "sipa",
      "payload": "BlueMatt: i just have a log of which depths of blocks are being fetched from my node",
      "action": false,
      "timestamp": "2017-04-27T19:29:27+00:00"
    },
    {
      "id": "aff9bf3425cf4b8c86460e2e330de8c1",
      "sender": "cfields",
      "payload": "how would NODE_NETWORK_LIMITED interact (if at all) with the remote peer's advertised height?",
      "action": false,
      "timestamp": "2017-04-27T19:29:42+00:00"
    },
    {
      "id": "4d94a9cbb72f42de933adfd8d7bf78a7",
      "sender": "sipa",
      "payload": "BlueMatt: since february",
      "action": false,
      "timestamp": "2017-04-27T19:29:59+00:00"
    },
    {
      "id": "ebdf01999ebc402eba22b5143f75f79b",
      "sender": "gmaxwell",
      "payload": "cfields: I don't think it should?",
      "action": false,
      "timestamp": "2017-04-27T19:30:03+00:00"
    },
    {
      "id": "750917bbf0f148329469823dfb1e6a08",
      "sender": "luke-jr",
      "payload": "IMO would be nicer to have the new service bit require *some* historical storage, but I guess we're not running out..",
      "action": false,
      "timestamp": "2017-04-27T19:30:05+00:00"
    },
    {
      "id": "db77027d135540559a3b6050e84b6854",
      "sender": "jonasschnelli",
      "payload": "IMO the purpose is to signal \"I have only a limited amount of blocks\"",
      "action": false,
      "timestamp": "2017-04-27T19:30:08+00:00"
    },
    {
      "id": "8fdf20ada26c46dc828b861bc2bdf9a6",
      "sender": "wumpus",
      "payload": "cfields: not at all, we ignore that value",
      "action": false,
      "timestamp": "2017-04-27T19:30:12+00:00"
    },
    {
      "id": "ae45e774ad8242b4abc1ab12034ecc9b",
      "sender": "BlueMatt",
      "payload": "sipa: yes, i recall now",
      "action": false,
      "timestamp": "2017-04-27T19:30:24+00:00"
    },
    {
      "id": "803d457b48824e1c80ab68308131fb6d",
      "sender": "cfields",
      "payload": "ok, good",
      "action": false,
      "timestamp": "2017-04-27T19:30:26+00:00"
    },
    {
      "id": "b4ba945990c74b4ea1a4ea4677af96c8",
      "sender": "gmaxwell",
      "payload": "That advetised height shouldn't be used for almost anything.",
      "action": false,
      "timestamp": "2017-04-27T19:30:27+00:00"
    },
    {
      "id": "e9bf1f02c2e440b1a2b39b40c52fc731",
      "sender": "wumpus",
      "payload": "(as it's easily spoofable)",
      "action": false,
      "timestamp": "2017-04-27T19:30:28+00:00"
    },
    {
      "id": "c30f181e3bfb47dd910558185ea337a4",
      "sender": "jonasschnelli",
      "payload": "The best-height in version doesn't matter IMO",
      "action": false,
      "timestamp": "2017-04-27T19:30:31+00:00"
    },
    {
      "id": "19a6e061fd114409ae38e6f99ea6a994",
      "sender": "wumpus",
      "payload": "it isn't used at all",
      "action": false,
      "timestamp": "2017-04-27T19:30:32+00:00"
    },
    {
      "id": "717d7851da0144e88b6362be8348bfe0",
      "sender": "sipa",
      "payload": "i believe it is not used at all",
      "action": false,
      "timestamp": "2017-04-27T19:30:39+00:00"
    },
    {
      "id": "7355c83650844edeb8876b771d716400",
      "sender": "sipa",
      "payload": "(by bitcoin core)",
      "action": false,
      "timestamp": "2017-04-27T19:30:44+00:00"
    },
    {
      "id": "8fad1fec62fd4ccfaf90e2ed7a9bbbd1",
      "sender": "luke-jr",
      "payload": "I'm not sure why more than the last 1-2 blocks should be needed to indicate relaying",
      "action": false,
      "timestamp": "2017-04-27T19:30:46+00:00"
    },
    {
      "id": "4290f3b84ddd48a6a5b4002312bf02f0",
      "sender": "jonasschnelli",
      "payload": "wumpus: I  think it's used by SPV",
      "action": false,
      "timestamp": "2017-04-27T19:30:53+00:00"
    },
    {
      "id": "d5c6722ff07a460d9ec4dde69add28f3",
      "sender": "gmaxwell",
      "payload": "luke-jr: because or reorgs.",
      "action": false,
      "timestamp": "2017-04-27T19:31:01+00:00"
    },
    {
      "id": "e26c160687fa458b81f2ddba6932c90d",
      "sender": "gmaxwell",
      "payload": "if I can't serve you the parents of my tip, I can't help you reorg onto it, making my serving nearly useless.",
      "action": false,
      "timestamp": "2017-04-27T19:31:20+00:00"
    },
    {
      "id": "0fecfc8aefa74f7aaccfb3b6042eae03",
      "sender": "wumpus",
      "payload": "jonasschnelli: I meant in bitcoin core; I don't know about other implementations",
      "action": false,
      "timestamp": "2017-04-27T19:31:24+00:00"
    },
    {
      "id": "8981f75ccfd045a3af18be3ea5a4488c",
      "sender": "luke-jr",
      "payload": "hmm",
      "action": false,
      "timestamp": "2017-04-27T19:31:24+00:00"
    },
    {
      "id": "5fe1083111374159a77c026a189c6dfb",
      "sender": "jonasschnelli",
      "payload": "Is a min of 144 blocks to height?",
      "action": false,
      "timestamp": "2017-04-27T19:31:28+00:00"
    },
    {
      "id": "6ebc794ead6943ec902ad5e99813453c",
      "sender": "jonasschnelli",
      "payload": "No... nm",
      "action": false,
      "timestamp": "2017-04-27T19:31:44+00:00"
    },
    {
      "id": "364e85d3db4e42be8edb3805cae62460",
      "sender": "petertodd",
      "payload": "luke-jr: and requiring nodes to have a GB or two of space for this is a trivial cost these days",
      "action": false,
      "timestamp": "2017-04-27T19:31:45+00:00"
    },
    {
      "id": "439fd5178c384438afd4aecb7d62d05d",
      "sender": "achow101",
      "payload": "is the point of NODE_NETWORK_LIMITED just to tell nodes that they can request the most recent blocks from said node?",
      "action": false,
      "timestamp": "2017-04-27T19:31:52+00:00"
    },
    {
      "id": "7bf4a37d6b1449beb2618e3ce2d889b2",
      "sender": "luke-jr",
      "payload": "assuming we only fetch blocks when reorging to their chain",
      "action": false,
      "timestamp": "2017-04-27T19:31:55+00:00"
    },
    {
      "id": "2139a3f119904d4984778dd9dcb7f1da",
      "sender": "instagibbs",
      "payload": "It's the unbounded growth that gets people to shut off nodes",
      "action": false,
      "timestamp": "2017-04-27T19:32:02+00:00"
    },
    {
      "id": "28193a48f6f345cdb88b69beb95ccc21",
      "sender": "achow101",
      "payload": "and right now you can't request any blocks from pruned nodes?",
      "action": false,
      "timestamp": "2017-04-27T19:32:04+00:00"
    },
    {
      "id": "d2468fd827a14ef2970c277d3a8f90d9",
      "sender": "gmaxwell",
      "payload": "In any case the bit must promise more than nodes count on.",
      "action": false,
      "timestamp": "2017-04-27T19:32:11+00:00"
    },
    {
      "id": "11cb923a1fb04497857c1184d7091ee8",
      "sender": "sipa",
      "payload": "achow101: pruned nodes don't even advertize they can relay blocks",
      "action": false,
      "timestamp": "2017-04-27T19:32:17+00:00"
    },
    {
      "id": "57b8bc5474d147caa9660d6d7c99a876",
      "sender": "instagibbs",
      "payload": "achow101, NODE_NETWORK is a flag for that, and it's missing from pruned nodes currently",
      "action": false,
      "timestamp": "2017-04-27T19:32:34+00:00"
    },
    {
      "id": "363b60ff11d04e358f052177addb8d64",
      "sender": "jonasschnelli",
      "payload": "achow101: once you are in sync (>-144) you can pair with pruned peers and be fine",
      "action": false,
      "timestamp": "2017-04-27T19:32:36+00:00"
    },
    {
      "id": "1d381db62e9d438698e114f05041d53d",
      "sender": "achow101",
      "payload": "ok",
      "action": false,
      "timestamp": "2017-04-27T19:32:53+00:00"
    },
    {
      "id": "92417825c00e4489a5a6157f6ef6e4d7",
      "sender": "gmaxwell",
      "payload": "Say nodes frequently need to catch up a day.  You only keep 144 blocks.   Peer needs to catch up a day, connects to you.. opps you can't help them because a day turned out to be 150 blocks, they wasted their time connecting to you for nothing.",
      "action": false,
      "timestamp": "2017-04-27T19:32:56+00:00"
    },
    {
      "id": "500c9433171b429f8182c3b25faeefe5",
      "sender": "gmaxwell",
      "payload": "So for this to be useful the requester has to be conservative and not try to talk to you unless it thinks you are _very_ likely to have what it needs, which means that you need a fair amount more than the target.",
      "action": false,
      "timestamp": "2017-04-27T19:33:43+00:00"
    },
    {
      "id": "94ae4332faa84e9cba2a455dd2711702",
      "sender": "gmaxwell",
      "payload": "So to serve a day of blocks, you'll need a day and a half or so. Round it up to 288.",
      "action": false,
      "timestamp": "2017-04-27T19:34:11+00:00"
    },
    {
      "id": "70575bf9d712498ba2af69c5a766dfac",
      "sender": "gmaxwell",
      "payload": "petertodd: oh hi. long time no see.",
      "action": false,
      "timestamp": "2017-04-27T19:34:25+00:00"
    },
    {
      "id": "b212f5b04bf24dea8c2b9f15fedb9466",
      "sender": "petertodd",
      "payload": "gmaxwell: heh",
      "action": false,
      "timestamp": "2017-04-27T19:34:33+00:00"
    },
    {
      "id": "cf88fb1ae81d4f4995a15fa6fedf7cad",
      "sender": "gmaxwell",
      "payload": "and as mentioned, our pruning limit is already there.",
      "action": false,
      "timestamp": "2017-04-27T19:34:39+00:00"
    },
    {
      "id": "6b5b0587751d4cd2ae105e1e56fbd775",
      "sender": "jonasschnelli",
      "payload": "I just think we should allow the current auto-pruning 550 peers to signal relay and \"limited amount of blocks around the tip\".",
      "action": false,
      "timestamp": "2017-04-27T19:34:49+00:00"
    },
    {
      "id": "4f519fd17a4f47c1a8787a2530efbae2",
      "sender": "luke-jr",
      "payload": "so 137 blocks?",
      "action": false,
      "timestamp": "2017-04-27T19:35:08+00:00"
    },
    {
      "id": "29cef20af44a4218b5270dd67ad07e31",
      "sender": "jonasschnelli",
      "payload": "If we set NODE_NETWORK_LIMIT higher while allowing to prune shorter,.. this would wast potential peers",
      "action": false,
      "timestamp": "2017-04-27T19:35:21+00:00"
    },
    {
      "id": "0cb80b051f0e4a39aa09cd360e638445",
      "sender": "petertodd",
      "payload": "luke-jr: 1337 blocks",
      "action": false,
      "timestamp": "2017-04-27T19:35:22+00:00"
    },
    {
      "id": "cfebeb10f831498d80d27d65911d3b4d",
      "sender": "gmaxwell",
      "payload": "jonasschnelli: then that will never be used.",
      "action": false,
      "timestamp": "2017-04-27T19:35:27+00:00"
    },
    {
      "id": "9a2cf4f9093b447ab88b4c3f0afad45e",
      "sender": "jonasschnelli",
      "payload": "heh",
      "action": false,
      "timestamp": "2017-04-27T19:35:28+00:00"
    },
    {
      "id": "9d75757d85ce42a09631aba08e640b59",
      "sender": "gmaxwell",
      "payload": "If we don't know how many blocks to except we'll never connect to them.",
      "action": false,
      "timestamp": "2017-04-27T19:35:43+00:00"
    },
    {
      "id": "00be9afd79ff4ffe838d718452d64439",
      "sender": "gmaxwell",
      "payload": "This impacts the connection logic, we'll need logic that changes the requested services based on an estimate of how far back we are.",
      "action": false,
      "timestamp": "2017-04-27T19:36:14+00:00"
    },
    {
      "id": "9d9dceade1c147da9c672f837e9320f8",
      "sender": "sipa",
      "payload": "when you're fully synced, why wouldn't you connect to a node that guarantees for example having the last 10 blocks?",
      "action": false,
      "timestamp": "2017-04-27T19:36:17+00:00"
    },
    {
      "id": "45cdf264bc7947e7afea4623886b2fc2",
      "sender": "jonasschnelli",
      "payload": "gmaxwell: Well, if we are in sync, you could be friendly and make space for the one who need sync and re-connect to limited peers?",
      "action": false,
      "timestamp": "2017-04-27T19:36:19+00:00"
    },
    {
      "id": "e3eeae5390874b779c6bb726b0f34557",
      "sender": "jonasschnelli",
      "payload": "Yes. What sipa said",
      "action": false,
      "timestamp": "2017-04-27T19:36:30+00:00"
    },
    {
      "id": "1114d45b08444e859b4c5a2fdd68a93b",
      "sender": "jonasschnelli",
      "payload": "I would expect the larger the chain grows the more pruned peers we will see",
      "action": false,
      "timestamp": "2017-04-27T19:36:57+00:00"
    },
    {
      "id": "81f3363b428f401c9a53b1aa9fac3560",
      "sender": "jonasschnelli",
      "payload": "(rought assumption)",
      "action": false,
      "timestamp": "2017-04-27T19:37:09+00:00"
    },
    {
      "id": "4d479ba75bad4d518f3448ba88f50491",
      "sender": "sipa",
      "payload": "not that we should support pruning that much, but for bandwidth reasons it may be reasonable that someone wants to relay new blocks, but not historical ones",
      "action": false,
      "timestamp": "2017-04-27T19:37:11+00:00"
    },
    {
      "id": "626ef5e4b233407b8e4c73f69bffa5b0",
      "sender": "petertodd",
      "payload": "sipa: I think we can make a good argument that requiring nodes to have something like 1GB of storage for historical blocks isn't a big deal, and makes the logic around all this stuff simpler",
      "action": false,
      "timestamp": "2017-04-27T19:38:11+00:00"
    },
    {
      "id": "cefe8bcae2ae43ceb95c268760780c99",
      "sender": "jonasschnelli",
      "payload": "signaling the amount of block you have is also not extremly effective because of the addr-man, seed/crawl delay",
      "action": false,
      "timestamp": "2017-04-27T19:38:12+00:00"
    },
    {
      "id": "ee928da683c8429098272f9fcd2e49ae",
      "sender": "jonasschnelli",
      "payload": "*blocks",
      "action": false,
      "timestamp": "2017-04-27T19:38:18+00:00"
    },
    {
      "id": "f61ac3670706495db880f0e106490d80",
      "sender": "sipa",
      "payload": "petertodd: again, not talking about storage, but about bandwidth",
      "action": false,
      "timestamp": "2017-04-27T19:38:30+00:00"
    },
    {
      "id": "056d56bfb74c4e8dac1b3bc1b5888ec1",
      "sender": "sipa",
      "payload": "it's an open question - i'm not convinced it's needed or useful",
      "action": false,
      "timestamp": "2017-04-27T19:38:52+00:00"
    },
    {
      "id": "fe9e05e5480248339cb31524aaa6d347",
      "sender": "jonasschnelli",
      "payload": "Yes. Agree with sipa. Main pain point in historical blocks is upstream bandwidth",
      "action": false,
      "timestamp": "2017-04-27T19:39:02+00:00"
    },
    {
      "id": "e9ac667b94a44ba99bad22d3b6ed8456",
      "sender": "gmaxwell",
      "payload": "sipa sure that would also work: but (1) nodes that only keep ten blocks are a hazard to the network, and (2) there is no real reason to keep that little, and (3) we don't have signaling room to send out every tiny variation.",
      "action": false,
      "timestamp": "2017-04-27T19:39:07+00:00"
    },
    {
      "id": "a827917a58194699960be2f71bab3e37",
      "sender": "petertodd",
      "payload": "sipa: how much more bandwidth do your status say serving ~100 or whatever blocks is vs. 10?",
      "action": false,
      "timestamp": "2017-04-27T19:39:10+00:00"
    },
    {
      "id": "529f9458a54947819974d101b33339af",
      "sender": "petertodd",
      "payload": "sipa: I mean, you can just turn off NODE_NETWORK_LIMIT entirely",
      "action": false,
      "timestamp": "2017-04-27T19:39:21+00:00"
    },
    {
      "id": "6331037a85944520a533480f9c129e00",
      "sender": "jonasschnelli",
      "payload": "gmaxwell: They would keep more but only willing to serve the last 10",
      "action": false,
      "timestamp": "2017-04-27T19:39:26+00:00"
    },
    {
      "id": "2f272ec3b18f4046958a714cd12810cc",
      "sender": "gmaxwell",
      "payload": "sipa: if you want to limit your bandwidth, limit it.",
      "action": false,
      "timestamp": "2017-04-27T19:39:28+00:00"
    },
    {
      "id": "0e509503a4db49d0a215842d4d632cc1",
      "sender": "sipa",
      "payload": "gmaxwell: well we have 3 possibilities",
      "action": false,
      "timestamp": "2017-04-27T19:39:32+00:00"
    },
    {
      "id": "b29a590fade14763806c49312259a256",
      "sender": "jonasschnelli",
      "payload": "NODE_NETWORK_LIMITED would be a limit",
      "action": false,
      "timestamp": "2017-04-27T19:39:45+00:00"
    },
    {
      "id": "6f095a27c0b7437dad9b7e8ae9584a71",
      "sender": "sipa",
      "payload": "fair enough, we have other mechanisms for limiting bandwidth",
      "action": false,
      "timestamp": "2017-04-27T19:39:51+00:00"
    },
    {
      "id": "fefc71dac0be42e290d072d0a77b8671",
      "sender": "edcba",
      "payload": "QoS on historical blocks :)",
      "action": false,
      "timestamp": "2017-04-27T19:39:51+00:00"
    },
    {
      "id": "20578a9ec9814ec097401d789b3fb7d5",
      "sender": "sipa",
      "payload": "petertodd: i need to look again... it may not be that much difference",
      "action": false,
      "timestamp": "2017-04-27T19:40:20+00:00"
    },
    {
      "id": "082c53f876ff469685691b02acf64fc9",
      "sender": "gmaxwell",
      "payload": "sipa: and we have had reorgs longer than 10 in recent memory, what happens if all of your peers are like that?",
      "action": false,
      "timestamp": "2017-04-27T19:40:30+00:00"
    },
    {
      "id": "669a73c0f55241b585cee30468f588bd",
      "sender": "BlueMatt",
      "payload": "gmaxwell: we have?!",
      "action": false,
      "timestamp": "2017-04-27T19:40:57+00:00"
    },
    {
      "id": "4884437a44a8424192df86ec062ea269",
      "sender": "sipa",
      "payload": "BlueMatt: bip50 was 30 deep, iirc",
      "action": false,
      "timestamp": "2017-04-27T19:41:17+00:00"
    },
    {
      "id": "ab844436d6e84bed9aabf439e77cb1c2",
      "sender": "BlueMatt",
      "payload": "oh, you mean the csv false-signaling reorgs?",
      "action": false,
      "timestamp": "2017-04-27T19:41:17+00:00"
    },
    {
      "id": "bf0553ca6dd642119b83ac4cbe14c8d7",
      "sender": "BlueMatt",
      "payload": "yea, ok",
      "action": false,
      "timestamp": "2017-04-27T19:41:22+00:00"
    },
    {
      "id": "8148991f63104c2da4dcd720623bb6e5",
      "sender": "sipa",
      "payload": "ok, i retract my suggestion for 10 deep",
      "action": false,
      "timestamp": "2017-04-27T19:41:44+00:00"
    },
    {
      "id": "3d8d5c6e5d2f441880f8206552b275b6",
      "sender": "jonasschnelli",
      "payload": "Would the two bit amount-of-blocks-available signaling be effective regarding the delay of address distribution?",
      "action": false,
      "timestamp": "2017-04-27T19:41:46+00:00"
    },
    {
      "id": "bfba69eb34be4d93921c5962f1b58073",
      "sender": "BlueMatt",
      "payload": "always need 2 * MAX_HUMAN_FIX_TIME_FACTOR for everything :p",
      "action": false,
      "timestamp": "2017-04-27T19:41:52+00:00"
    },
    {
      "id": "adb2af1e0980406eb94f41ed2ede6edf",
      "sender": "sipa",
      "payload": "but we do have 3 possibilities with 2 bits... perhaps we can have a 3rd limit",
      "action": false,
      "timestamp": "2017-04-27T19:42:02+00:00"
    },
    {
      "id": "fc29e3849d8e447fa27ecd1ddf3a1c9c",
      "sender": "jonasschnelli",
      "payload": "People tend to prune to MB rather then blocks (which could be a design mistake)",
      "action": false,
      "timestamp": "2017-04-27T19:42:08+00:00"
    },
    {
      "id": "391472e157264060a74efb4b42d815eb",
      "sender": "gmaxwell",
      "payload": "jonasschnelli: Why do you think it has much to do with address distribution delay at all?",
      "action": false,
      "timestamp": "2017-04-27T19:42:17+00:00"
    },
    {
      "id": "991136553a974723b70d8ef677055eaa",
      "sender": "gmaxwell",
      "payload": "if you keep the last 288 you keep the last 288.. you're not going to flicker that on and off.",
      "action": false,
      "timestamp": "2017-04-27T19:42:29+00:00"
    },
    {
      "id": "db8dee44dc7944b0a3d61b0d2d706d0d",
      "sender": "gmaxwell",
      "payload": "jonasschnelli: the design guarentees that you'll have 288 blocks.",
      "action": false,
      "timestamp": "2017-04-27T19:42:42+00:00"
    },
    {
      "id": "ac87c766456447c7b6fdcfa45817b34c",
      "sender": "gmaxwell",
      "payload": "(of the software)",
      "action": false,
      "timestamp": "2017-04-27T19:42:48+00:00"
    },
    {
      "id": "82ade67e5073462da797afa2767a1d00",
      "sender": "jonasschnelli",
      "payload": "gmaxwell: Maybe I'm looking to much to our seeders,... but the crawling till you serve IPs can be very delayed.",
      "action": false,
      "timestamp": "2017-04-27T19:42:53+00:00"
    },
    {
      "id": "10020a7368b34039b121895a5b88e769",
      "sender": "gmaxwell",
      "payload": "so?",
      "action": false,
      "timestamp": "2017-04-27T19:43:02+00:00"
    },
    {
      "id": "10a65a8806c241cb8d83b0f1df1921b0",
      "sender": "jtimon",
      "payload": "jonasschnelli: I think I agree on prunning by height being more useful",
      "action": false,
      "timestamp": "2017-04-27T19:43:09+00:00"
    },
    {
      "id": "3462c70fc0234d87be4dcf946fe21aca",
      "sender": "gmaxwell",
      "payload": "You'll signal you keep X if you're guarenteed to keep X.",
      "action": false,
      "timestamp": "2017-04-27T19:43:13+00:00"
    },
    {
      "id": "f0f2ad705076454cb53d77221a5444f8",
      "sender": "jtimon",
      "payload": "or relative height rather",
      "action": false,
      "timestamp": "2017-04-27T19:43:26+00:00"
    },
    {
      "id": "a05af48e36c24d5e8f30d1b6ba60eb49",
      "sender": "sipa",
      "payload": "s/height/depth/",
      "action": false,
      "timestamp": "2017-04-27T19:43:33+00:00"
    },
    {
      "id": "355b302f641a4601b240aff2764f4a6c",
      "sender": "jonasschnelli",
      "payload": "Okay. But prune=550 is a MB target. Does it guarantee and amount of blocks?",
      "action": false,
      "timestamp": "2017-04-27T19:43:36+00:00"
    },
    {
      "id": "450474389ad2401885a6784bb813ee25",
      "sender": "jtimon",
      "payload": "sipa: right, thanks",
      "action": false,
      "timestamp": "2017-04-27T19:43:42+00:00"
    },
    {
      "id": "1b1b31899b7345949411d4f07213c3ce",
      "sender": "jonasschnelli",
      "payload": "*an",
      "action": false,
      "timestamp": "2017-04-27T19:43:43+00:00"
    },
    {
      "id": "9c9180d864e14a539e2d70ae10403339",
      "sender": "gmaxwell",
      "payload": "jonasschnelli: it guarentees we'll keep 288 blocks. The whole feature was designed to guarentee that for reorg reasons, but people thought offering a MB centric UI would be more useful to users.",
      "action": false,
      "timestamp": "2017-04-27T19:44:10+00:00"
    },
    {
      "id": "3b6558585a8f4f73ad7f3e8346ca1e92",
      "sender": "gmaxwell",
      "payload": "I think in the future we'll change it to a limited set of options.",
      "action": false,
      "timestamp": "2017-04-27T19:44:21+00:00"
    },
    {
      "id": "63aacb36e0154cb19fcce3e96758b6e2",
      "sender": "gmaxwell",
      "payload": "Maybe all of them named after words for big in different languages, like starbucks. :P",
      "action": false,
      "timestamp": "2017-04-27T19:44:45+00:00"
    },
    {
      "id": "a7622b53e7404ba09bb409e1bdb79831",
      "sender": "jonasschnelli",
      "payload": "Okay. Fair enough...",
      "action": false,
      "timestamp": "2017-04-27T19:44:53+00:00"
    },
    {
      "id": "77bf16725ce04cfeb7653ea714845d7b",
      "sender": "achow101",
      "payload": "gmaxwell: the MB option confuses people though since it includes the undo data. people see 550 and they assume it means 550 blocks since 1 MB blocks",
      "action": false,
      "timestamp": "2017-04-27T19:44:53+00:00"
    },
    {
      "id": "8106cddcd72a464f92e35b8fb8f92868",
      "sender": "luke-jr",
      "payload": "eh, 550 MB is only guaranteed 137 blocks with segwit",
      "action": false,
      "timestamp": "2017-04-27T19:44:53+00:00"
    },
    {
      "id": "9d06798635bb4f869e8447366207de74",
      "sender": "luke-jr",
      "payload": "oh, forgot undo data",
      "action": false,
      "timestamp": "2017-04-27T19:45:04+00:00"
    },
    {
      "id": "456411e3bc214705b6ef7f93ef9be716",
      "sender": "sipa",
      "payload": "gmaxwell: \"For me a venti depruned node, please\"",
      "action": false,
      "timestamp": "2017-04-27T19:45:11+00:00"
    },
    {
      "id": "72ff292baf0947f1a9d318d00efd4085",
      "sender": "wumpus",
      "payload": "lol @ coffee names",
      "action": false,
      "timestamp": "2017-04-27T19:45:20+00:00"
    },
    {
      "id": "97865b6da8374dfc8cb44f18efed1014",
      "sender": "gmaxwell",
      "payload": "luke-jr: then that needs to get fixed.",
      "action": false,
      "timestamp": "2017-04-27T19:45:23+00:00"
    },
    {
      "id": "bf63308567304a0a8d835854df3c94a4",
      "sender": "jonasschnelli",
      "payload": "lol",
      "action": false,
      "timestamp": "2017-04-27T19:45:24+00:00"
    },
    {
      "id": "eb6ffaf02d194602a984301c2aff0ba7",
      "sender": "gmaxwell",
      "payload": "sipa: with a double shot of xthin.",
      "action": false,
      "timestamp": "2017-04-27T19:45:38+00:00"
    },
    {
      "id": "33b7d7e3099940fbb7bba39ea69cd4d0",
      "sender": "jonasschnelli",
      "payload": "pfff",
      "action": false,
      "timestamp": "2017-04-27T19:45:43+00:00"
    },
    {
      "id": "14fb151f74544243b663c70426865c2e",
      "sender": "gmaxwell",
      "payload": "luke-jr: easy fix.",
      "action": false,
      "timestamp": "2017-04-27T19:46:10+00:00"
    },
    {
      "id": "388bb72d8a704a1faea5481622b9a555",
      "sender": "luke-jr",
      "payload": "controversial fix",
      "action": false,
      "timestamp": "2017-04-27T19:46:18+00:00"
    },
    {
      "id": "d5dc11da8b114056a4c440ef30cf7e83",
      "sender": "sipa",
      "payload": "gmaxwell: it'll break existing configs",
      "action": false,
      "timestamp": "2017-04-27T19:46:24+00:00"
    },
    {
      "id": "87be38ed6bcd4c548b248de892a452f8",
      "sender": "jonasschnelli",
      "payload": "Okay. I can start writing a draft specs about the two bit (144/~1000) NODE_NETWORK_LIMITED.. will announce once I have something",
      "action": false,
      "timestamp": "2017-04-27T19:46:41+00:00"
    },
    {
      "id": "6cfcf3215c75449ca0cd197286ef46e0",
      "sender": "BlueMatt",
      "payload": "sipa: I'm sorry, I dont speak starbucks",
      "action": false,
      "timestamp": "2017-04-27T19:46:42+00:00"
    },
    {
      "id": "812c08c1e6d3496eaa2bfd790c5d010c",
      "sender": "gmaxwell",
      "payload": "sipa: so?",
      "action": false,
      "timestamp": "2017-04-27T19:46:49+00:00"
    },
    {
      "id": "7fb5cfce8bfc4b5ca0510718ebf72c7f",
      "sender": "gmaxwell",
      "payload": "jonasschnelli: seriously, like why did I bother commenting today?",
      "action": false,
      "timestamp": "2017-04-27T19:47:04+00:00"
    },
    {
      "id": "8f7ede54b39f4021b017f648db72dce5",
      "sender": "sipa",
      "payload": "BlueMatt: venti is italian for 20. easy. that's obviously more than \"grande\" or \"tall\"",
      "action": false,
      "timestamp": "2017-04-27T19:47:18+00:00"
    },
    {
      "id": "085e087edc2e4aa5bb7e65671faa89f3",
      "sender": "gmaxwell",
      "payload": "first peak is at 144, if _must_ keep more than that to be useful.",
      "action": false,
      "timestamp": "2017-04-27T19:47:22+00:00"
    },
    {
      "id": "ec98f548d8ee401882ad0fc315a437f1",
      "sender": "BlueMatt",
      "payload": "sipa: ehh, I'll stick with my *good* coffee, thanks",
      "action": false,
      "timestamp": "2017-04-27T19:47:49+00:00"
    },
    {
      "id": "7319df2add834f458f865c116a7fd015",
      "sender": "BlueMatt",
      "payload": "anyway, next topic?",
      "action": false,
      "timestamp": "2017-04-27T19:47:56+00:00"
    },
    {
      "id": "41a121ecb5224f9b86467dda819ab9bd",
      "sender": "wumpus",
      "payload": "#topic high priority for review",
      "action": false,
      "timestamp": "2017-04-27T19:48:08+00:00"
    },
    {
      "id": "a3f15a55899240c6837d1881d501f1b1",
      "sender": "praxeology",
      "payload": "My 2 cents: the UI should stay in MB, but underlying the variables stored by the software should be in block count... for the prune threshold.",
      "action": false,
      "timestamp": "2017-04-27T19:48:14+00:00"
    },
    {
      "id": "7986f3dcf8994127a15e32aff8d7a46d",
      "sender": "wumpus",
      "payload": "anything to add to project https://github.com/bitcoin/bitcoin/projects/8?",
      "action": false,
      "timestamp": "2017-04-27T19:48:43+00:00"
    },
    {
      "id": "9fe6d4a941f24bc18276f5545d4dfd13",
      "sender": "BlueMatt",
      "payload": "suggests adding #10199 for morcos",
      "action": true,
      "timestamp": "2017-04-27T19:48:55+00:00"
    },
    {
      "id": "ffb897a2ab214ccc9a8e5fa263c5a808",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10199 | Better fee estimates by morcos \u00c3\u0082\u00c2\u00b7 Pull Request #10199 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:48:56+00:00"
    },
    {
      "id": "8b1964cb062746e88ad90b695999eb94",
      "sender": "BlueMatt",
      "payload": "(who is out today)",
      "action": false,
      "timestamp": "2017-04-27T19:49:00+00:00"
    },
    {
      "id": "6af12d2bf67a48f085cf2f0487d62b36",
      "sender": "sipa",
      "payload": "i'd like to get review on #10195 (which i think is ready)",
      "action": false,
      "timestamp": "2017-04-27T19:49:17+00:00"
    },
    {
      "id": "45da5a98d9114ec59096c1e5e1fee5ca",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:49:18+00:00"
    },
    {
      "id": "16184dc96ae64cd5a9db2a3c92f34318",
      "sender": "BlueMatt",
      "payload": "humbly requests rebase of #7729 which is on that list",
      "action": true,
      "timestamp": "2017-04-27T19:49:20+00:00"
    },
    {
      "id": "c3dd48c43a01423c87efa53311c15f37",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/7729 | rpc: introduce label API for wallet by laanwj \u00c3\u0082\u00c2\u00b7 Pull Request #7729 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:49:21+00:00"
    },
    {
      "id": "17207ed4ece442e6a99619de2b9d22ff",
      "sender": "BlueMatt",
      "payload": "sipa: pyou already have an entry....",
      "action": false,
      "timestamp": "2017-04-27T19:49:26+00:00"
    },
    {
      "id": "94bdf056c2a34ac3855448ab37071eb7",
      "sender": "sipa",
      "payload": "oh :(",
      "action": false,
      "timestamp": "2017-04-27T19:49:30+00:00"
    },
    {
      "id": "caf02fe507c14bdaa7568da76c45b4d5",
      "sender": "wumpus",
      "payload": "added 10199",
      "action": false,
      "timestamp": "2017-04-27T19:49:50+00:00"
    },
    {
      "id": "ed2b9860ec064afab8bdba387b419821",
      "sender": "cfields",
      "payload": "It's not urgent, but #10285 is first in a long line towards libevent",
      "action": false,
      "timestamp": "2017-04-27T19:50:23+00:00"
    },
    {
      "id": "be90fa3997c24eb980730e97ce6b130f",
      "sender": "sipa",
      "payload": "ok, swap #10148 for #10195 then; 10148 needs more tests",
      "action": false,
      "timestamp": "2017-04-27T19:50:24+00:00"
    },
    {
      "id": "4f09d75dd9df4c1899261f0f304f7aa3",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10285 | net: refactor the connection process. moving towards async connections. by theuni \u00c3\u0082\u00c2\u00b7 Pull Request #10285 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:50:24+00:00"
    },
    {
      "id": "7f6434e51617422d85985ca2374de843",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10148 | [WIP] Use non-atomic flushing with block replay by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10148 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:50:25+00:00"
    },
    {
      "id": "fb7ccbc046944a1c957e52b23f2477c7",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:50:26+00:00"
    },
    {
      "id": "d411c7260d384fbeb808a2aa79e96709",
      "sender": "luke-jr",
      "payload": "suggested topic? planned obsolecense",
      "action": false,
      "timestamp": "2017-04-27T19:50:38+00:00"
    },
    {
      "id": "25691848506c48789610f38b5d44f305",
      "sender": "jtimon",
      "payload": "random though: what about maintaining the mb option an adding an incompatible one (you can only set one) with depth ? then the mb can be just an estimation that translates to depth on init, but you don't break old configs, only the expected guarantees about limits",
      "action": false,
      "timestamp": "2017-04-27T19:50:41+00:00"
    },
    {
      "id": "670b7a8a7e884dac9fb04906328ea851",
      "sender": "BlueMatt",
      "payload": "luke-jr: NACK",
      "action": false,
      "timestamp": "2017-04-27T19:51:00+00:00"
    },
    {
      "id": "cfc68c149fc14415a1b659c43468d2cd",
      "sender": "luke-jr",
      "payload": "BlueMatt: NACK topic or NACK it altogether? :/",
      "action": false,
      "timestamp": "2017-04-27T19:51:16+00:00"
    },
    {
      "id": "75acc6bee4e94ce4b73d1c6dfb3980fa",
      "sender": "achow101",
      "payload": "luke-jr: planned obsolecense is a bad name for it",
      "action": false,
      "timestamp": "2017-04-27T19:51:24+00:00"
    },
    {
      "id": "41978dfec3084475a16b3ca7ce9abb58",
      "sender": "BlueMatt",
      "payload": "second",
      "action": false,
      "timestamp": "2017-04-27T19:51:25+00:00"
    },
    {
      "id": "7600ea5eca2e4689a7bc2332bdd1e882",
      "sender": "wumpus",
      "payload": "added 10285, swapped #10148 for #10195",
      "action": false,
      "timestamp": "2017-04-27T19:52:09+00:00"
    },
    {
      "id": "32d01c8eccc8499e9189dabb8a7afd91",
      "sender": "luke-jr",
      "payload": "waits for topic change before going into discussion",
      "action": true,
      "timestamp": "2017-04-27T19:52:10+00:00"
    },
    {
      "id": "658a8c76e35d44d7b6fe79cabf9562af",
      "sender": "jtimon",
      "payload": "checks https://github.com/bitcoin/bitcoin/pull/8855 is on the priority list",
      "action": true,
      "timestamp": "2017-04-27T19:52:10+00:00"
    },
    {
      "id": "3b12a3ca86bd4cbb885c012ec9b0edb5",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10148 | [WIP] Use non-atomic flushing with block replay by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10148 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:52:12+00:00"
    },
    {
      "id": "02da2e04611541aab4d343becaa70d54",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:52:13+00:00"
    },
    {
      "id": "e20bcd593b1740c1be38779848c8fee5",
      "sender": "sipa",
      "payload": "thanks",
      "action": false,
      "timestamp": "2017-04-27T19:52:28+00:00"
    },
    {
      "id": "f1895043c07b4d12aa6e888ad6a24bf0",
      "sender": "wumpus",
      "payload": "#topic bitcoind expiration",
      "action": false,
      "timestamp": "2017-04-27T19:52:50+00:00"
    },
    {
      "id": "e8316bfa80594fa8b1de8d068ccc3b84",
      "sender": "jonasschnelli",
      "payload": "10282",
      "action": false,
      "timestamp": "2017-04-27T19:53:42+00:00"
    },
    {
      "id": "fc2e4fb117c94503ba821bcc073bf796",
      "sender": "jonasschnelli",
      "payload": "#10282",
      "action": false,
      "timestamp": "2017-04-27T19:53:44+00:00"
    },
    {
      "id": "95653e01a2814e71b241d12c911cc236",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/10282 | Expire bitcoind & bitcoin-qt 7-8 years after its last change by luke-jr \u00c3\u0082\u00c2\u00b7 Pull Request #10282 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2017-04-27T19:53:45+00:00"
    },
    {
      "id": "baf75ce2514d4b1d85cfb71973d9a545",
      "sender": "luke-jr",
      "payload": "BlueMatt: reasoning for NACK?",
      "action": false,
      "timestamp": "2017-04-27T19:53:50+00:00"
    },
    {
      "id": "fb123f2be0944246ba936ae1d7f90bcf",
      "sender": "cfields",
      "payload": "luke-jr: maybe explain reasoning for doing so first?",
      "action": false,
      "timestamp": "2017-04-27T19:54:11+00:00"
    },
    {
      "id": "8c26d7dcffad4f0ca4b2cc8d40fae7be",
      "sender": "luke-jr",
      "payload": "re achow101's comment, I don't really think it matters what we call it",
      "action": false,
      "timestamp": "2017-04-27T19:54:12+00:00"
    },
    {
      "id": "83a596ecbc1f482987613d3abc88ea99",
      "sender": "luke-jr",
      "payload": "cfields: 10282 has a full explanation",
      "action": false,
      "timestamp": "2017-04-27T19:54:23+00:00"
    },
    {
      "id": "30cdbf9f6fed463587974fe46d968e60",
      "sender": "petertodd",
      "payload": "any timeframe short enough to really be useful will probably be short enough to raise political risks...",
      "action": false,
      "timestamp": "2017-04-27T19:54:51+00:00"
    },
    {
      "id": "62e5d6ff0ddb4ebaa601040479e290c5",
      "sender": "luke-jr",
      "payload": "1) it's basically guaranteed to be unsafe by then; 2) hardforks become softforks with enough lead time",
      "action": false,
      "timestamp": "2017-04-27T19:54:51+00:00"
    },
    {
      "id": "251f96d22f244ccc907f0fe85feecb5c",
      "sender": "jtimon",
      "payload": "I think if it's optional and disabled by default it kind of defeats the point, but I certainly don't want that for myself or the users I recommend to use bitcoin core",
      "action": false,
      "timestamp": "2017-04-27T19:55:00+00:00"
    },
    {
      "id": "3b74c5addcaa4f53b494a21d42189001",
      "sender": "sipa",
      "payload": "luke-jr: i don't see how this has anything to do with consensus changes",
      "action": false,
      "timestamp": "2017-04-27T19:55:19+00:00"
    },
    {
      "id": "dcf9407f9f91441a9bbcf0b85a225665",
      "sender": "petertodd",
      "payload": "also, is there any precedent for this kind of expiration in other software?",
      "action": false,
      "timestamp": "2017-04-27T19:55:32+00:00"
    },
    {
      "id": "c9599eac49da415cb96ebd599eace1fe",
      "sender": "BlueMatt",
      "payload": "luke-jr: 110% sends the wrong message. if i expected any reasonable person to see that and think \"I need to think for myself about what consensus of the network is\" I'd be happy with it, but realistically the only people reading that will think \"oh, I have to switch to the latest thing from Bitcoin Core, for whatever Bitcoin Core is according to my local google server\"",
      "action": false,
      "timestamp": "2017-04-27T19:55:40+00:00"
    },
    {
      "id": "0a87760bed91470aa952e295114e77c3",
      "sender": "luke-jr",
      "payload": "jtimon: what is the use case for running node software over 7 years after its release, without maintenance?",
      "action": false,
      "timestamp": "2017-04-27T19:55:43+00:00"
    },
    {
      "id": "bb1a4e9aa2b8401ab9fff11132bb677b",
      "sender": "gmaxwell",
      "payload": "petertodd: yes, but I'm not aware of any that can be overridden.",
      "action": false,
      "timestamp": "2017-04-27T19:55:53+00:00"
    },
    {
      "id": "e07879e0b5d34f458238b1260d637867",
      "sender": "sipa",
      "payload": "luke-jr: i think insecurity of the software is perhaps a good reason, but not consensus",
      "action": false,
      "timestamp": "2017-04-27T19:56:06+00:00"
    },
    {
      "id": "5fdff181b1a14465b0de03f5c47f7dc9",
      "sender": "petertodd",
      "payload": "gmaxwell: got any examples?",
      "action": false,
      "timestamp": "2017-04-27T19:56:07+00:00"
    },
    {
      "id": "e55ea05bb8b742609befe3eb199d1fc9",
      "sender": "gmaxwell",
      "payload": "petertodd: see also the thing with debian and xscreensaver.",
      "action": false,
      "timestamp": "2017-04-27T19:56:13+00:00"
    },
    {
      "id": "f2c739d6964345078979356126102c6a",
      "sender": "luke-jr",
      "payload": "BlueMatt: that's a problem independent of this IMO",
      "action": false,
      "timestamp": "2017-04-27T19:56:32+00:00"
    },
    {
      "id": "a67194cabd7f44af91bb6c7b3481e1a6",
      "sender": "petertodd",
      "payload": "gmaxwell: ah, yeah, that crazy situation...",
      "action": false,
      "timestamp": "2017-04-27T19:56:35+00:00"
    },
    {
      "id": "4202775a4ba54b9581f2c79dbc7cedf9",
      "sender": "BlueMatt",
      "payload": "luke-jr: how is that independant of the thing which creates it? but, indeed, security may be a reasonable reason, not sure its justified, though",
      "action": false,
      "timestamp": "2017-04-27T19:57:02+00:00"
    },
    {
      "id": "0482b6b540344a42af71eeae10cc74d8",
      "sender": "BlueMatt",
      "payload": "am i really not allowed to not upgrade the bitcoind I've got running behind by bitcoind/xyz firewall?",
      "action": false,
      "timestamp": "2017-04-27T19:57:26+00:00"
    },
    {
      "id": "53afc5d8c8c44f2aad70ea77cd05f937",
      "sender": "luke-jr",
      "payload": "BlueMatt: people will mostly all update before this triggers; probably using the insecure method you describre",
      "action": false,
      "timestamp": "2017-04-27T19:57:33+00:00"
    },
    {
      "id": "898a7b6ffbc4436ba437a0647bef7dd9",
      "sender": "gmaxwell",
      "payload": "I agree with petertodd's point about short enough to be useful is short enough to be problematic. :( But there are other not really useful features...",
      "action": false,
      "timestamp": "2017-04-27T19:57:44+00:00"
    },
    {
      "id": "575d1d9ac396496b9fa409dae72a8167",
      "sender": "BlueMatt",
      "payload": "oops, bitcoind crashed in production",
      "action": false,
      "timestamp": "2017-04-27T19:57:50+00:00"
    },
    {
      "id": "1c48cc52b2334e6687a7ff8afa7094ec",
      "sender": "luke-jr",
      "payload": "BlueMatt: note this has an explicit override allowed",
      "action": false,
      "timestamp": "2017-04-27T19:58:23+00:00"
    },
    {
      "id": "29187cf5a2a04029b387494627cd2cf9",
      "sender": "petertodd",
      "payload": "gmaxwell: and there's a larger point too: chances are the surrounding software on your machine is also not getting updated anyway, so you've got other big problems",
      "action": false,
      "timestamp": "2017-04-27T19:58:26+00:00"
    },
    {
      "id": "21d3f82892384c6dab0ccd9d73872836",
      "sender": "luke-jr",
      "payload": "if you really don't want to upgrade, just add to your config file",
      "action": false,
      "timestamp": "2017-04-27T19:58:32+00:00"
    },
    {
      "id": "f1516560115e46d18efe47644873fed1",
      "sender": "BlueMatt",
      "payload": "luke-jr: yes, and you can do that /after/ your bitcoind has crashed",
      "action": false,
      "timestamp": "2017-04-27T19:58:35+00:00"
    },
    {
      "id": "54b857c7329e49beaa4b95adff30dd1e",
      "sender": "jtimon",
      "payload": "luke-jr: let's say my friend remembers what I told him about being up to date 6 years and 11 months after I helped him install bitcoin core",
      "action": false,
      "timestamp": "2017-04-27T19:58:36+00:00"
    },
    {
      "id": "2654992d29f541f595782a396047e25f",
      "sender": "BlueMatt",
      "payload": "which is kinda shit",
      "action": false,
      "timestamp": "2017-04-27T19:58:38+00:00"
    },
    {
      "id": "6ffc6e6ac3d54234998d4f8e0fd65f2f",
      "sender": "gmaxwell",
      "payload": "it would be nice to be able to say there are no nodes running older than X without the user deciding to keep them running.",
      "action": false,
      "timestamp": "2017-04-27T19:58:48+00:00"
    },
    {
      "id": "d8f34c10e5bf4b45a74c88ed5fffe05c",
      "sender": "luke-jr",
      "payload": "BlueMatt: you could do it before as well, but IMO after 7 years it's okay to force the user to do something",
      "action": false,
      "timestamp": "2017-04-27T19:58:58+00:00"
    },
    {
      "id": "f6ca0dca681042e884565070870cd1f1",
      "sender": "gmaxwell",
      "payload": "BlueMatt: yes, but the crash was an RCE and all your funds are now gone. :)",
      "action": false,
      "timestamp": "2017-04-27T19:59:04+00:00"
    },
    {
      "id": "3bf5a04e987a405091810cfc903724d5",
      "sender": "wumpus",
      "payload": "if you run nodes in production you'll have some system to monitor it",
      "action": false,
      "timestamp": "2017-04-27T19:59:27+00:00"
    },
    {
      "id": "7b8d9f2be13645259abb7292923ca161",
      "sender": "BlueMatt",
      "payload": "gmaxwell: not if its the bitcoind that everything talks to on your network and it just sits behind sufficient layers of regularly-updated bitcoind firewalls",
      "action": false,
      "timestamp": "2017-04-27T19:59:30+00:00"
    },
    {
      "id": "f12e0e5a086040e6ac2a2de55c333edd",
      "sender": "wumpus",
      "payload": "and summon an operator on crashes",
      "action": false,
      "timestamp": "2017-04-27T19:59:39+00:00"
    },
    {
      "id": "94499cc0e1d34a1dbb6423c4cb4b2255",
      "sender": "BlueMatt",
      "payload": "wumpus: lol, i meannnnn, maybe",
      "action": false,
      "timestamp": "2017-04-27T19:59:53+00:00"
    },
    {
      "id": "9795a55c1e264be09b8908b0e8dd8430",
      "sender": "sipa",
      "payload": "wumpus: hahaha, yes, with a server farm at the end of the rainbow",
      "action": false,
      "timestamp": "2017-04-27T20:00:08+00:00"
    },
    {
      "id": "c4dc26abd9364ef18b2e1e3366f1b03b",
      "sender": "luke-jr",
      "payload": "BlueMatt: and what if it doesn't crash, but someone exploits your failure to enforce a softfork?",
      "action": false,
      "timestamp": "2017-04-27T20:00:19+00:00"
    },
    {
      "id": "5e14d90dd85d4ab1bd4071d5da7d110c",
      "sender": "jtimon",
      "payload": "or shouldn't I recommend bitcoin core for a wallet?",
      "action": false,
      "timestamp": "2017-04-27T20:00:21+00:00"
    },
    {
      "id": "757365e9149e4977ad19f2e75a0af3da",
      "sender": "petertodd",
      "payload": "wumpus: you should talk to some banking IT guys about how hard it is to get approval to update things :)",
      "action": false,
      "timestamp": "2017-04-27T20:00:25+00:00"
    },
    {
      "id": "b97ea998fa18408e928c6b874a49905f",
      "sender": "luke-jr",
      "payload": "jtimon: I don't understand your argument.",
      "action": false,
      "timestamp": "2017-04-27T20:00:33+00:00"
    },
    {
      "id": "f14f9bbf054e40228cd15ba105c72070",
      "sender": "wumpus",
      "payload": "petertodd: I'm not saying anything about updating",
      "action": false,
      "timestamp": "2017-04-27T20:00:45+00:00"
    },
    {
      "id": "7031e8ab2011403cb91a4e9ddad8a6a5",
      "sender": "instagibbs",
      "payload": "jtimon, you can over-ride the setting, I believe",
      "action": false,
      "timestamp": "2017-04-27T20:00:54+00:00"
    },
    {
      "id": "802d9baebeba480aa28065b96e8d2eb7",
      "sender": "petertodd",
      "payload": "wumpus: literally touching a config option is an update by those standards",
      "action": false,
      "timestamp": "2017-04-27T20:01:08+00:00"
    },
    {
      "id": "6b42abbe9358480da67fff5e93b5694f",
      "sender": "jtimon",
      "payload": "instagibbs: oh, I missed that",
      "action": false,
      "timestamp": "2017-04-27T20:01:09+00:00"
    },
    {
      "id": "b92b971e202b4b5bb3325594b1eb874f",
      "sender": "wumpus",
      "payload": "only about crashes, if some software is important to your business and it crashes, you'll notice.",
      "action": false,
      "timestamp": "2017-04-27T20:01:18+00:00"
    },
    {
      "id": "a764e1a6db90424180c38c4d2328bf04",
      "sender": "wumpus",
      "payload": "anyhow",
      "action": false,
      "timestamp": "2017-04-27T20:01:41+00:00"
    },
    {
      "id": "2915bc14c7f04f07b3fed5f5f5e918a8",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2017-04-27T20:01:43+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "2aec4b0b203b40efa69966b7def6f8b5",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2017-04-27T19:02:01+00:00"
      },
      "operand": null,
      "id": "2aec4b0b203b40efa69966b7def6f8b5",
      "timestamp": "2017-04-27T19:02:01+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "1782e01c49cc47e887d2407302de14af",
        "sender": "wumpus",
        "payload": "#topic hd-restore (jonasschnelli)",
        "action": false,
        "timestamp": "2017-04-27T19:03:17+00:00"
      },
      "operand": "hd-restore (jonasschnelli)",
      "id": "1782e01c49cc47e887d2407302de14af",
      "timestamp": "2017-04-27T19:03:17+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "1be81c61f61743e88724075d7035ed83",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10240 | [WIP] Add basic HD wallet restore functionality by jonasschnelli \u00c3\u0082\u00c2\u00b7 Pull Request #10240 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:04:13+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10240",
      "id": "1be81c61f61743e88724075d7035ed83",
      "timestamp": "2017-04-27T19:04:13+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "8ce2c4f575684253a9387ab2b406030c",
        "sender": "wumpus",
        "payload": "#topic libconsensus (BlueMatt)",
        "action": false,
        "timestamp": "2017-04-27T19:19:32+00:00"
      },
      "operand": "libconsensus (BlueMatt)",
      "id": "8ce2c4f575684253a9387ab2b406030c",
      "timestamp": "2017-04-27T19:19:32+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "7d7931b9a6874c40be462c823f2ecfff",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/771 | CBlockStore by TheBlueMatt \u00c3\u0082\u00c2\u00b7 Pull Request #771 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:19:53+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/771",
      "id": "7d7931b9a6874c40be462c823f2ecfff",
      "timestamp": "2017-04-27T19:19:53+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "124ffa2f5b014af7bce8399b914b7341",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10279 | Add a CChainState class to validation.cpp to take another step towards clarifying internal interfaces by TheBlueMatt \u00c3\u0082\u00c2\u00b7 Pull Request #10279 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:20:24+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10279",
      "id": "124ffa2f5b014af7bce8399b914b7341",
      "timestamp": "2017-04-27T19:20:24+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "324941213bfc4de7924fb8ef577e5a65",
        "sender": "wumpus",
        "payload": "#topic limited NODE_NETWORK (NODE_NETWORK_LIMITED) signaling (jonasschnelli)",
        "action": false,
        "timestamp": "2017-04-27T19:25:36+00:00"
      },
      "operand": "limited NODE_NETWORK (NODE_NETWORK_LIMITED) signaling (jonasschnelli)",
      "id": "324941213bfc4de7924fb8ef577e5a65",
      "timestamp": "2017-04-27T19:25:36+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "41a121ecb5224f9b86467dda819ab9bd",
        "sender": "wumpus",
        "payload": "#topic high priority for review",
        "action": false,
        "timestamp": "2017-04-27T19:48:08+00:00"
      },
      "operand": "high priority for review",
      "id": "41a121ecb5224f9b86467dda819ab9bd",
      "timestamp": "2017-04-27T19:48:08+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "ffb897a2ab214ccc9a8e5fa263c5a808",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10199 | Better fee estimates by morcos \u00c3\u0082\u00c2\u00b7 Pull Request #10199 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:48:56+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10199",
      "id": "ffb897a2ab214ccc9a8e5fa263c5a808",
      "timestamp": "2017-04-27T19:48:56+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "45da5a98d9114ec59096c1e5e1fee5ca",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:49:18+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10195",
      "id": "45da5a98d9114ec59096c1e5e1fee5ca",
      "timestamp": "2017-04-27T19:49:18+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "c3dd48c43a01423c87efa53311c15f37",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/7729 | rpc: introduce label API for wallet by laanwj \u00c3\u0082\u00c2\u00b7 Pull Request #7729 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:49:21+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/7729",
      "id": "c3dd48c43a01423c87efa53311c15f37",
      "timestamp": "2017-04-27T19:49:21+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "4f09d75dd9df4c1899261f0f304f7aa3",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10285 | net: refactor the connection process. moving towards async connections. by theuni \u00c3\u0082\u00c2\u00b7 Pull Request #10285 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:50:24+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10285",
      "id": "4f09d75dd9df4c1899261f0f304f7aa3",
      "timestamp": "2017-04-27T19:50:24+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "7f6434e51617422d85985ca2374de843",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10148 | [WIP] Use non-atomic flushing with block replay by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10148 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:50:25+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10148",
      "id": "7f6434e51617422d85985ca2374de843",
      "timestamp": "2017-04-27T19:50:25+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "fb7ccbc046944a1c957e52b23f2477c7",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:50:26+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10195",
      "id": "fb7ccbc046944a1c957e52b23f2477c7",
      "timestamp": "2017-04-27T19:50:26+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "3b12a3ca86bd4cbb885c012ec9b0edb5",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10148 | [WIP] Use non-atomic flushing with block replay by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10148 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:52:12+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10148",
      "id": "3b12a3ca86bd4cbb885c012ec9b0edb5",
      "timestamp": "2017-04-27T19:52:12+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "02da2e04611541aab4d343becaa70d54",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10195 | Switch chainstate db and cache to per-txout model by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #10195 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:52:13+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10195",
      "id": "02da2e04611541aab4d343becaa70d54",
      "timestamp": "2017-04-27T19:52:13+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "f1895043c07b4d12aa6e888ad6a24bf0",
        "sender": "wumpus",
        "payload": "#topic bitcoind expiration",
        "action": false,
        "timestamp": "2017-04-27T19:52:50+00:00"
      },
      "operand": "bitcoind expiration",
      "id": "f1895043c07b4d12aa6e888ad6a24bf0",
      "timestamp": "2017-04-27T19:52:50+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "95653e01a2814e71b241d12c911cc236",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/10282 | Expire bitcoind & bitcoin-qt 7-8 years after its last change by luke-jr \u00c3\u0082\u00c2\u00b7 Pull Request #10282 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2017-04-27T19:53:45+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/10282",
      "id": "95653e01a2814e71b241d12c911cc236",
      "timestamp": "2017-04-27T19:53:45+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "2915bc14c7f04f07b3fed5f5f5e918a8",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2017-04-27T20:01:43+00:00"
      },
      "operand": null,
      "id": "2915bc14c7f04f07b3fed5f5f5e918a8",
      "timestamp": "2017-04-27T20:01:43+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}