{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "36f2d5fc1de7472f82073c9ac9b63fdc",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 76,
    "lightningbot": 2,
    "sipa": 73,
    "CodeShark": 39,
    "jonasschnelli": 19,
    "achow101": 3,
    "jtimon": 59,
    "btcdrak": 2,
    "instagibbs_": 13,
    "paveljanik": 1,
    "jl2012": 1,
    "BlueMatt": 15,
    "kanzure": 21,
    "Victorsueca": 5,
    "cfields_": 1,
    "gmaxwell": 10,
    "morcos": 20,
    "Chris_Stewart_5": 7,
    "jeremyrubin": 1,
    "michagogo": 3,
    "MarcoFalke": 4
  },
  "start_time": "2016-10-20T19:00:15+00:00",
  "end_time": "2016-10-20T20:00:08+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": "libconsensus",
  "messages": [
    {
      "id": "7689fe5249144b6b92a437667bcaa927",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2016-10-20T19:00:15+00:00"
    },
    {
      "id": "e32de406fd4c4c17979f7ef14e1751a3",
      "sender": "lightningbot",
      "payload": "Meeting started Thu Oct 20 19:00:15 2016 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2016-10-20T19:00:15+00:00"
    },
    {
      "id": "bba99695d6fb4b7b8c571293a6a8ae62",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2016-10-20T19:00:15+00:00"
    },
    {
      "id": "9e7ffb86f9a449da9bcdea0bf465c57d",
      "sender": "wumpus",
      "payload": "proposed topics?",
      "action": false,
      "timestamp": "2016-10-20T19:00:24+00:00"
    },
    {
      "id": "c43d2ca44f72426b9b31fff2a253a651",
      "sender": "sipa",
      "payload": "proposed cheer: yay for 0.13.1rc",
      "action": false,
      "timestamp": "2016-10-20T19:00:38+00:00"
    },
    {
      "id": "bf2c9aa288aa4a42a67047161116519e",
      "sender": "CodeShark",
      "payload": "^ :DDD",
      "action": false,
      "timestamp": "2016-10-20T19:00:45+00:00"
    },
    {
      "id": "036e664750f34b299c9b05eb6e34144d",
      "sender": "jonasschnelli",
      "payload": "heh",
      "action": false,
      "timestamp": "2016-10-20T19:00:50+00:00"
    },
    {
      "id": "33317218b70d4d3c922afa9a0044fbf3",
      "sender": "wumpus",
      "payload": "yay for 0.13.1rc, haven't heard of any real problems yet",
      "action": false,
      "timestamp": "2016-10-20T19:00:55+00:00"
    },
    {
      "id": "c68a5605aa39436fae0a1fa6809f039f",
      "sender": "achow101",
      "payload": "hmm. where's gmaxwell-ping-bot",
      "action": false,
      "timestamp": "2016-10-20T19:01:15+00:00"
    },
    {
      "id": "f4083a2f552348eba43ddb2807e6d0af",
      "sender": "wumpus",
      "payload": "not that it says much given how short it's been out, but ok, it's somewhat promising :)",
      "action": false,
      "timestamp": "2016-10-20T19:01:23+00:00"
    },
    {
      "id": "18a907428f3e43f0971c142e38a156bb",
      "sender": "CodeShark",
      "payload": "if only execution paths with problems tended to occur first :p",
      "action": false,
      "timestamp": "2016-10-20T19:01:53+00:00"
    },
    {
      "id": "4d9bdb00cecb40dfb2d1efed3a6fc311",
      "sender": "wumpus",
      "payload": "#bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier",
      "action": false,
      "timestamp": "2016-10-20T19:02:03+00:00"
    },
    {
      "id": "ba37c08d3d12485ba72dd09050cc0c47",
      "sender": "jtimon",
      "payload": "proposed topic: libconsensus: do we want to expose a verifyBlock function or a processblock one? do we want to expose verifyHeader and verifyTx ?",
      "action": false,
      "timestamp": "2016-10-20T19:02:07+00:00"
    },
    {
      "id": "3d7b3cfd27874268be8f667b43f0c15c",
      "sender": "btcdrak",
      "payload": "here",
      "action": false,
      "timestamp": "2016-10-20T19:02:34+00:00"
    },
    {
      "id": "1fa9aad750034c12a814848a47ef02fc",
      "sender": "wumpus",
      "payload": "ah yes I have another topic about the libconsensus interface: what to do with undocumented flags",
      "action": false,
      "timestamp": "2016-10-20T19:02:50+00:00"
    },
    {
      "id": "baba1c53cf874d8fab8f8001abe2b2a8",
      "sender": "instagibbs_",
      "payload": "present",
      "action": false,
      "timestamp": "2016-10-20T19:02:51+00:00"
    },
    {
      "id": "168e1b8968184437bdb3b8dfad62af86",
      "sender": "btcdrak",
      "payload": "ping jl2012",
      "action": false,
      "timestamp": "2016-10-20T19:02:59+00:00"
    },
    {
      "id": "b1a3c5c04a374aeb9073391e89b8cff0",
      "sender": "paveljanik",
      "payload": "here",
      "action": true,
      "timestamp": "2016-10-20T19:03:01+00:00"
    },
    {
      "id": "165d3bd660d94112a86a4ee86bd44178",
      "sender": "jl2012",
      "payload": "yes",
      "action": false,
      "timestamp": "2016-10-20T19:03:08+00:00"
    },
    {
      "id": "e664b90c7a664e4ca2e265f60c415aeb",
      "sender": "wumpus",
      "payload": "jl2012 was already here",
      "action": false,
      "timestamp": "2016-10-20T19:03:10+00:00"
    },
    {
      "id": "510b28ed17434c6caf7c7148c782430f",
      "sender": "jtimon",
      "payload": "wumpus: like bip113 ? or more like bip30 ?",
      "action": false,
      "timestamp": "2016-10-20T19:03:35+00:00"
    },
    {
      "id": "d7570fdea2cc4227acb80ef44d36aac2",
      "sender": "wumpus",
      "payload": "jtimon: https://github.com/bitcoin/bitcoin/pull/8976",
      "action": false,
      "timestamp": "2016-10-20T19:03:46+00:00"
    },
    {
      "id": "3a95a55df86844c6b24f742742eec09c",
      "sender": "wumpus",
      "payload": "#topic libconsensus",
      "action": false,
      "timestamp": "2016-10-20T19:03:53+00:00"
    },
    {
      "id": "b5653a344f754c48afd9f33493748f1d",
      "sender": "wumpus",
      "payload": "currently it's possible to pass non-consensus flags into libconsensus",
      "action": false,
      "timestamp": "2016-10-20T19:04:05+00:00"
    },
    {
      "id": "254d1582ad3c41f48f52d4fd659f809e",
      "sender": "wumpus",
      "payload": "e.g. policy only flags",
      "action": false,
      "timestamp": "2016-10-20T19:04:07+00:00"
    },
    {
      "id": "a1268011b05d422e936199aed718a0dc",
      "sender": "CodeShark",
      "payload": "yes, that should be pulled out",
      "action": false,
      "timestamp": "2016-10-20T19:04:25+00:00"
    },
    {
      "id": "d3fabbad84b945de88a1df34218b717e",
      "sender": "sipa",
      "payload": "i believe we should not expose policy functions in libconsensus",
      "action": false,
      "timestamp": "2016-10-20T19:04:26+00:00"
    },
    {
      "id": "21c4b629e49741b185a29a3880a098b2",
      "sender": "sipa",
      "payload": "as that would make it impossible to later split off policy code into a separate codebase",
      "action": false,
      "timestamp": "2016-10-20T19:04:49+00:00"
    },
    {
      "id": "559637973e29420ba93a05b71b832f93",
      "sender": "BlueMatt",
      "payload": "sipa: ack",
      "action": false,
      "timestamp": "2016-10-20T19:04:52+00:00"
    },
    {
      "id": "4bde9a847dcb47f19c5cf54ddf531f93",
      "sender": "sipa",
      "payload": "and consensus code should end up being isolated",
      "action": false,
      "timestamp": "2016-10-20T19:05:00+00:00"
    },
    {
      "id": "c43e401471b84143b66b3ac66a32f4fa",
      "sender": "wumpus",
      "payload": "ok so that means you agree with #8976",
      "action": false,
      "timestamp": "2016-10-20T19:05:04+00:00"
    },
    {
      "id": "16c9016ec82644b09aa379eda42795dd",
      "sender": "instagibbs_",
      "payload": "was there thought otherwise? (I'm outsider to this work)",
      "action": false,
      "timestamp": "2016-10-20T19:05:10+00:00"
    },
    {
      "id": "2908e3d35914440a95372bc3e3e40f93",
      "sender": "jonasschnelli",
      "payload": "https://github.com/bitcoin/bitcoin/pull/8976",
      "action": false,
      "timestamp": "2016-10-20T19:05:20+00:00"
    },
    {
      "id": "9a170bd2045a4e2a8701639fa92935a5",
      "sender": "CodeShark",
      "payload": "yeah, doesn't seem very controversial",
      "action": false,
      "timestamp": "2016-10-20T19:05:21+00:00"
    },
    {
      "id": "9c5941cbfa2a401599540b3bf9d22470",
      "sender": "jtimon",
      "payload": "I agree, currently it is not possible (at least using bitcoinconsensus_verifyScript)",
      "action": false,
      "timestamp": "2016-10-20T19:05:22+00:00"
    },
    {
      "id": "bf75d1ff5f884d1289f57baf6baea604",
      "sender": "instagibbs_",
      "payload": "ah I see what you mean",
      "action": false,
      "timestamp": "2016-10-20T19:05:32+00:00"
    },
    {
      "id": "dddc6b7a537c4800959eac5c5635d666",
      "sender": "wumpus",
      "payload": "no, I don't think so. But people may be relying on this. I don't know anyone that does though.",
      "action": false,
      "timestamp": "2016-10-20T19:05:32+00:00"
    },
    {
      "id": "96a6a15e64c049a3b01216e395971904",
      "sender": "wumpus",
      "payload": "and NicolasDorier is okay with it",
      "action": false,
      "timestamp": "2016-10-20T19:05:37+00:00"
    },
    {
      "id": "8b9b30a1c00d42919dbbc290415e33b6",
      "sender": "BlueMatt",
      "payload": "wumpus: dont have a strong opinion, but I'm fine with that",
      "action": false,
      "timestamp": "2016-10-20T19:05:50+00:00"
    },
    {
      "id": "e32a40ff751a4a1e9d372580f7603b0a",
      "sender": "wumpus",
      "payload": "if there is to be a policy script library it'll need to be separate imo",
      "action": false,
      "timestamp": "2016-10-20T19:06:04+00:00"
    },
    {
      "id": "f51a154c9d7e4a5286d9d2b9332b37e3",
      "sender": "jtimon",
      "payload": "btw, currently the flags in script/bitcoinconsensus.h and in script/interpreter.h need to match, that shouldn't be the case",
      "action": false,
      "timestamp": "2016-10-20T19:06:15+00:00"
    },
    {
      "id": "f4b830a9dcba4013954cc81d4f768fee",
      "sender": "wumpus",
      "payload": "this is lib*consensus*",
      "action": false,
      "timestamp": "2016-10-20T19:06:20+00:00"
    },
    {
      "id": "b014e324039b45a482abe84bc3a31936",
      "sender": "sipa",
      "payload": "jonasschnelli: agree",
      "action": false,
      "timestamp": "2016-10-20T19:06:20+00:00"
    },
    {
      "id": "1f54faa3c8784a2f8a0cd8f786dc790c",
      "sender": "sipa",
      "payload": "eh, jtimon: agree",
      "action": false,
      "timestamp": "2016-10-20T19:06:23+00:00"
    },
    {
      "id": "b65328353c3f445492db70d044ad368d",
      "sender": "wumpus",
      "payload": "jtimon: no, they don't need to match, that's just an artifact",
      "action": false,
      "timestamp": "2016-10-20T19:06:38+00:00"
    },
    {
      "id": "24e13cb90f0b420eaf42967a2843b1c9",
      "sender": "sipa",
      "payload": "wumpus: is there are translation layer?",
      "action": false,
      "timestamp": "2016-10-20T19:06:56+00:00"
    },
    {
      "id": "b1efca6c12db409aa5c5dca2fa3ef55e",
      "sender": "wumpus",
      "payload": "although it's no longer possible to change the flags now",
      "action": false,
      "timestamp": "2016-10-20T19:07:00+00:00"
    },
    {
      "id": "026012f69cd646f8b0db8d59f23b0d06",
      "sender": "wumpus",
      "payload": "ABI for libconsensus is fixed",
      "action": false,
      "timestamp": "2016-10-20T19:07:10+00:00"
    },
    {
      "id": "7adef69b3a624fc681ff90508d41421b",
      "sender": "jtimon",
      "payload": "wumpus: I mean, if I change  bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS             = (1U << 11) to some other number different from 11, things won't work",
      "action": false,
      "timestamp": "2016-10-20T19:07:20+00:00"
    },
    {
      "id": "92ffd1a9aae84acc946ee6174580ea67",
      "sender": "wumpus",
      "payload": "sipa: no, that was never added",
      "action": false,
      "timestamp": "2016-10-20T19:07:22+00:00"
    },
    {
      "id": "e834b4c34a2d404abdff0c179e64240f",
      "sender": "sipa",
      "payload": "we should add one",
      "action": false,
      "timestamp": "2016-10-20T19:07:28+00:00"
    },
    {
      "id": "0af9a81557e8456bbfe206049aa75aac",
      "sender": "sipa",
      "payload": "and keep the flags for the existing bits",
      "action": false,
      "timestamp": "2016-10-20T19:07:35+00:00"
    },
    {
      "id": "ec8c2b8696864d8f9f3c3c8e3f3f75f4",
      "sender": "jtimon",
      "payload": "agreed",
      "action": false,
      "timestamp": "2016-10-20T19:07:35+00:00"
    },
    {
      "id": "345eb32eb1f64106bff960e1b2fbb542",
      "sender": "sipa",
      "payload": "as passthrough",
      "action": false,
      "timestamp": "2016-10-20T19:07:40+00:00"
    },
    {
      "id": "302268a0c28247af82974294c3681275",
      "sender": "wumpus",
      "payload": "yes, there should be a translation layer, though the current bits can no longer be changed",
      "action": false,
      "timestamp": "2016-10-20T19:07:42+00:00"
    },
    {
      "id": "ebd3ed453e0149e2ba44ea3e062a5c0e",
      "sender": "wumpus",
      "payload": "agreed",
      "action": false,
      "timestamp": "2016-10-20T19:07:45+00:00"
    },
    {
      "id": "57ae57c58a66427fb24dc52894861ba4",
      "sender": "sipa",
      "payload": "but new ones can fill up the holes",
      "action": false,
      "timestamp": "2016-10-20T19:07:46+00:00"
    },
    {
      "id": "87930b692a8d45899259a2e11f66ce43",
      "sender": "jtimon",
      "payload": "btw, related branch: https://github.com/jtimon/bitcoin/commits/0.13-consensus-flags",
      "action": false,
      "timestamp": "2016-10-20T19:08:12+00:00"
    },
    {
      "id": "05821f6585c747cca01b1979f9347bad",
      "sender": "wumpus",
      "payload": "at the lesat we should add the error when invalid flags are passed",
      "action": false,
      "timestamp": "2016-10-20T19:08:15+00:00"
    },
    {
      "id": "b2c84bef8df740d481ad9ec862a4b0ff",
      "sender": "CodeShark",
      "payload": "is anyone using these flags as ints rather than just as an enum?",
      "action": false,
      "timestamp": "2016-10-20T19:08:26+00:00"
    },
    {
      "id": "4e48559d6a59416abcae0222201f2775",
      "sender": "wumpus",
      "payload": "this will discourage people from doing what they're doing now, e.g. treating it as a pass-through",
      "action": false,
      "timestamp": "2016-10-20T19:08:31+00:00"
    },
    {
      "id": "d24160f9d26344f7a4734637d6863c71",
      "sender": "wumpus",
      "payload": "they're using it as an unsigned int because that's the type passed in, remember it's a C interface, enums don't support bit field combos",
      "action": false,
      "timestamp": "2016-10-20T19:09:05+00:00"
    },
    {
      "id": "8840940c7730403fa0b33d5ef2f3c32a",
      "sender": "sipa",
      "payload": "CodeShark: we're already abusing enum here. it's a bit field, not an enum",
      "action": false,
      "timestamp": "2016-10-20T19:09:06+00:00"
    },
    {
      "id": "ac48d193069f41599ac0aa5b552013c8",
      "sender": "sipa",
      "payload": "the enum is just an easy way to give the constants name",
      "action": false,
      "timestamp": "2016-10-20T19:09:14+00:00"
    },
    {
      "id": "64b0737f8cf14654b881d5c414525bda",
      "sender": "jtimon",
      "payload": "CodeShark: AFAIK there used always like if (flags & MY_FLAG)",
      "action": false,
      "timestamp": "2016-10-20T19:09:15+00:00"
    },
    {
      "id": "4f70b33c63cb4ba486eac40796e20529",
      "sender": "sipa",
      "payload": "for almost all operations we do with these enums, they decay into integers",
      "action": false,
      "timestamp": "2016-10-20T19:09:36+00:00"
    },
    {
      "id": "9f96e83aca114d4b976e96d170980cd3",
      "sender": "wumpus",
      "payload": "yes",
      "action": false,
      "timestamp": "2016-10-20T19:09:41+00:00"
    },
    {
      "id": "4e80d51f37c941e1b74f020a050a342b",
      "sender": "CodeShark",
      "payload": "right - I meant, does it matter if we shuffle the bits as long as the integer values are not used anywhere outside the definitions?",
      "action": false,
      "timestamp": "2016-10-20T19:09:56+00:00"
    },
    {
      "id": "e2c2a00a905e4b509b2a93cb344519f5",
      "sender": "sipa",
      "payload": "CodeShark: that breaks the ABI",
      "action": false,
      "timestamp": "2016-10-20T19:10:08+00:00"
    },
    {
      "id": "05d15d3de295432d9c9cecda1502a989",
      "sender": "wumpus",
      "payload": "you can't shuffle the bits because it would break the *binary* interface",
      "action": false,
      "timestamp": "2016-10-20T19:10:13+00:00"
    },
    {
      "id": "732c259c5d4848c0b0a6cd584712d901",
      "sender": "CodeShark",
      "payload": "oh...",
      "action": false,
      "timestamp": "2016-10-20T19:10:18+00:00"
    },
    {
      "id": "2f13fa7fe73647a38ead0c481ce5a900",
      "sender": "sipa",
      "payload": "you can't link with an older version of the library in that case",
      "action": false,
      "timestamp": "2016-10-20T19:10:19+00:00"
    },
    {
      "id": "c15e7f758bcb4646854b5cd22922e804",
      "sender": "CodeShark",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-10-20T19:10:23+00:00"
    },
    {
      "id": "04268c8a828749e5983bb6a3a89e0639",
      "sender": "CodeShark",
      "payload": "gotcha",
      "action": false,
      "timestamp": "2016-10-20T19:10:30+00:00"
    },
    {
      "id": "97e8b42b75e5464786f568c4ff39957b",
      "sender": "wumpus",
      "payload": "the idea is that you can jsut drop in the 0.13.1 consensus library in place of the 0.13.0 one and it will work",
      "action": false,
      "timestamp": "2016-10-20T19:10:43+00:00"
    },
    {
      "id": "3317667986b8444da46e28f16ad5fef3",
      "sender": "sipa",
      "payload": "without recompiling your client",
      "action": false,
      "timestamp": "2016-10-20T19:11:08+00:00"
    },
    {
      "id": "69a629bad16e43bdad222cf8e61bd94c",
      "sender": "wumpus",
      "payload": "arguably the SEGWIT bit can be moved until 0.13.1 is finalized, but meh",
      "action": false,
      "timestamp": "2016-10-20T19:11:10+00:00"
    },
    {
      "id": "cdd4f1a5efca4de5b6df48cb0646bbe9",
      "sender": "sipa",
      "payload": "indeed, meh.",
      "action": false,
      "timestamp": "2016-10-20T19:11:23+00:00"
    },
    {
      "id": "4fcf537bc8104389ac86b8eaaed1faa2",
      "sender": "jtimon",
      "payload": "these are the consensus flags I end with in that branch: https://github.com/jtimon/bitcoin/blob/0.13-consensus-flags/src/consensus/flags.h",
      "action": false,
      "timestamp": "2016-10-20T19:12:06+00:00"
    },
    {
      "id": "3b2c7e39f4584969bcf84a44370d53e5",
      "sender": "CodeShark",
      "payload": "sipa: so you're saying we can reuse the bits that get vacated when we remove the policy flags",
      "action": false,
      "timestamp": "2016-10-20T19:12:10+00:00"
    },
    {
      "id": "ac60bd096f05457ba9cc51525e9dcea2",
      "sender": "sipa",
      "payload": "CodeShark: yes",
      "action": false,
      "timestamp": "2016-10-20T19:12:24+00:00"
    },
    {
      "id": "9d24d94a2163489e8578c838c75073bb",
      "sender": "sipa",
      "payload": "as those were never part of the abi",
      "action": false,
      "timestamp": "2016-10-20T19:12:34+00:00"
    },
    {
      "id": "6c5bc8a5ed3249339e366c8c5e620e45",
      "sender": "wumpus",
      "payload": "CodeShark: the policy flags were never really allowed by the interface, it's a bug that it posibble to specify them at all",
      "action": false,
      "timestamp": "2016-10-20T19:12:37+00:00"
    },
    {
      "id": "6a1aa11451db4767bee27224c7f9d0ab",
      "sender": "sipa",
      "payload": "*api",
      "action": false,
      "timestamp": "2016-10-20T19:12:40+00:00"
    },
    {
      "id": "8c858e2a2bba41e6900b0f5807c9b0fb",
      "sender": "wumpus",
      "payload": "this is what #8976 fixes by adding input checking on the flags",
      "action": false,
      "timestamp": "2016-10-20T19:12:58+00:00"
    },
    {
      "id": "a40b397931d8408da03866b67a056d39",
      "sender": "jtimon",
      "payload": "and my preference would be to expose a GetConsensusFlags call in libconsensus too",
      "action": false,
      "timestamp": "2016-10-20T19:13:14+00:00"
    },
    {
      "id": "fe0b3b9408b94957bba2b9c3c2a1ec01",
      "sender": "wumpus",
      "payload": "what would that do?",
      "action": false,
      "timestamp": "2016-10-20T19:13:35+00:00"
    },
    {
      "id": "e3b0136fa714406f98a30984f651910e",
      "sender": "jtimon",
      "payload": "to hide the bip9 and previous developments stuff",
      "action": false,
      "timestamp": "2016-10-20T19:13:36+00:00"
    },
    {
      "id": "0f2cf10717b14b71a64dffe9959c2846",
      "sender": "jtimon",
      "payload": "you call it, now you know which flags to use verifyScript, verifyTx or verifyBlock (or verifyBlock could call it internally)",
      "action": false,
      "timestamp": "2016-10-20T19:14:11+00:00"
    },
    {
      "id": "09d18b5897af40b1914dfbe09a0f1d0c",
      "sender": "sipa",
      "payload": "and you pass in all block headers?",
      "action": false,
      "timestamp": "2016-10-20T19:14:44+00:00"
    },
    {
      "id": "14c4d6aafde140de91ad8401a70945be",
      "sender": "jtimon",
      "payload": "https://github.com/jtimon/bitcoin/blob/0.13-consensus-flags/src/versionbits.cpp#L153",
      "action": false,
      "timestamp": "2016-10-20T19:14:52+00:00"
    },
    {
      "id": "51236f86d7c24133a778241e81585b7e",
      "sender": "jtimon",
      "payload": "no, the same CBlockIndex interface used for verifyHeader",
      "action": false,
      "timestamp": "2016-10-20T19:15:20+00:00"
    },
    {
      "id": "c15d146ab00d4469a2f1dcca34e1589f",
      "sender": "sipa",
      "payload": "i really don't like turning our internal representation for headers into an index",
      "action": false,
      "timestamp": "2016-10-20T19:15:59+00:00"
    },
    {
      "id": "48747f71c63244f88654bb1d9efbb0b4",
      "sender": "jtimon",
      "payload": "similar to https://github.com/bitcoin/bitcoin/pull/8493",
      "action": false,
      "timestamp": "2016-10-20T19:15:59+00:00"
    },
    {
      "id": "73dc7c2a94d4498897016a59db1d8b7f",
      "sender": "sipa",
      "payload": "*into an interface",
      "action": false,
      "timestamp": "2016-10-20T19:16:11+00:00"
    },
    {
      "id": "1d621d04b1a2426e966e2695480a4758",
      "sender": "CodeShark",
      "payload": "sipa: agreed",
      "action": false,
      "timestamp": "2016-10-20T19:16:13+00:00"
    },
    {
      "id": "7e0f58fb439a41858b4a8437a3a1c078",
      "sender": "CodeShark",
      "payload": "it could be done better",
      "action": false,
      "timestamp": "2016-10-20T19:16:22+00:00"
    },
    {
      "id": "1f1b702b03fd4be99db524f2bca430c0",
      "sender": "jtimon",
      "payload": "other ideas to interface with storage ?",
      "action": false,
      "timestamp": "2016-10-20T19:16:24+00:00"
    },
    {
      "id": "2c1f76278e894b31af8b4e1e2e57e1d7",
      "sender": "CodeShark",
      "payload": "without exposing all that crap",
      "action": false,
      "timestamp": "2016-10-20T19:16:31+00:00"
    },
    {
      "id": "d489285371724e498307b0b1e6ba5379",
      "sender": "jtimon",
      "payload": "CodeShark: how?",
      "action": false,
      "timestamp": "2016-10-20T19:16:33+00:00"
    },
    {
      "id": "62e82220ae464cda970e88625f0c8a45",
      "sender": "sipa",
      "payload": "just have an API where you can create a blockindexstore, and you give it headers",
      "action": false,
      "timestamp": "2016-10-20T19:16:46+00:00"
    },
    {
      "id": "7cdae3971dcb4093a5572a29fc3dc415",
      "sender": "sipa",
      "payload": "which are copied into the blockindexstore",
      "action": false,
      "timestamp": "2016-10-20T19:17:00+00:00"
    },
    {
      "id": "8c1248f46c5445b3b930906799fc52a5",
      "sender": "CodeShark",
      "payload": "yes",
      "action": false,
      "timestamp": "2016-10-20T19:17:04+00:00"
    },
    {
      "id": "e13f93d3730f403089138b25c29b786b",
      "sender": "jtimon",
      "payload": "so libconsensus remains coupled with our storage?",
      "action": false,
      "timestamp": "2016-10-20T19:17:18+00:00"
    },
    {
      "id": "1d5482d5397d4c96821336baff736619",
      "sender": "sipa",
      "payload": "that's my personal preference",
      "action": false,
      "timestamp": "2016-10-20T19:17:28+00:00"
    },
    {
      "id": "3a85816fc0c449e99822c066ca9db113",
      "sender": "CodeShark",
      "payload": "well...hmmm",
      "action": false,
      "timestamp": "2016-10-20T19:17:33+00:00"
    },
    {
      "id": "c8838acdf4664170bc645c10383c13ea",
      "sender": "jtimon",
      "payload": "I wasn't planning on taking any headers from callers",
      "action": false,
      "timestamp": "2016-10-20T19:17:36+00:00"
    },
    {
      "id": "0010e26c0848411f88170ba80444f652",
      "sender": "kanzure",
      "payload": "i don't mean to go all pointy hair or anything, but what is current expectation around libconsensus separation milestone timelines",
      "action": false,
      "timestamp": "2016-10-20T19:17:38+00:00"
    },
    {
      "id": "4a4830b757a54d65950036edd0fdd400",
      "sender": "sipa",
      "payload": "kanzure: nobody even agrees what libconsensus means.",
      "action": false,
      "timestamp": "2016-10-20T19:17:54+00:00"
    },
    {
      "id": "d14f9cf40c91431284d321ddea11feb5",
      "sender": "kanzure",
      "payload": "perfect",
      "action": false,
      "timestamp": "2016-10-20T19:17:59+00:00"
    },
    {
      "id": "5e6649886d34415591157abfaab73822",
      "sender": "CodeShark",
      "payload": "the header storage engine is quite trivial, actually",
      "action": false,
      "timestamp": "2016-10-20T19:18:19+00:00"
    },
    {
      "id": "63606bf6682540aea067dbb98165945e",
      "sender": "CodeShark",
      "payload": "not sure it needs an abstract DB interface...but on the other hand...",
      "action": false,
      "timestamp": "2016-10-20T19:18:37+00:00"
    },
    {
      "id": "825cfb58f73e49bb84b3744c2653761e",
      "sender": "wumpus",
      "payload": "I think the previous conslusion was that libconsensus should remain coupled with the current caching layer, but not with leveldb",
      "action": false,
      "timestamp": "2016-10-20T19:18:39+00:00"
    },
    {
      "id": "1e4c0b332a404ac0b431a495510675fc",
      "sender": "jtimon",
      "payload": "ok, so you guys want the libconsensus++ luke-jr wanted (ie storage included), I would be fine with having both one with storage included and one without it",
      "action": false,
      "timestamp": "2016-10-20T19:18:42+00:00"
    },
    {
      "id": "98c67c3d78b64326849e15119c39512f",
      "sender": "BlueMatt",
      "payload": "we already discussed this in milan",
      "action": false,
      "timestamp": "2016-10-20T19:18:53+00:00"
    },
    {
      "id": "1d6957eacd5b4824aec4593928278a7f",
      "sender": "wumpus",
      "payload": "so the *memory* storage is part of libconsensus",
      "action": false,
      "timestamp": "2016-10-20T19:19:04+00:00"
    },
    {
      "id": "5f93ebb822c240bcbcdfaff7660d22d8",
      "sender": "wumpus",
      "payload": "the disk storage is not",
      "action": false,
      "timestamp": "2016-10-20T19:19:08+00:00"
    },
    {
      "id": "6efdc742a3e74fcd8bfe67219be362bb",
      "sender": "BlueMatt",
      "payload": "that",
      "action": false,
      "timestamp": "2016-10-20T19:19:12+00:00"
    },
    {
      "id": "0fe07e71cfda4b0ca691ff7b14212011",
      "sender": "CodeShark",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-10-20T19:19:13+00:00"
    },
    {
      "id": "7281e6558a73411695c051b81869b695",
      "sender": "jtimon",
      "payload": "BlueMatt: yeah, you and me discussed it a little, with no conclusion",
      "action": false,
      "timestamp": "2016-10-20T19:19:14+00:00"
    },
    {
      "id": "a171f6dfa1434c4a91efb6888aec4d9f",
      "sender": "wumpus",
      "payload": "right,we discussed that in Milan",
      "action": false,
      "timestamp": "2016-10-20T19:19:29+00:00"
    },
    {
      "id": "5375e131c22e49f88e2ca02718607499",
      "sender": "sipa",
      "payload": "jtimon: my fear is that it's very hard to create a stable API for storage of headers... things like BIP9 cache and the skiplist for example are things that would break the API, but such changes may be needed in the future",
      "action": false,
      "timestamp": "2016-10-20T19:19:30+00:00"
    },
    {
      "id": "5718e925b4b94c40a72a29efb51debe8",
      "sender": "kanzure",
      "payload": "meaning of \"storage\" has to be carefully defined",
      "action": false,
      "timestamp": "2016-10-20T19:19:32+00:00"
    },
    {
      "id": "5d1c0162e9d04a1881cbfb2a49da8525",
      "sender": "sipa",
      "payload": "they're perfectly compatible with a store into which you can load headers, though",
      "action": false,
      "timestamp": "2016-10-20T19:19:45+00:00"
    },
    {
      "id": "eabb3493d1664fd698041d8d7c2ed7c6",
      "sender": "jtimon",
      "payload": "sipa: so let's break the API, users of libconsensus++ may have a more stable API, but less flexibility and control too",
      "action": false,
      "timestamp": "2016-10-20T19:20:12+00:00"
    },
    {
      "id": "4bb62c865a744052b2385a80b4d6a967",
      "sender": "jonasschnelli",
      "payload": "We are speaking of a in-memory only store, right?",
      "action": false,
      "timestamp": "2016-10-20T19:20:16+00:00"
    },
    {
      "id": "e4b2cee5f4744728b8286b20507635e9",
      "sender": "BlueMatt",
      "payload": "i think the first target is this, and then, if at some point we decide we want to support no-headers-in-memory, we can add an api for storage",
      "action": false,
      "timestamp": "2016-10-20T19:20:30+00:00"
    },
    {
      "id": "c5e2ba14dff044498063ec03826e6ed6",
      "sender": "wumpus",
      "payload": "jonasschnelli: yes. as currently used for the headers",
      "action": false,
      "timestamp": "2016-10-20T19:20:33+00:00"
    },
    {
      "id": "af0c31371dd6449d8f4bc357c3f6d302",
      "sender": "BlueMatt",
      "payload": "but i think that is further out on the horizon",
      "action": false,
      "timestamp": "2016-10-20T19:20:36+00:00"
    },
    {
      "id": "c4e6dd26bc4545d78b4734205b299f18",
      "sender": "wumpus",
      "payload": "BlueMatt: agreed, that's no issue right now",
      "action": false,
      "timestamp": "2016-10-20T19:20:45+00:00"
    },
    {
      "id": "76d1b211a675413f9205433e2a4ef8b5",
      "sender": "BlueMatt",
      "payload": "also because refactoring every use of CBlockIndex into an api right now would be a ton of work/review/diff",
      "action": false,
      "timestamp": "2016-10-20T19:20:57+00:00"
    },
    {
      "id": "e7a5296862764b9bbb30b0c3703ac3c7",
      "sender": "sipa",
      "payload": "the criterion would be that we ourself want to use it",
      "action": false,
      "timestamp": "2016-10-20T19:21:06+00:00"
    },
    {
      "id": "7f48366cd48b4483bfdd7ce7b49e0cc2",
      "sender": "wumpus",
      "payload": "later on it may make sense to not support storing all headers in memory, but let's let's not try to do everything atonce",
      "action": false,
      "timestamp": "2016-10-20T19:21:13+00:00"
    },
    {
      "id": "1432fb36715341f3b33d1677d463ab4a",
      "sender": "wumpus",
      "payload": "s/not support/support not/",
      "action": false,
      "timestamp": "2016-10-20T19:21:26+00:00"
    },
    {
      "id": "0a822447d9cc4d8ebf1e7238735a6d4d",
      "sender": "sipa",
      "payload": "if the API somehow needs to miss features, e.g. because adding some cache is hard, that goal is already broken",
      "action": false,
      "timestamp": "2016-10-20T19:21:27+00:00"
    },
    {
      "id": "8534d8c9371248a2b98c8188d1d0aaed",
      "sender": "CodeShark",
      "payload": "no need for premature optimization here",
      "action": false,
      "timestamp": "2016-10-20T19:21:28+00:00"
    },
    {
      "id": "ea1d0ca8f46345a8be0d1257cba7ed00",
      "sender": "CodeShark",
      "payload": "header storage is not a bottleneck ;)",
      "action": false,
      "timestamp": "2016-10-20T19:21:38+00:00"
    },
    {
      "id": "55950d5391674b738c2670dbb00ce88a",
      "sender": "sipa",
      "payload": "CodeShark: it's not premature optimized. it's breaking existing optimization",
      "action": false,
      "timestamp": "2016-10-20T19:21:44+00:00"
    },
    {
      "id": "4c9a97e160924f37b6a393f986d398c0",
      "sender": "kanzure",
      "payload": "CBlockIndex usage is not necessarily libconsensus-only, right?",
      "action": false,
      "timestamp": "2016-10-20T19:21:51+00:00"
    },
    {
      "id": "dc4d4773273c49289e2d2d88878e54b0",
      "sender": "jtimon",
      "payload": "I was speaking both memory and disk storage, for all I know, some callers may have the headers on disk and maybe others have the whole utxo in memory",
      "action": false,
      "timestamp": "2016-10-20T19:21:56+00:00"
    },
    {
      "id": "ae9b2ea363e347f5a1ce74b9bf414f49",
      "sender": "sipa",
      "payload": "storage isn't, but block index traversal needs to be past",
      "action": false,
      "timestamp": "2016-10-20T19:21:59+00:00"
    },
    {
      "id": "c64ad8e82b0b4c119a620df0748eae5f",
      "sender": "sipa",
      "payload": "*fast",
      "action": false,
      "timestamp": "2016-10-20T19:22:00+00:00"
    },
    {
      "id": "16068933bad540ce8d8360f1d41e6afa",
      "sender": "kanzure",
      "payload": "i mean that's only because nobody wants to maintain a CBlockIndex and also libconsensus, ya?",
      "action": false,
      "timestamp": "2016-10-20T19:22:06+00:00"
    },
    {
      "id": "a9d6ff3708ec470a84d6e4dc804beea8",
      "sender": "sipa",
      "payload": "kanzure: i have no clue what you're talking about",
      "action": false,
      "timestamp": "2016-10-20T19:22:20+00:00"
    },
    {
      "id": "86a410645eb54def900eed823299ed9c",
      "sender": "Victorsueca",
      "payload": "kanzure: maybe we could define \"storage\" as the port where you request/send data that needs to be stored but is not immediately required",
      "action": false,
      "timestamp": "2016-10-20T19:22:33+00:00"
    },
    {
      "id": "5739abcc2654419ca77d03d439b514e9",
      "sender": "sipa",
      "payload": "storage... port?",
      "action": false,
      "timestamp": "2016-10-20T19:22:50+00:00"
    },
    {
      "id": "5bb198666f11422e9c87b24ccce810a1",
      "sender": "sipa",
      "payload": "wth?",
      "action": false,
      "timestamp": "2016-10-20T19:22:51+00:00"
    },
    {
      "id": "2b8af81034204f5f93d704cfd4f8250c",
      "sender": "wumpus",
      "payload": "I think a good goal should be that we could use libconsensus ourselves, at least it will have one client then :)",
      "action": false,
      "timestamp": "2016-10-20T19:22:57+00:00"
    },
    {
      "id": "e13cdc15d55443d5be847da32d9405d4",
      "sender": "kanzure",
      "payload": "(i was responding to \"refactoring every use of CBlockIndex into an api\".)",
      "action": false,
      "timestamp": "2016-10-20T19:22:57+00:00"
    },
    {
      "id": "8129793e46fb43ab89a2a7abdc6b2da2",
      "sender": "CodeShark",
      "payload": "let's not get sidetracked",
      "action": false,
      "timestamp": "2016-10-20T19:23:20+00:00"
    },
    {
      "id": "2d095689b1a44b25a2aa397a81489633",
      "sender": "wumpus",
      "payload": "please, let's not split hairs over definitions",
      "action": false,
      "timestamp": "2016-10-20T19:23:25+00:00"
    },
    {
      "id": "057aae6792f1413d9a184908dd65388f",
      "sender": "Victorsueca",
      "payload": "sipa: not a network port obv",
      "action": false,
      "timestamp": "2016-10-20T19:23:26+00:00"
    },
    {
      "id": "a11be5ef01b349b7b332e53bdd0cb49a",
      "sender": "wumpus",
      "payload": "any other topics?",
      "action": false,
      "timestamp": "2016-10-20T19:23:27+00:00"
    },
    {
      "id": "ae9a1ff1c8bb40be8aa4461e3709eb6a",
      "sender": "cfields_",
      "payload": "wumpus: +1. As a side-effect, that also forces devs to become familiar with it.",
      "action": false,
      "timestamp": "2016-10-20T19:23:36+00:00"
    },
    {
      "id": "8440a342097e4c13995a6b6bc7e09873",
      "sender": "gmaxwell",
      "payload": "sorry, went to sleep during API discussions. I agree that the library should be used by bitcoin core if it is to exist. :)",
      "action": false,
      "timestamp": "2016-10-20T19:23:57+00:00"
    },
    {
      "id": "44c92b554550412bb2d6d5c82c834a15",
      "sender": "gmaxwell",
      "payload": "(I also support it existing, to be clear!)",
      "action": false,
      "timestamp": "2016-10-20T19:24:05+00:00"
    },
    {
      "id": "d47693288f2146ff9acb0bb2631c5574",
      "sender": "wumpus",
      "payload": "cfields_: right, so it's possible to fork bitcoin core but still use the same libconsensus, for example",
      "action": false,
      "timestamp": "2016-10-20T19:24:10+00:00"
    },
    {
      "id": "83a7d41456944fdca583b36a2dfd50ad",
      "sender": "jtimon",
      "payload": "BlueMatt: an interface for CBlockIndex wouldn't requiore a ton of review, just some review. Remember you can use wrappers for the old stuff and only libconsensus needs to use the interface (uppper layers can remain using CBlockIndex directly), please see https://github.com/bitcoin/bitcoin/pull/8493",
      "action": false,
      "timestamp": "2016-10-20T19:24:10+00:00"
    },
    {
      "id": "0264dcdf41ef42ca8b08d8848f3ed024",
      "sender": "wumpus",
      "payload": "gmaxwell: if some topic isn't interesting to you, you don't need to be loud about that",
      "action": false,
      "timestamp": "2016-10-20T19:25:04+00:00"
    },
    {
      "id": "2277bbe745254f37a32b1ce8a4455111",
      "sender": "jonasschnelli",
      "payload": "Would it hurt if the libb*'s blockstorage be completly decoupled from the CBlockIndex, new structures, etc. as a first step?",
      "action": false,
      "timestamp": "2016-10-20T19:25:13+00:00"
    },
    {
      "id": "96e93f3bf73047d28492ab1ba34c5d5f",
      "sender": "sipa",
      "payload": "jonasschnelli: we're not even talking about block storage",
      "action": false,
      "timestamp": "2016-10-20T19:25:32+00:00"
    },
    {
      "id": "fdc37db53898437b9ba3d43c0a8ed608",
      "sender": "jonasschnelli",
      "payload": "sorry, heards",
      "action": false,
      "timestamp": "2016-10-20T19:25:40+00:00"
    },
    {
      "id": "2ad2868d82624915a097ce93f40c3436",
      "sender": "CodeShark",
      "payload": "we're still on headers :p",
      "action": false,
      "timestamp": "2016-10-20T19:25:40+00:00"
    },
    {
      "id": "dfd17795db0f4d9d90406146471c82f3",
      "sender": "jonasschnelli",
      "payload": "headers",
      "action": false,
      "timestamp": "2016-10-20T19:25:42+00:00"
    },
    {
      "id": "546ab1d4d7824fa09c68b79bea018bab",
      "sender": "jtimon",
      "payload": "conclusion, nobody seems to want the libconsensus I've been trying to move towards to, and as an external caller I wouldn't want a libconsensus++ (coupled to bitcoin core's storage and concurrency)",
      "action": false,
      "timestamp": "2016-10-20T19:26:05+00:00"
    },
    {
      "id": "2f7e98823d9b4086b089f60da1757ff0",
      "sender": "kanzure",
      "payload": "external caller == other wallet?",
      "action": false,
      "timestamp": "2016-10-20T19:26:30+00:00"
    },
    {
      "id": "89db86a4565a474fa949090b23a89007",
      "sender": "jtimon",
      "payload": "you guys want a processBlock function, not a verifyBlock one",
      "action": false,
      "timestamp": "2016-10-20T19:26:31+00:00"
    },
    {
      "id": "9d8018f9ae1d4564b2128f8c86996e3d",
      "sender": "sipa",
      "payload": "jtimon: i think exposing verification functions at different levels is useful",
      "action": false,
      "timestamp": "2016-10-20T19:26:44+00:00"
    },
    {
      "id": "51798c9494f8437db4cbc636da40257f",
      "sender": "jtimon",
      "payload": "kanzure: yep, a wallet, an alternative implementation, whatever",
      "action": false,
      "timestamp": "2016-10-20T19:26:49+00:00"
    },
    {
      "id": "42cfea203e8a469395d471025ea95283",
      "sender": "sipa",
      "payload": "exposing headers, individual block, total block, ...",
      "action": false,
      "timestamp": "2016-10-20T19:26:53+00:00"
    },
    {
      "id": "dd76e0b8c009457d981c0d2206ba8fce",
      "sender": "sipa",
      "payload": "jtimon: but the question is about whether or not to abstract out the state needed for that",
      "action": false,
      "timestamp": "2016-10-20T19:27:07+00:00"
    },
    {
      "id": "5e285f71c4074c7b932a198b99f20b36",
      "sender": "jtimon",
      "payload": "sipa: cool, BlueMatt seem to think it's not",
      "action": false,
      "timestamp": "2016-10-20T19:27:08+00:00"
    },
    {
      "id": "bbb2fa8d60bb46ae886c27a3d72b4f69",
      "sender": "sipa",
      "payload": "those are independent questions",
      "action": false,
      "timestamp": "2016-10-20T19:27:23+00:00"
    },
    {
      "id": "6f1c2fa78c8947e69447d56eedb5b74e",
      "sender": "jtimon",
      "payload": "in any case, you don't want a verifyHeader independent of storage",
      "action": false,
      "timestamp": "2016-10-20T19:27:26+00:00"
    },
    {
      "id": "394c0cae3c264051ae5b01b549e83fe7",
      "sender": "kanzure",
      "payload": "jtimon: yes to me it sounds like you need to pass to libconsensus a reference to something that implements storage.  but iirc there are some concerns about consensus-coupled storage backend details.",
      "action": false,
      "timestamp": "2016-10-20T19:27:57+00:00"
    },
    {
      "id": "d3f02d2b8e8343cca1c6b8dcf0793f3f",
      "sender": "sipa",
      "payload": "i think it would hurt our own usage of it, as it means fewer opportunities to improve memory usage",
      "action": false,
      "timestamp": "2016-10-20T19:28:01+00:00"
    },
    {
      "id": "359a26269e5646fc9829078e681e51d5",
      "sender": "jtimon",
      "payload": "sipa: I think \"is it needed\" it's not the question, nothing is needed, the wuestion is what we want to do",
      "action": false,
      "timestamp": "2016-10-20T19:28:06+00:00"
    },
    {
      "id": "9babe05dd89042e0ac496e1db51770bd",
      "sender": "sipa",
      "payload": "what i want to do is have the consensus code abstracted out",
      "action": false,
      "timestamp": "2016-10-20T19:28:19+00:00"
    },
    {
      "id": "4a5e37279b0b4ecc8db7ee80ef939b87",
      "sender": "wumpus",
      "payload": "it is needed if it is used by us",
      "action": false,
      "timestamp": "2016-10-20T19:28:21+00:00"
    },
    {
      "id": "b2965a14c0644f168d33a56fb2476b92",
      "sender": "sipa",
      "payload": "modularized",
      "action": false,
      "timestamp": "2016-10-20T19:28:31+00:00"
    },
    {
      "id": "3e0b778b87b9491b80322ab4dedbf5ba",
      "sender": "jtimon",
      "payload": "kanzure: I highly doubt libbitcoin will ever use a libconsensus that's coupled to bitcoin's storage and concurrency, for example",
      "action": false,
      "timestamp": "2016-10-20T19:28:38+00:00"
    },
    {
      "id": "d67f0201749e4786864b5c71630be560",
      "sender": "BlueMatt",
      "payload": "jtimon: I have no problem exposing a verifyblock function that makes no external state lookups, but I dont think its so useful",
      "action": false,
      "timestamp": "2016-10-20T19:28:49+00:00"
    },
    {
      "id": "58c24e1e1c154f069aedf37c0d898d35",
      "sender": "sipa",
      "payload": "that doesn't mean we need to abstract out every data structure it uses",
      "action": false,
      "timestamp": "2016-10-20T19:28:50+00:00"
    },
    {
      "id": "bd5c2f4bb9de4722a6acde2b7ad22987",
      "sender": "BlueMatt",
      "payload": "jtimon: I dont see much use for a verifyblock function that makes external state calls when you could just do processnewblock",
      "action": false,
      "timestamp": "2016-10-20T19:29:07+00:00"
    },
    {
      "id": "5173cfb5161e449a91b40dbd0eef69ad",
      "sender": "kanzure",
      "payload": "jtimon: well the complicating detail here is that folks probably just want to use core's current storage implementation details (etc) to cut down on work, i think.",
      "action": false,
      "timestamp": "2016-10-20T19:29:08+00:00"
    },
    {
      "id": "d1e9d09134e745fbabf222eae42f6b17",
      "sender": "CodeShark",
      "payload": "breaking out the storage engine can be done independently",
      "action": false,
      "timestamp": "2016-10-20T19:29:33+00:00"
    },
    {
      "id": "9238891f8b1f4d7e86f408de913d9004",
      "sender": "wumpus",
      "payload": "BlueMatt: yes, I remember we discussed that before, too :)",
      "action": false,
      "timestamp": "2016-10-20T19:29:50+00:00"
    },
    {
      "id": "65dd1133872a415d9475b84a2a94c0dc",
      "sender": "kanzure",
      "payload": "what is the concurrency coupling that jtimon mentions in particular",
      "action": false,
      "timestamp": "2016-10-20T19:29:51+00:00"
    },
    {
      "id": "3c5fdb4d608444f0891f3fb3dc31e6d8",
      "sender": "sipa",
      "payload": "CodeShark: we're not really talking about (disk) storage here, just in-memory representation of data structures",
      "action": false,
      "timestamp": "2016-10-20T19:30:00+00:00"
    },
    {
      "id": "11312e9f405a4224a5d44f89ee1a9ab9",
      "sender": "BlueMatt",
      "payload": "wumpus: yes, this is exactly the discussion we had in milan",
      "action": false,
      "timestamp": "2016-10-20T19:30:07+00:00"
    },
    {
      "id": "9e0b6ef9434547a0b2d154acf8abb101",
      "sender": "jtimon",
      "payload": "BlueMatt: right, I believe some callers don't want the library to do the processnewblock because they want to do certain things themselves (for example, libbitcoin AFAIK)",
      "action": false,
      "timestamp": "2016-10-20T19:30:15+00:00"
    },
    {
      "id": "2e3fee107ebf40c99d16d7a6d632940d",
      "sender": "BlueMatt",
      "payload": "jtimon: have you spoken much to these folks? (I dont know, just asking, would love to see their responses)",
      "action": false,
      "timestamp": "2016-10-20T19:30:42+00:00"
    },
    {
      "id": "c7f3264f2d864b2b9fb94e82180c7983",
      "sender": "jtimon",
      "payload": "kanzure: if it's to cut down on work we can have both, that was my conclusion from a previous discussion with luke",
      "action": false,
      "timestamp": "2016-10-20T19:31:13+00:00"
    },
    {
      "id": "0d56bc95502c4e69a0d9589b5ca95ed0",
      "sender": "wumpus",
      "payload": "can we worry about that later? I think a good first goal would be to make the libarary useful for us, I agree with sipa that tha doesn't need abstracting every data structure",
      "action": false,
      "timestamp": "2016-10-20T19:31:17+00:00"
    },
    {
      "id": "aa5ae4ae49224b159e57ed35d9c61075",
      "sender": "sipa",
      "payload": "yes, abstracting the data structures can still happen later",
      "action": false,
      "timestamp": "2016-10-20T19:31:33+00:00"
    },
    {
      "id": "bd87ae53c1474c26ae5c4c63c008b55b",
      "sender": "wumpus",
      "payload": "I think this is typical bitcoin scope creep",
      "action": false,
      "timestamp": "2016-10-20T19:31:38+00:00"
    },
    {
      "id": "751e0d9e68684cd4a1af269d7c41abf4",
      "sender": "CodeShark",
      "payload": "yes - modularization is what's most important, then we can further optimize each unit",
      "action": false,
      "timestamp": "2016-10-20T19:31:45+00:00"
    },
    {
      "id": "6b24d9f1029d4d97b2962746f34f206d",
      "sender": "kanzure",
      "payload": "sounds like an emphasis on code movement first",
      "action": false,
      "timestamp": "2016-10-20T19:31:48+00:00"
    },
    {
      "id": "28d4161000284c3cb1c420d93320b9e5",
      "sender": "jtimon",
      "payload": "BlueMatt: mostly only to erik from libbitcoin, but yeah, probably we should ask around before trying to guess what they want",
      "action": false,
      "timestamp": "2016-10-20T19:31:48+00:00"
    },
    {
      "id": "d0b04b8e428c49fa9f9f8b159f47d748",
      "sender": "wumpus",
      "payload": "nothing will ever get done this way and we keep repeating the same discussions",
      "action": false,
      "timestamp": "2016-10-20T19:31:51+00:00"
    },
    {
      "id": "916982eaf2f341769e364198d2667fc4",
      "sender": "wumpus",
      "payload": "+tons of huge code changes that will take ages to review",
      "action": false,
      "timestamp": "2016-10-20T19:32:29+00:00"
    },
    {
      "id": "348e40fba966499ebc40a559d2089589",
      "sender": "jtimon",
      "payload": "I want libwally to use verifyHeader, its main author has seen #8493 but I don't know what he would think about a version with \"storage included\"",
      "action": false,
      "timestamp": "2016-10-20T19:32:46+00:00"
    },
    {
      "id": "9ce495ff0cd648309b44a692c8261bd0",
      "sender": "sipa",
      "payload": "jtimon: one reason for me is that for some things, performance is in fact consensus critical, and requiring the user of the library to implement their own optimized data structures is essentially requiring them to implement some portion of consensus-critical code",
      "action": false,
      "timestamp": "2016-10-20T19:33:00+00:00"
    },
    {
      "id": "0bdf3ac084bc4616b335e6faf3b5bbb4",
      "sender": "wumpus",
      "payload": "I just think it'd make sense to aim for a near-term goal of exposing something, instead of trying to refactor the whole code base first",
      "action": false,
      "timestamp": "2016-10-20T19:33:47+00:00"
    },
    {
      "id": "7b46f1a9b19241c3bc8ffc7a2ede8459",
      "sender": "CodeShark",
      "payload": "the focus for now should be on separation of units and removing dependencies",
      "action": false,
      "timestamp": "2016-10-20T19:33:56+00:00"
    },
    {
      "id": "2ef10e7f191c4349b785b73727cb5022",
      "sender": "jtimon",
      "payload": "well, all I want is to have a common and clear idea of what libconsensus should be",
      "action": false,
      "timestamp": "2016-10-20T19:33:57+00:00"
    },
    {
      "id": "a49740c5f88c4f6da87ad224c43151ed",
      "sender": "sipa",
      "payload": "while we already have optimized data structures, and not abstracting them out leaves more opportunities for future such optimizations",
      "action": false,
      "timestamp": "2016-10-20T19:34:10+00:00"
    },
    {
      "id": "23c35c8c78354a53aadf3c4dc7bb9e98",
      "sender": "wumpus",
      "payload": "it should be a libarary that we ourselves can use for consensus validation",
      "action": false,
      "timestamp": "2016-10-20T19:34:14+00:00"
    },
    {
      "id": "0cbc781fe7004dd082771a93c63eb3d2",
      "sender": "wumpus",
      "payload": "sipa: exactly! *not* exposing something as part of the API leaves flexibility to improve things later",
      "action": false,
      "timestamp": "2016-10-20T19:34:36+00:00"
    },
    {
      "id": "3bf2a22926bb44d7a2c5c0be0691bf82",
      "sender": "wumpus",
      "payload": "sipa: putting it in the API/ABI effectively sets it in stone",
      "action": false,
      "timestamp": "2016-10-20T19:34:46+00:00"
    },
    {
      "id": "d11efae4205c465594d0e4a0ef33385a",
      "sender": "jtimon",
      "payload": "CodeShark: but then people won't \"see the point\" of taking consensus code out of main...",
      "action": false,
      "timestamp": "2016-10-20T19:34:47+00:00"
    },
    {
      "id": "907f3c8a6ca6493e9baac8f528c7ebb4",
      "sender": "CodeShark",
      "payload": "?",
      "action": false,
      "timestamp": "2016-10-20T19:34:55+00:00"
    },
    {
      "id": "07c4718dd2884fb1856402f9aa342f78",
      "sender": "CodeShark",
      "payload": "there",
      "action": false,
      "timestamp": "2016-10-20T19:35:07+00:00"
    },
    {
      "id": "b93ad10b71c547f48d32863ed75dd033",
      "sender": "morcos",
      "payload": "I think it would be nice if we proceeded down _a_ path right now but left ourselves open to revisiting some of these decisions as we get further along.",
      "action": false,
      "timestamp": "2016-10-20T19:35:13+00:00"
    },
    {
      "id": "34cc184c61764498b79edee9bde99be4",
      "sender": "morcos",
      "payload": "For instance I disagree a bit with the flexibility when it comes to cache optimization for pcoinstip.",
      "action": false,
      "timestamp": "2016-10-20T19:35:30+00:00"
    },
    {
      "id": "0ce69311952f4379a558300e9ca5a5ac",
      "sender": "CodeShark",
      "payload": "there's a very simple justification for it - moving the code out of main.cpp means far simpler merging of code changes",
      "action": false,
      "timestamp": "2016-10-20T19:35:33+00:00"
    },
    {
      "id": "d6dcda3888c6466e876bafbc8f2ee321",
      "sender": "jtimon",
      "payload": "CodeShark: ie #8337 #8329",
      "action": false,
      "timestamp": "2016-10-20T19:35:43+00:00"
    },
    {
      "id": "2b7f9a47e25c4f0e9744c730578b3d4d",
      "sender": "morcos",
      "payload": "But we don't have to answer all those questions right now",
      "action": false,
      "timestamp": "2016-10-20T19:35:54+00:00"
    },
    {
      "id": "b86fbbd8359e4cccaf3cd56024de98de",
      "sender": "sipa",
      "payload": "jtimon: i think everyone agrees that modularizing consensus code is a good idea, independent of whether it's exposed as a library, or has refactorings for data structures or not",
      "action": false,
      "timestamp": "2016-10-20T19:36:02+00:00"
    },
    {
      "id": "fe27db441ba84eeaa4d15b39a187d9ab",
      "sender": "sipa",
      "payload": "morcos: agree",
      "action": false,
      "timestamp": "2016-10-20T19:36:11+00:00"
    },
    {
      "id": "2ccd4fefa7bd46c79dfeafe8e5887a22",
      "sender": "kanzure",
      "payload": "jtimon: you are referring to friction with code separation changes? i think some of that friction can be ameliorated by having it a prioritized shared goal (like segwit was).",
      "action": false,
      "timestamp": "2016-10-20T19:36:13+00:00"
    },
    {
      "id": "0be3bacb31be4745a815a165dc4055ff",
      "sender": "CodeShark",
      "payload": "kanzure: indeed",
      "action": false,
      "timestamp": "2016-10-20T19:36:58+00:00"
    },
    {
      "id": "a2064df497f14213af315ca8460d44fa",
      "sender": "jtimon",
      "payload": "sipa: the thing is some dependencies remain \"hidden\" or hard to see until you separate stuff or try to move the \"consensus files\" to the consensus module to expose something",
      "action": false,
      "timestamp": "2016-10-20T19:37:02+00:00"
    },
    {
      "id": "db9c0d3eca1e4b66a6247c1236d9cba0",
      "sender": "sipa",
      "payload": "jtimon: well things may not be easy",
      "action": false,
      "timestamp": "2016-10-20T19:37:37+00:00"
    },
    {
      "id": "4b6189ce03ae49cab14a18a5b6e2ec3a",
      "sender": "jtimon",
      "payload": "kanzure: I would love that",
      "action": false,
      "timestamp": "2016-10-20T19:37:40+00:00"
    },
    {
      "id": "3c7cb59477a44fba8eac859d811d7d6d",
      "sender": "CodeShark",
      "payload": "let's not get hung up on how the lib API will be exposed and start working on moving code into separate units",
      "action": false,
      "timestamp": "2016-10-20T19:37:45+00:00"
    },
    {
      "id": "d84d1fcd69b34f5184788800ff73dabb",
      "sender": "Chris_Stewart_5",
      "payload": "^",
      "action": false,
      "timestamp": "2016-10-20T19:38:02+00:00"
    },
    {
      "id": "d1d6dc2076fa457cafbf2363f76ae89f",
      "sender": "BlueMatt",
      "payload": "^",
      "action": false,
      "timestamp": "2016-10-20T19:38:09+00:00"
    },
    {
      "id": "3d3637e73f8c49088d9e18a461357fc6",
      "sender": "jeremyrubin",
      "payload": "^",
      "action": false,
      "timestamp": "2016-10-20T19:38:12+00:00"
    },
    {
      "id": "1f1b13d76d144c8d9551d27e23e605de",
      "sender": "sipa",
      "payload": "v",
      "action": false,
      "timestamp": "2016-10-20T19:38:16+00:00"
    },
    {
      "id": "adc38e3bc5d84cca8bce1aa5252b3f42",
      "sender": "jtimon",
      "payload": "CodeShark: I'm happy with that",
      "action": false,
      "timestamp": "2016-10-20T19:38:17+00:00"
    },
    {
      "id": "91dcbabe7f9247ce8bfd3fd6ba5df2f2",
      "sender": "jtimon",
      "payload": "I tried that too",
      "action": false,
      "timestamp": "2016-10-20T19:38:21+00:00"
    },
    {
      "id": "6430164487d64327a735c4059eb81355",
      "sender": "Chris_Stewart_5",
      "payload": "always one sipa..",
      "action": false,
      "timestamp": "2016-10-20T19:38:23+00:00"
    },
    {
      "id": "57bb52b95f564ae69d8b4c9b319a9187",
      "sender": "jtimon",
      "payload": "but some people asked for the final API...",
      "action": false,
      "timestamp": "2016-10-20T19:38:53+00:00"
    },
    {
      "id": "7a432913667143f08cc5b5e23fd35cb1",
      "sender": "sipa",
      "payload": "i'd really just want to see a proposal of a directory structure",
      "action": false,
      "timestamp": "2016-10-20T19:38:54+00:00"
    },
    {
      "id": "58f7a1a5ee08460cb91fa12fa6afbc10",
      "sender": "kanzure",
      "payload": "jtimon: iirc you in the past have had problems with some pull requests because others would complain about additional merge/rebase work for their unrelated changes.",
      "action": false,
      "timestamp": "2016-10-20T19:39:00+00:00"
    },
    {
      "id": "5ca75fb0a1534a65bffd83910db177ef",
      "sender": "sipa",
      "payload": "which explains code responsible for what belongs where",
      "action": false,
      "timestamp": "2016-10-20T19:39:12+00:00"
    },
    {
      "id": "234ac854d43747b6abd9e869f3acbd68",
      "sender": "jtimon",
      "payload": "sipa: I gave you one: all consensus fles except those in crypto to the consensus dir",
      "action": false,
      "timestamp": "2016-10-20T19:39:20+00:00"
    },
    {
      "id": "4c47a4113dca4d1c864847f20ad55269",
      "sender": "sipa",
      "payload": "jtimon: that's not an answer",
      "action": false,
      "timestamp": "2016-10-20T19:39:28+00:00"
    },
    {
      "id": "d6df9536981d4b5cb820183405e8873f",
      "sender": "jtimon",
      "payload": "it is one you don't like",
      "action": false,
      "timestamp": "2016-10-20T19:39:36+00:00"
    },
    {
      "id": "82ef0722fd9b462fb6242d7bf9579c11",
      "sender": "sipa",
      "payload": "there is code shared between consensus and non-consensus",
      "action": false,
      "timestamp": "2016-10-20T19:39:38+00:00"
    },
    {
      "id": "d9865adc7cbf42c5a80d644fc1a51630",
      "sender": "sipa",
      "payload": "what happens to script? is it split up again?",
      "action": false,
      "timestamp": "2016-10-20T19:39:46+00:00"
    },
    {
      "id": "a64c318685b54c2db9ace3c7a41143fe",
      "sender": "sipa",
      "payload": "where does the signing code go?",
      "action": false,
      "timestamp": "2016-10-20T19:39:51+00:00"
    },
    {
      "id": "c20d6d7614c943daafad1de819ab91a1",
      "sender": "jtimon",
      "payload": "but I really don't see how can we make a subrepository or subtree out of libconsensus otherwise",
      "action": false,
      "timestamp": "2016-10-20T19:40:02+00:00"
    },
    {
      "id": "9a67049e86104b2e987e021a64ee92e9",
      "sender": "kanzure",
      "payload": "sipa did you read jtimon's libconsensus doc by any chance",
      "action": false,
      "timestamp": "2016-10-20T19:40:03+00:00"
    },
    {
      "id": "2671fe82926f47169bbe3261d465b89c",
      "sender": "sipa",
      "payload": "do we duplicate consensu logic?",
      "action": false,
      "timestamp": "2016-10-20T19:40:05+00:00"
    },
    {
      "id": "328a4deca4b94125b2b4ce5039db2f08",
      "sender": "jtimon",
      "payload": "sipa: signing code is not consensus",
      "action": false,
      "timestamp": "2016-10-20T19:40:09+00:00"
    },
    {
      "id": "9b0ea6137ea746cbb7e19c48cb5f5fc7",
      "sender": "sipa",
      "payload": "sigh",
      "action": false,
      "timestamp": "2016-10-20T19:40:14+00:00"
    },
    {
      "id": "4f897e14d5d84b22b23ef61f5cd5e4c0",
      "sender": "sipa",
      "payload": "i know that",
      "action": false,
      "timestamp": "2016-10-20T19:40:18+00:00"
    },
    {
      "id": "09831f5b872a45ba82119865aa88df8a",
      "sender": "jtimon",
      "payload": "it remains in the common package",
      "action": false,
      "timestamp": "2016-10-20T19:40:30+00:00"
    },
    {
      "id": "03790b174c214d4f93809a8505b0e71f",
      "sender": "jtimon",
      "payload": "and the script dir",
      "action": false,
      "timestamp": "2016-10-20T19:40:41+00:00"
    },
    {
      "id": "3ca3856cbf104d73ae0315b08594b1e4",
      "sender": "sipa",
      "payload": "ok, i'll shut up about it",
      "action": false,
      "timestamp": "2016-10-20T19:40:52+00:00"
    },
    {
      "id": "d90c80afb9cd4156aeccb4070f82433c",
      "sender": "wumpus",
      "payload": "I think this is monipolizing the meeting. ANy othe topics to be discussed?",
      "action": false,
      "timestamp": "2016-10-20T19:41:00+00:00"
    },
    {
      "id": "ab72d21ea4f242fcaefdc4a44152a19e",
      "sender": "sipa",
      "payload": "i can't seem to get my point across",
      "action": false,
      "timestamp": "2016-10-20T19:41:04+00:00"
    },
    {
      "id": "b3c40ee0bb5a4324bb3fdd034eb38794",
      "sender": "jtimon",
      "payload": "no, you brought this point more times",
      "action": false,
      "timestamp": "2016-10-20T19:41:15+00:00"
    },
    {
      "id": "42ba0cf9fd1f45ebbaa04f1b1f00ed10",
      "sender": "CodeShark",
      "payload": "can we set as a goal to prioritize some moveonly PRs?",
      "action": false,
      "timestamp": "2016-10-20T19:41:23+00:00"
    },
    {
      "id": "66bde64b686648949a92ca8551b6b6d1",
      "sender": "sipa",
      "payload": "yes, and i have never seen you give an answer to my question",
      "action": false,
      "timestamp": "2016-10-20T19:41:29+00:00"
    },
    {
      "id": "b21d7aa7c501484d9ae0ed5450d10ee0",
      "sender": "CodeShark",
      "payload": "sipa, jtimon, let's save that for after the meeting",
      "action": false,
      "timestamp": "2016-10-20T19:41:47+00:00"
    },
    {
      "id": "d608c240d7b44788a30cae44ad4f7eb5",
      "sender": "CodeShark",
      "payload": "can we agree for the time being to define a directory structure and prioritize moveonly PRs?",
      "action": false,
      "timestamp": "2016-10-20T19:42:26+00:00"
    },
    {
      "id": "7684a0bc40ef449eaaa43a4c5bea0421",
      "sender": "jtimon",
      "payload": "sure I really want to understand his concerns better. It seems related to the discussion we had around luke's script \"debugger\"",
      "action": false,
      "timestamp": "2016-10-20T19:42:36+00:00"
    },
    {
      "id": "18f1c30dfb5e476d9b83eaf6f9878fbf",
      "sender": "wumpus",
      "payload": "I can't prioritize moveonly PRs. There's just too much happening",
      "action": false,
      "timestamp": "2016-10-20T19:42:43+00:00"
    },
    {
      "id": "84e86777fe114448a180f39aae24e5c4",
      "sender": "CodeShark",
      "payload": "wumpus: the idea is that they should be super simple to review",
      "action": false,
      "timestamp": "2016-10-20T19:42:57+00:00"
    },
    {
      "id": "420744c7fccb4c6f8e2185185ae40b29",
      "sender": "sipa",
      "payload": "CodeShark: you underestimate it",
      "action": false,
      "timestamp": "2016-10-20T19:43:05+00:00"
    },
    {
      "id": "04b84e81d52b4b0b9ebbb46b1244019f",
      "sender": "michagogo",
      "payload": "achow101: looks like it finished uploading, if you want to try it",
      "action": false,
      "timestamp": "2016-10-20T19:43:13+00:00"
    },
    {
      "id": "8406f6e28b994cdb9e1af1ab092e24fc",
      "sender": "sipa",
      "payload": "moving the code is easy. deciding where things belong is not.",
      "action": false,
      "timestamp": "2016-10-20T19:43:19+00:00"
    },
    {
      "id": "5440614702fd4c72bbff86010549c313",
      "sender": "wumpus",
      "payload": "but if people prioritize reviewing them, sure",
      "action": false,
      "timestamp": "2016-10-20T19:43:20+00:00"
    },
    {
      "id": "cdf4cafddb7b4670890dffa438a675cb",
      "sender": "kanzure",
      "payload": "oh is review the bottleneck? i keep thinking it's \"lots of other rebase work\" for other pulls.",
      "action": false,
      "timestamp": "2016-10-20T19:43:23+00:00"
    },
    {
      "id": "40f37a9b796645eb8435b36c784fb33b",
      "sender": "jtimon",
      "payload": "wumpus: I think it being a priority for reviewers is more important",
      "action": false,
      "timestamp": "2016-10-20T19:43:36+00:00"
    },
    {
      "id": "45b207b323d640a0a38b9668179c9dea",
      "sender": "wumpus",
      "payload": "kanzure: that's also an issue",
      "action": false,
      "timestamp": "2016-10-20T19:43:39+00:00"
    },
    {
      "id": "6aef8f2cc8364ae0bcb8da775f7438c9",
      "sender": "sipa",
      "payload": "kanzure: imho the bottleneck is no agreement about what should be done",
      "action": false,
      "timestamp": "2016-10-20T19:43:39+00:00"
    },
    {
      "id": "19286696b0394bf5b48c3a40fe31a917",
      "sender": "michagogo",
      "payload": "Wait, it's Thursday... sorry, didn't realize meeting was happening",
      "action": false,
      "timestamp": "2016-10-20T19:43:41+00:00"
    },
    {
      "id": "0a99c953bf87453b93603abf5339d4d6",
      "sender": "michagogo",
      "payload": "scrolls up",
      "action": true,
      "timestamp": "2016-10-20T19:43:43+00:00"
    },
    {
      "id": "7b5c902cd62345f09781b3b6b8b4346b",
      "sender": "jtimon",
      "payload": "kanzure: I strongly feel review is the bottleneck",
      "action": false,
      "timestamp": "2016-10-20T19:43:52+00:00"
    },
    {
      "id": "96184f078a8e4f65857505da4c3a4834",
      "sender": "instagibbs_",
      "payload": "proposed topic: rc2 issues, etc?",
      "action": false,
      "timestamp": "2016-10-20T19:44:17+00:00"
    },
    {
      "id": "4e6e27f3766d4daca41d0bb3a0294857",
      "sender": "wumpus",
      "payload": "kanzure: though not always a strong one, usually it's fairly easy to rebase over pure moves. As long as people agree that they should be done.",
      "action": false,
      "timestamp": "2016-10-20T19:44:18+00:00"
    },
    {
      "id": "2b9cac1db20a49c784699478524009d0",
      "sender": "kanzure",
      "payload": "oh. alright.",
      "action": false,
      "timestamp": "2016-10-20T19:44:30+00:00"
    },
    {
      "id": "ec38008b43704229989eb5948586995e",
      "sender": "jtimon",
      "payload": "CodeShark: also I think you understimate the potential for disagreements",
      "action": false,
      "timestamp": "2016-10-20T19:44:31+00:00"
    },
    {
      "id": "6fb84ded98e54cc9aa8f586e10c24ffd",
      "sender": "Chris_Stewart_5",
      "payload": "How do we keep this from being discussed for the next 3 meetings is my question. What can actually be done persuade people one way or the other?",
      "action": false,
      "timestamp": "2016-10-20T19:44:34+00:00"
    },
    {
      "id": "0b094a930962410f9dcdcb2999f743f9",
      "sender": "CodeShark",
      "payload": "can we at least agree to start discussing a directory structure? ;)",
      "action": false,
      "timestamp": "2016-10-20T19:44:54+00:00"
    },
    {
      "id": "ab9796c1ceac41e7a334bb965c02881d",
      "sender": "CodeShark",
      "payload": "(after this meeting, of course)",
      "action": false,
      "timestamp": "2016-10-20T19:45:00+00:00"
    },
    {
      "id": "d442579a0f2a4dc8aff9a663c15ea970",
      "sender": "jtimon",
      "payload": "CodeShark: ACK",
      "action": false,
      "timestamp": "2016-10-20T19:45:03+00:00"
    },
    {
      "id": "b8df7dac9d21480cab80000960786330",
      "sender": "wumpus",
      "payload": "Chris_Stewart_5: you tell me",
      "action": false,
      "timestamp": "2016-10-20T19:45:32+00:00"
    },
    {
      "id": "e7993ed238bd469f8b8a8188f1ceeab7",
      "sender": "morcos",
      "payload": "Someone should schedule a small in-person retreat for people who really want to work on libconsensus, to make some headway",
      "action": false,
      "timestamp": "2016-10-20T19:45:41+00:00"
    },
    {
      "id": "b3621016510d44ff9ff0dec7caf45a8e",
      "sender": "kanzure",
      "payload": "Chris_Stewart_5: perhaps sipa could make a proposal if we ask nicely.",
      "action": false,
      "timestamp": "2016-10-20T19:45:57+00:00"
    },
    {
      "id": "499e7cef78664e98afaa54117d524670",
      "sender": "jtimon",
      "payload": "I already buried my hopes of libconsensus becoming eventually C",
      "action": false,
      "timestamp": "2016-10-20T19:46:01+00:00"
    },
    {
      "id": "750772a0342f43a4acd0e4ca1c6e7314",
      "sender": "wumpus",
      "payload": "Chris_Stewart_5: preventing the topic from being discussed is quite easy, but I think that would be seen as censorship :)",
      "action": false,
      "timestamp": "2016-10-20T19:46:01+00:00"
    },
    {
      "id": "8bf1916950b746828d18135ab19baa9f",
      "sender": "Chris_Stewart_5",
      "payload": "This is ALL libbconsensus right? Is tehre any concrete proposals?",
      "action": false,
      "timestamp": "2016-10-20T19:46:05+00:00"
    },
    {
      "id": "a8b863208cb940f29f0e933d4a4b8ddd",
      "sender": "instagibbs_",
      "payload": "14 minutes in case anyone wants to discuss anything else",
      "action": false,
      "timestamp": "2016-10-20T19:46:25+00:00"
    },
    {
      "id": "57cdc7717e714482aa89cc238ea2c880",
      "sender": "jtimon",
      "payload": "Chris_Stewart_5: afaik the most concrete proposal right now is #8493",
      "action": false,
      "timestamp": "2016-10-20T19:46:41+00:00"
    },
    {
      "id": "40a2cf810c0b4b669aa848945eef7087",
      "sender": "wumpus",
      "payload": "instagibbs_: I asked in the beginning, don't think there's any issues with rc2 yet",
      "action": false,
      "timestamp": "2016-10-20T19:46:41+00:00"
    },
    {
      "id": "8e89af18099544b9971f13b6fd7cd00d",
      "sender": "kanzure",
      "payload": "Chris_Stewart_5: jtimon has made a number of proposals, such as https://github.com/jtimon/consensus-doc/blob/generated/libconsensus.pdf https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-October/013204.html",
      "action": false,
      "timestamp": "2016-10-20T19:46:45+00:00"
    },
    {
      "id": "64d36d58480746ad91a19f48c39f2a50",
      "sender": "Chris_Stewart_5",
      "payload": "Thanks, i'll take a look at it.",
      "action": false,
      "timestamp": "2016-10-20T19:47:04+00:00"
    },
    {
      "id": "3c8efacf38704f10be75e7c68145f7b4",
      "sender": "kanzure",
      "payload": "ah 8493 is expose verifyheader. ok.",
      "action": false,
      "timestamp": "2016-10-20T19:47:15+00:00"
    },
    {
      "id": "9855b1e10ec3411c94db3385369f6ba0",
      "sender": "instagibbs_",
      "payload": "wumpus: ok great",
      "action": false,
      "timestamp": "2016-10-20T19:47:21+00:00"
    },
    {
      "id": "6a38329a5a134e32aab99129753cb077",
      "sender": "CodeShark",
      "payload": "so any other topics?",
      "action": false,
      "timestamp": "2016-10-20T19:48:07+00:00"
    },
    {
      "id": "3d504499b19d4a39a0a75912055a44a4",
      "sender": "Chris_Stewart_5",
      "payload": "rc2 issues?",
      "action": false,
      "timestamp": "2016-10-20T19:48:08+00:00"
    },
    {
      "id": "bfb7e9bba12a47c08c85f33ea8a4e666",
      "sender": "wumpus",
      "payload": "which rc2 issues?",
      "action": false,
      "timestamp": "2016-10-20T19:48:16+00:00"
    },
    {
      "id": "170ef0a06dda41adb022e2ffc5527d7b",
      "sender": "BlueMatt",
      "payload": "the lack of rc2 issues =D",
      "action": false,
      "timestamp": "2016-10-20T19:48:40+00:00"
    },
    {
      "id": "1437f52705f24a9fb83da8a59422fd14",
      "sender": "Chris_Stewart_5",
      "payload": "*crickets*",
      "action": false,
      "timestamp": "2016-10-20T19:48:43+00:00"
    },
    {
      "id": "79eb9cd194ea4c889ef488d1d04f26bb",
      "sender": "wumpus",
      "payload": "19:46 < wumpus> instagibbs_: I asked in the beginning, don't think there's any issues with rc2 yet",
      "action": false,
      "timestamp": "2016-10-20T19:48:50+00:00"
    },
    {
      "id": "d98e23bf6c634454a3c55c62b57be3a8",
      "sender": "kanzure",
      "payload": "i think he was asking to hear for any",
      "action": false,
      "timestamp": "2016-10-20T19:48:59+00:00"
    },
    {
      "id": "4ff0c3c19b2f4d3b9d47aaa2fb2898aa",
      "sender": "wumpus",
      "payload": "if there are, feel free to say so",
      "action": false,
      "timestamp": "2016-10-20T19:49:01+00:00"
    },
    {
      "id": "6364e7623efb4f4ca305777c6eba60bc",
      "sender": "achow101",
      "payload": "what about killing off windows 32 bit builds?",
      "action": false,
      "timestamp": "2016-10-20T19:49:14+00:00"
    },
    {
      "id": "0b193beff2684e79a53bd77885a692cd",
      "sender": "jonasschnelli",
      "payload": "I guess in 0.15",
      "action": false,
      "timestamp": "2016-10-20T19:49:31+00:00"
    },
    {
      "id": "6d5dc9da581145f3bee1c63263dfaf2d",
      "sender": "wumpus",
      "payload": "that's not an urgent topic really",
      "action": false,
      "timestamp": "2016-10-20T19:49:33+00:00"
    },
    {
      "id": "9a0d2ae6c938490f9d91716692e5d586",
      "sender": "wumpus",
      "payload": "yes, 0.15 I'd say too",
      "action": false,
      "timestamp": "2016-10-20T19:49:36+00:00"
    },
    {
      "id": "a33ec7c62aca45c28ca10eca5437ad42",
      "sender": "wumpus",
      "payload": "I asked around and from 50 or so 'no' responses, there were two actual users admitting they were still using bitcoin core on windows 32-bit",
      "action": false,
      "timestamp": "2016-10-20T19:50:10+00:00"
    },
    {
      "id": "2c4800c7db9c4916ba44aef658470b96",
      "sender": "sipa",
      "payload": "are there likely some who don't know?",
      "action": false,
      "timestamp": "2016-10-20T19:50:24+00:00"
    },
    {
      "id": "f42b4e2374b249b58066bd5b7c8cbe54",
      "sender": "wumpus",
      "payload": "they both expected this to stilll last only 6 months or so no longer",
      "action": false,
      "timestamp": "2016-10-20T19:50:29+00:00"
    },
    {
      "id": "e3ff0e9e5e2544ca94fdd962bb1a4d81",
      "sender": "wumpus",
      "payload": "old hw",
      "action": false,
      "timestamp": "2016-10-20T19:50:31+00:00"
    },
    {
      "id": "88b07b7ea0654d748348cf28a779d90d",
      "sender": "gmaxwell",
      "payload": "I haven't encountered any issues in RC2 yet, though its a bit new. The PR of mine that was merged appears to be working.",
      "action": false,
      "timestamp": "2016-10-20T19:50:35+00:00"
    },
    {
      "id": "ac3430ce278d4273b2e8fb4fbb845bfb",
      "sender": "jonasschnelli",
      "payload": "If we have no other topic, we can discuss if we want to adjust the GUI default confirmation target down to the RPC interfaces value of 2 blocks",
      "action": false,
      "timestamp": "2016-10-20T19:50:52+00:00"
    },
    {
      "id": "fa9eb457ee5c4393a06b0729f71ad113",
      "sender": "wumpus",
      "payload": "so that would time with 0.15, which is fine with me, no hurry",
      "action": false,
      "timestamp": "2016-10-20T19:50:54+00:00"
    },
    {
      "id": "e482bea9b1dc4c2e9f6567f5808d7ade",
      "sender": "Victorsueca",
      "payload": "gmaxwell: the lastest travis build seems to have failed for master",
      "action": false,
      "timestamp": "2016-10-20T19:51:27+00:00"
    },
    {
      "id": "2db51ea48d254f1c9afaa36e03f02566",
      "sender": "instagibbs_",
      "payload": "jonasschnelli: yeah i suggested this a bit ago",
      "action": false,
      "timestamp": "2016-10-20T19:51:30+00:00"
    },
    {
      "id": "5f1d05895e8e478da1338b5579a01d18",
      "sender": "jonasschnelli",
      "payload": "25 blocks as \"normal\" confirmation speed sounds ridiculous",
      "action": false,
      "timestamp": "2016-10-20T19:51:43+00:00"
    },
    {
      "id": "f1c5781951b649788bda9772ee7dad8f",
      "sender": "achow101",
      "payload": "jonasschnelli: I think it's a good idea",
      "action": false,
      "timestamp": "2016-10-20T19:51:45+00:00"
    },
    {
      "id": "06f2e0361a6f4bebb430a87ad39139ee",
      "sender": "instagibbs_",
      "payload": "i dont understand why having different command line and GUI behavior like that is \"good\"",
      "action": false,
      "timestamp": "2016-10-20T19:51:46+00:00"
    },
    {
      "id": "ee126baf3b1f4beabfde577e228105ac",
      "sender": "morcos",
      "payload": "jonasschnelli: to be honest, i actually agree we should make the target less than 25, but I think 2 is too low, and i think we're going to bikeshed where it should be",
      "action": false,
      "timestamp": "2016-10-20T19:51:57+00:00"
    },
    {
      "id": "3c4375e11d214e59a89c9f98b203673c",
      "sender": "jonasschnelli",
      "payload": "Yes. I fear that as well. :)",
      "action": false,
      "timestamp": "2016-10-20T19:52:12+00:00"
    },
    {
      "id": "8b9b3a79348748f68d013bd903e485c8",
      "sender": "sipa",
      "payload": "it seems reasonable that the default in gui and rpc is the same",
      "action": false,
      "timestamp": "2016-10-20T19:52:14+00:00"
    },
    {
      "id": "e8110a262e7746019fd7925193131597",
      "sender": "instagibbs_",
      "payload": "morcos: \"match between command-line and GUI\" is a starting point :)",
      "action": false,
      "timestamp": "2016-10-20T19:52:18+00:00"
    },
    {
      "id": "1041f8002fa649e7aaa1875f05b8773b",
      "sender": "BlueMatt",
      "payload": "jonasschnelli: I'm for 25",
      "action": false,
      "timestamp": "2016-10-20T19:52:21+00:00"
    },
    {
      "id": "4de77ab6e47f4589a995827eb3948f93",
      "sender": "BlueMatt",
      "payload": "25 is good",
      "action": false,
      "timestamp": "2016-10-20T19:52:23+00:00"
    },
    {
      "id": "12b0e115d1e148bb879c4a4d5aa70aeb",
      "sender": "morcos",
      "payload": "the issue is that when there is a break between blocks or network congestion, to be really sure you get confirmed very quickly, say in a couple of blocks",
      "action": false,
      "timestamp": "2016-10-20T19:52:24+00:00"
    },
    {
      "id": "471cb6f99c464af6a0c4d8d477163928",
      "sender": "jonasschnelli",
      "payload": "And the slider should probably not touch nTxConfirmTarget!",
      "action": false,
      "timestamp": "2016-10-20T19:52:26+00:00"
    },
    {
      "id": "9f82cca8fb76423482071041cf93e019",
      "sender": "jonasschnelli",
      "payload": "global!",
      "action": false,
      "timestamp": "2016-10-20T19:52:30+00:00"
    },
    {
      "id": "5100f3c4902141d78b8badc03408ac83",
      "sender": "morcos",
      "payload": "then you might have to pay areally high fee",
      "action": false,
      "timestamp": "2016-10-20T19:52:30+00:00"
    },
    {
      "id": "e3c4e8b9c447406b90c8e42f6ccc87b4",
      "sender": "MarcoFalke",
      "payload": "jonasschnelli: This should be uncontroversial. And actually it is a bug in the current code, as the default already says 25, but the slider is \"mirrored\", so it ends up on the wrong side.",
      "action": false,
      "timestamp": "2016-10-20T19:52:33+00:00"
    },
    {
      "id": "a79a21cb1e5548e188f4b78c6826351f",
      "sender": "morcos",
      "payload": "which is priobably not what you want",
      "action": false,
      "timestamp": "2016-10-20T19:52:37+00:00"
    },
    {
      "id": "21db4e4b146f4956997ff8bc92bcc742",
      "sender": "MarcoFalke",
      "payload": "I never fixed it because I wanted to clean it up \"in a go\" with all the other nasty things the gui does with the \"fee\"-globals",
      "action": false,
      "timestamp": "2016-10-20T19:53:00+00:00"
    },
    {
      "id": "c35f06897dbb4401aeec7253980cb5de",
      "sender": "morcos",
      "payload": "more intelligent fee estimation would maybe gauge the current conditions against historical conditions or something.",
      "action": false,
      "timestamp": "2016-10-20T19:53:13+00:00"
    },
    {
      "id": "b48b6c40033943b787e14a76336f1fa3",
      "sender": "gmaxwell",
      "payload": "Is anyone working on improving the estimator generally, right now?",
      "action": false,
      "timestamp": "2016-10-20T19:53:20+00:00"
    },
    {
      "id": "0843f1a283c64d029118aada26ab6aa7",
      "sender": "jonasschnelli",
      "payload": "I think there are some users fooled by the fact that RPCs sendto* uses different fee estimations then the \"default\" GUI send method.",
      "action": false,
      "timestamp": "2016-10-20T19:53:34+00:00"
    },
    {
      "id": "96fc46966e5c485e9d3452658ebcb88b",
      "sender": "gmaxwell",
      "payload": "It could use improvement, though I think bumping is more important.",
      "action": false,
      "timestamp": "2016-10-20T19:53:46+00:00"
    },
    {
      "id": "c32386973c7e419c8770d0fd680419e9",
      "sender": "jonasschnelli",
      "payload": "I mean only different confirmations targets",
      "action": false,
      "timestamp": "2016-10-20T19:53:49+00:00"
    },
    {
      "id": "10f5bba2100a408e9f5ad58757a4a003",
      "sender": "morcos",
      "payload": "MarcoFalke: i dont think it was a bug.  i noticed it when it went in and i thought it was on purpose, i think we discussed it at a time",
      "action": false,
      "timestamp": "2016-10-20T19:53:53+00:00"
    },
    {
      "id": "654486154fd6462c9779bd9ffbf300aa",
      "sender": "MarcoFalke",
      "payload": "ok",
      "action": false,
      "timestamp": "2016-10-20T19:54:01+00:00"
    },
    {
      "id": "59ec778785da401591336cd7f7ca1676",
      "sender": "jonasschnelli",
      "payload": "Someone should review the new bumpfee PR.",
      "action": false,
      "timestamp": "2016-10-20T19:54:02+00:00"
    },
    {
      "id": "a6abf9d468e3495faec71a993caa8078",
      "sender": "jonasschnelli",
      "payload": "https://github.com/bitcoin/bitcoin/pull/8456",
      "action": false,
      "timestamp": "2016-10-20T19:54:17+00:00"
    },
    {
      "id": "e67ed6f251d2438f83928cccee977097",
      "sender": "morcos",
      "payload": "gmaxwell: i mentioned on that issue that i had worked on it..  6-9 months ago..  but abandoned it.  i have some custom code that does a lot more",
      "action": false,
      "timestamp": "2016-10-20T19:54:25+00:00"
    },
    {
      "id": "6cb0271c00ce457b88f4993cba825b78",
      "sender": "morcos",
      "payload": "but nothing that really got polished",
      "action": false,
      "timestamp": "2016-10-20T19:54:29+00:00"
    },
    {
      "id": "3e526c9c5d304d71a30cd7044bebba51",
      "sender": "wumpus",
      "payload": "yes, we *must* have a bumpfee for 0.14",
      "action": false,
      "timestamp": "2016-10-20T19:54:35+00:00"
    },
    {
      "id": "8554f3eed8a64712b74c196e6654504b",
      "sender": "kanzure",
      "payload": "morcos: had you looked at bramc's work on fee estimation?",
      "action": false,
      "timestamp": "2016-10-20T19:54:40+00:00"
    },
    {
      "id": "8d37651cd9454895835c475deeb6aea5",
      "sender": "morcos",
      "payload": "kanzure: i've been shying away from algorithms which require replacement.  i think its a great idea, but not how most users expect their default transactions to work.  I think most users want them to get confirmed relatively quickly on the first try.",
      "action": false,
      "timestamp": "2016-10-20T19:55:35+00:00"
    },
    {
      "id": "dde5c2e73d504003aa1ab5702cc38e38",
      "sender": "morcos",
      "payload": "But an algorithm for bumping when you guess too low makes sense.",
      "action": false,
      "timestamp": "2016-10-20T19:55:45+00:00"
    },
    {
      "id": "72a62d315fc947b4ba51540d184c0a2b",
      "sender": "gmaxwell",
      "payload": "in any case, in my expirence the core estimator usually produces fees which are generally too high (compared to what gets confirmed in the next block, also compared e.g. to 21inc's estimator), having a higher confirmed target helps reduce the impact.",
      "action": false,
      "timestamp": "2016-10-20T19:56:08+00:00"
    },
    {
      "id": "8dbe59935a704503afcf1b3a95059ee7",
      "sender": "morcos",
      "payload": "so to be clear, if someone else has an idea of how it should be improved, please go ahead.  and i'm happy to help.  but its just one of those things that there is no \"right\" answer for so it can get frustrating",
      "action": false,
      "timestamp": "2016-10-20T19:56:39+00:00"
    },
    {
      "id": "34d532bba6ee4c2b89fcc0d2930a952b",
      "sender": "gmaxwell",
      "payload": "I was just wondering if there was anything ongoing at the moment.",
      "action": false,
      "timestamp": "2016-10-20T19:57:04+00:00"
    },
    {
      "id": "b69df0c6039e447fb97cb7cd70b80beb",
      "sender": "gmaxwell",
      "payload": "(since the subject came up)",
      "action": false,
      "timestamp": "2016-10-20T19:57:11+00:00"
    },
    {
      "id": "aa6cd9aed4864115a99ef2a5162c3597",
      "sender": "jonasschnelli",
      "payload": "What about changing the default confirmation target to 6 for RPC interface and the GUI once we have the bumpfee cmd?",
      "action": false,
      "timestamp": "2016-10-20T19:57:11+00:00"
    },
    {
      "id": "45ae833d587945548d8676c59f059c77",
      "sender": "Victorsueca",
      "payload": "as example, most of my transactions where I set the fee slider to 25 it confirmed on the next 2 blocks",
      "action": false,
      "timestamp": "2016-10-20T19:57:15+00:00"
    },
    {
      "id": "f243ef712dc2433d8343e52225883a0a",
      "sender": "morcos",
      "payload": "gmaxwell: yes, exactly and thats by design.  i interprested the question of what does it take to be confirmed in X blocks as meaning you really want to be very sure it'll be confirmed wihtin the target",
      "action": false,
      "timestamp": "2016-10-20T19:57:23+00:00"
    },
    {
      "id": "47069e2f30d043a5ae506f424dbfdc4b",
      "sender": "jonasschnelli",
      "payload": "Victorsueca: users made different experiences with that",
      "action": false,
      "timestamp": "2016-10-20T19:57:31+00:00"
    },
    {
      "id": "b53aa063f78649f99170b835ec2bb62f",
      "sender": "gmaxwell",
      "payload": "morcos: And that is what it must do, esp when there is no bump. :)",
      "action": false,
      "timestamp": "2016-10-20T19:57:51+00:00"
    },
    {
      "id": "3a22b9fd423b4d2a88dbdc71f2ed3bd6",
      "sender": "morcos",
      "payload": "thats why i hesitate to set the default to 2",
      "action": false,
      "timestamp": "2016-10-20T19:57:51+00:00"
    },
    {
      "id": "961f65e5d6664ff881e8d383f85ca93b",
      "sender": "jtimon",
      "payload": "2 mins",
      "action": false,
      "timestamp": "2016-10-20T19:58:08+00:00"
    },
    {
      "id": "d76ba7fc0fa1462bbb317d88fe99dc18",
      "sender": "morcos",
      "payload": "jonasschnelli: i like 6, and i'd be fine with that....",
      "action": false,
      "timestamp": "2016-10-20T19:58:19+00:00"
    },
    {
      "id": "330576bed7ba45d793da8c2fbdba1237",
      "sender": "instagibbs_",
      "payload": "overpaying is fine until we have bump, heh",
      "action": false,
      "timestamp": "2016-10-20T19:58:25+00:00"
    },
    {
      "id": "5888a652f1f94037b3b6e741183625af",
      "sender": "gmaxwell",
      "payload": "I would be too.",
      "action": false,
      "timestamp": "2016-10-20T19:58:31+00:00"
    },
    {
      "id": "648537c3a6b6424283331c84db96ea1f",
      "sender": "Victorsueca",
      "payload": "jonasschnelli: yeah, I seen too lots of people blaming slow transactions even with recommended fee, but not my case for some reason",
      "action": false,
      "timestamp": "2016-10-20T19:58:47+00:00"
    },
    {
      "id": "7e51a4124724443a91d367f3e5cd05ce",
      "sender": "CodeShark",
      "payload": "wouldn't overpaying tend to raise fees up?",
      "action": false,
      "timestamp": "2016-10-20T19:58:48+00:00"
    },
    {
      "id": "4775aa7e5a7d4ccdb1d4ca69b1e85312",
      "sender": "CodeShark",
      "payload": "for everyone",
      "action": false,
      "timestamp": "2016-10-20T19:59:05+00:00"
    },
    {
      "id": "2321413639d648adae06caa3a795bb13",
      "sender": "wumpus",
      "payload": "only if everyone is going to do that",
      "action": false,
      "timestamp": "2016-10-20T19:59:19+00:00"
    },
    {
      "id": "b25e42aa8b734c359d8a4ee89558502b",
      "sender": "morcos",
      "payload": "CodeShark: ah, that is one of bramc's concerns.  i think the existing algo is pretty resistant to that",
      "action": false,
      "timestamp": "2016-10-20T19:59:20+00:00"
    },
    {
      "id": "67f210179e36431a94f3c794a259e095",
      "sender": "jtimon",
      "payload": "CodeShark: I could think of some kind of overpaying race",
      "action": false,
      "timestamp": "2016-10-20T19:59:29+00:00"
    },
    {
      "id": "bd795abafb234ac3a6a5181f143b7a60",
      "sender": "jonasschnelli",
      "payload": "Most important is probably review of mrbandrews's bumpfee (https://github.com/bitcoin/bitcoin/pull/8456)",
      "action": false,
      "timestamp": "2016-10-20T19:59:31+00:00"
    },
    {
      "id": "9686a15914074244a3e085e165e65e95",
      "sender": "morcos",
      "payload": "yes unless literally everyone does it",
      "action": false,
      "timestamp": "2016-10-20T19:59:36+00:00"
    },
    {
      "id": "f1567ebcf95949708e93ca7926e47d45",
      "sender": "MarcoFalke",
      "payload": "We should just set it to a random value *ducks*",
      "action": false,
      "timestamp": "2016-10-20T19:59:39+00:00"
    },
    {
      "id": "39b2b66bd55740c2b63aec0ad70c529a",
      "sender": "instagibbs_",
      "payload": "Assuming everyone is transacting at the same exact time, sure. But there's time preferences in real life, week/weekend patterns",
      "action": false,
      "timestamp": "2016-10-20T19:59:40+00:00"
    },
    {
      "id": "3b688cb0e3f1465f8cd1326e00e0b970",
      "sender": "instagibbs_",
      "payload": "etc",
      "action": false,
      "timestamp": "2016-10-20T19:59:41+00:00"
    },
    {
      "id": "8de61df47cfa42499041aa6d6756905d",
      "sender": "wumpus",
      "payload": "instagibbs_: +1",
      "action": false,
      "timestamp": "2016-10-20T19:59:54+00:00"
    },
    {
      "id": "bcd68e1b9abb4de8a59f887bd55a05d3",
      "sender": "instagibbs_",
      "payload": "bitcoin businesses will do settlement on sunday evening to avoid fees",
      "action": false,
      "timestamp": "2016-10-20T19:59:58+00:00"
    },
    {
      "id": "b57e8a0037284dda8157e5f9b079c401",
      "sender": "sipa",
      "payload": "TINGELINGELING",
      "action": false,
      "timestamp": "2016-10-20T20:00:01+00:00"
    },
    {
      "id": "114f15ada79e4ba783a5e176f9d8adc4",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2016-10-20T20:00:08+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "7689fe5249144b6b92a437667bcaa927",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2016-10-20T19:00:15+00:00"
      },
      "operand": null,
      "id": "7689fe5249144b6b92a437667bcaa927",
      "timestamp": "2016-10-20T19:00:15+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "3a95a55df86844c6b24f742742eec09c",
        "sender": "wumpus",
        "payload": "#topic libconsensus",
        "action": false,
        "timestamp": "2016-10-20T19:03:53+00:00"
      },
      "operand": "libconsensus",
      "id": "3a95a55df86844c6b24f742742eec09c",
      "timestamp": "2016-10-20T19:03:53+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "2908e3d35914440a95372bc3e3e40f93",
        "sender": "jonasschnelli",
        "payload": "https://github.com/bitcoin/bitcoin/pull/8976",
        "action": false,
        "timestamp": "2016-10-20T19:05:20+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/pull/8976",
      "id": "2908e3d35914440a95372bc3e3e40f93",
      "timestamp": "2016-10-20T19:05:20+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "14c4d6aafde140de91ad8401a70945be",
        "sender": "jtimon",
        "payload": "https://github.com/jtimon/bitcoin/blob/0.13-consensus-flags/src/versionbits.cpp#L153",
        "action": false,
        "timestamp": "2016-10-20T19:14:52+00:00"
      },
      "operand": "https://github.com/jtimon/bitcoin/blob/0.13-consensus-flags/src/versionbits.cpp#L153",
      "id": "14c4d6aafde140de91ad8401a70945be",
      "timestamp": "2016-10-20T19:14:52+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "a6abf9d468e3495faec71a993caa8078",
        "sender": "jonasschnelli",
        "payload": "https://github.com/bitcoin/bitcoin/pull/8456",
        "action": false,
        "timestamp": "2016-10-20T19:54:17+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/pull/8456",
      "id": "a6abf9d468e3495faec71a993caa8078",
      "timestamp": "2016-10-20T19:54:17+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "114f15ada79e4ba783a5e176f9d8adc4",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2016-10-20T20:00:08+00:00"
      },
      "operand": null,
      "id": "114f15ada79e4ba783a5e176f9d8adc4",
      "timestamp": "2016-10-20T20:00:08+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}