{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "1c8e896e321f44f790a4b1cbd532c512",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 101,
    "lightningbot": 2,
    "MarcoFalke": 6,
    "hebasto": 1,
    "achow101": 2,
    "troygiorshev": 1,
    "jnewbery": 10,
    "jb55": 1,
    "fjahr": 3,
    "amiti": 1,
    "luke-jr": 60,
    "promag": 23,
    "kanzure": 1,
    "jonasschnelli": 1,
    "jeremyrubin": 23,
    "gwillen": 1,
    "cfields": 9,
    "sipa": 44,
    "phantomcircuit": 3,
    "instagibbs": 35,
    "ariard": 5,
    "elichai2": 1,
    "gribble": 9,
    "jamesob": 1,
    "jonatack": 1,
    "meshcollider": 1,
    "pinheadmz1": 1,
    "nehan": 1,
    "aj": 7,
    "shuckc": 16
  },
  "start_time": "2020-07-09T19:00:52+00:00",
  "end_time": "2020-07-09T20:02:11+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: http://www.erisian.com.au/bitcoin-core-dev/, http://gnusha.org/bitcoin-core-dev/ | Meeting topics https://gist.github.com/moneyball/071d608fdae217c2a6d7c35955881d8a",
  "current_topic": "mempool delta notifications (instagibbs)",
  "messages": [
    {
      "id": "40f914c7e8ba49169add347df2fac92e",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2020-07-09T19:00:52+00:00"
    },
    {
      "id": "496d00c12ffe48b6903d1b1e852bf549",
      "sender": "lightningbot",
      "payload": "Meeting started Thu Jul  9 19:00:52 2020 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2020-07-09T19:00:52+00:00"
    },
    {
      "id": "de53c3388443484ead3deffca5258b8f",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2020-07-09T19:00:52+00:00"
    },
    {
      "id": "f7021bd156844cf69861571b043f57a2",
      "sender": "MarcoFalke",
      "payload": "ahoi",
      "action": false,
      "timestamp": "2020-07-09T19:00:52+00:00"
    },
    {
      "id": "2c7b02dbf6074913b0311fdb6bd9c07a",
      "sender": "hebasto",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:00:57+00:00"
    },
    {
      "id": "1a22cc121961498e90632aa2361b93de",
      "sender": "achow101",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:00:58+00:00"
    },
    {
      "id": "7a20bd4b9e0c4d468d7e7b1371ef776b",
      "sender": "troygiorshev",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:00:59+00:00"
    },
    {
      "id": "9d5ea014cc3d465990c072289375a3cd",
      "sender": "jnewbery",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:03+00:00"
    },
    {
      "id": "4ff1c4e2dcb04bc3ba8b516b68cdac7f",
      "sender": "wumpus",
      "payload": "#bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101 meshcollider jnewbery maaku fanquake promag provoostenator aj Chris_Stewart_5 dongcarl gwillen jamesob ken281221 ryanofsky gleb moneyball kvaciral ariard digi_james amiti fjahr",
      "action": false,
      "timestamp": "2020-07-09T19:01:07+00:00"
    },
    {
      "id": "3fc493225d774ac6ac112ed47f133844",
      "sender": "wumpus",
      "payload": "jeremyrubin lightlike emilengler jonatack hebasto jb55 elichai2",
      "action": false,
      "timestamp": "2020-07-09T19:01:09+00:00"
    },
    {
      "id": "484e0bfdb975489db1b15f292aed5f34",
      "sender": "jb55",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:19+00:00"
    },
    {
      "id": "77def27d7b114783a7e1f72e18c1de07",
      "sender": "fjahr",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:20+00:00"
    },
    {
      "id": "9de2b2e62b1b4ebd9f880a097e2737dc",
      "sender": "amiti",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:22+00:00"
    },
    {
      "id": "84201310640a4310bf590b8f5906c581",
      "sender": "luke-jr",
      "payload": "ih",
      "action": false,
      "timestamp": "2020-07-09T19:01:26+00:00"
    },
    {
      "id": "15ca497c41a04ad69a5592b0f0edcd1f",
      "sender": "promag",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:37+00:00"
    },
    {
      "id": "9eec0a37b0f34d59bcf0a846ffcbbd82",
      "sender": "kanzure",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:38+00:00"
    },
    {
      "id": "60386130d1a2488bb28eafaedd90a814",
      "sender": "jonasschnelli",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:01:50+00:00"
    },
    {
      "id": "16e61bcdaf03467287ef277be116839d",
      "sender": "jeremyrubin",
      "payload": "hola",
      "action": false,
      "timestamp": "2020-07-09T19:01:57+00:00"
    },
    {
      "id": "4a08a7bd104e4e008140e4b53abd1cd8",
      "sender": "gwillen",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:02:12+00:00"
    },
    {
      "id": "2a073b7fbe60495cad6bcb93fc923416",
      "sender": "cfields",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:02:21+00:00"
    },
    {
      "id": "6ae644b58ad94116b0466a1abb0699dc",
      "sender": "sipa",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:02:28+00:00"
    },
    {
      "id": "3ed1db2c533c4939a2a86066e3683e86",
      "sender": "wumpus",
      "payload": "one proposed meeting topic: small clarification on the goals of the mempool project (jeremyrubin)",
      "action": false,
      "timestamp": "2020-07-09T19:02:30+00:00"
    },
    {
      "id": "8dc91506d0ad44e9ab10c73876db665f",
      "sender": "wumpus",
      "payload": "any last minute topics?",
      "action": false,
      "timestamp": "2020-07-09T19:02:36+00:00"
    },
    {
      "id": "5671e97b607643a9a58011efbe17f57e",
      "sender": "phantomcircuit",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:02:50+00:00"
    },
    {
      "id": "7c525297a9974217a4ce6d6013f49b1b",
      "sender": "sipa",
      "payload": "another short one: can we drop gcc 4.8?",
      "action": false,
      "timestamp": "2020-07-09T19:02:56+00:00"
    },
    {
      "id": "04b8794a9c704dcc999ce474108184a4",
      "sender": "wumpus",
      "payload": "ok",
      "action": false,
      "timestamp": "2020-07-09T19:03:06+00:00"
    },
    {
      "id": "b7ef4a09e07643118e8f49e9d1526c84",
      "sender": "instagibbs",
      "payload": "proposed topic: new zmq notifications, or something else https://github.com/bitcoin/bitcoin/pull/19462#issuecomment-656140421 and https://github.com/bitcoin/bitcoin/pull/19476",
      "action": false,
      "timestamp": "2020-07-09T19:03:25+00:00"
    },
    {
      "id": "0a9164d663ab4312a447677690dbb720",
      "sender": "luke-jr",
      "payload": "sipa: not sure that's a good meeting topic; it just needs someone to investigate distros?",
      "action": false,
      "timestamp": "2020-07-09T19:03:41+00:00"
    },
    {
      "id": "5d32629cff95438995a46a0f52a86c25",
      "sender": "ariard",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:03:44+00:00"
    },
    {
      "id": "dc709b295d1b43c38adc00445b5c7c94",
      "sender": "elichai2",
      "payload": "hu",
      "action": false,
      "timestamp": "2020-07-09T19:03:54+00:00"
    },
    {
      "id": "e331931e2b8f4f0ab55be2deead071a6",
      "sender": "wumpus",
      "payload": "#topic High priority for review",
      "action": false,
      "timestamp": "2020-07-09T19:04:04+00:00"
    },
    {
      "id": "312719d37edd4dbdb7e37450f5dc4bad",
      "sender": "MarcoFalke",
      "payload": "can i haz #19386",
      "action": false,
      "timestamp": "2020-07-09T19:04:16+00:00"
    },
    {
      "id": "525ceee1a4b44a3997b42e47e800fb73",
      "sender": "achow101",
      "payload": "#19325 pls",
      "action": false,
      "timestamp": "2020-07-09T19:04:17+00:00"
    },
    {
      "id": "4207a71ca814487bb262feb6f9ac8cef",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/19386 | rpc: Assert that RPCArg names are equal to CRPCCommand ones (server) by MarcoFalke \u00c3\u0082\u00c2\u00b7 Pull Request #19386 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:04:19+00:00"
    },
    {
      "id": "fd9d31b285b348c9b6f770e5d823dadc",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/19325 | wallet: Refactor BerkeleyDatabase to introduce DatabaseBatch abstract class by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #19325 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:04:20+00:00"
    },
    {
      "id": "b48f1567a4fa442d8d355dda4c248934",
      "sender": "wumpus",
      "payload": "https://github.com/bitcoin/bitcoin/projects/8  13 blockers, 1 bugfix, 3 chasing concept ACK",
      "action": false,
      "timestamp": "2020-07-09T19:04:27+00:00"
    },
    {
      "id": "cf08c4fef32f4efa9228dbe4eb23f48b",
      "sender": "wumpus",
      "payload": "please don't add any more before removing any xD",
      "action": false,
      "timestamp": "2020-07-09T19:04:36+00:00"
    },
    {
      "id": "b2a1112abbef49e5bc08101671c371af",
      "sender": "jamesob",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:04:38+00:00"
    },
    {
      "id": "7d492bf0a95446a79d94b0fa8f7e1a6f",
      "sender": "ariard",
      "payload": "you can drop #18787, after talking with few people, a libstandardness would be more accurate",
      "action": false,
      "timestamp": "2020-07-09T19:04:45+00:00"
    },
    {
      "id": "fc0bf6dc62084940b45d81a9b9fcc82e",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18787 | wallet: descriptor wallet release notes and cleanups by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #18787 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:04:50+00:00"
    },
    {
      "id": "14a583a7ad1d48d793f6c9fa8b0b89a9",
      "sender": "ariard",
      "payload": "#18797 sorry",
      "action": false,
      "timestamp": "2020-07-09T19:05:01+00:00"
    },
    {
      "id": "1dbc2b40731f436098330be7d0f4db0a",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18797 | Export standard Script flags in bitcoinconsensus by ariard \u00c3\u0082\u00c2\u00b7 Pull Request #18797 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:05:04+00:00"
    },
    {
      "id": "e04baa8dff274895be9966658841dbd3",
      "sender": "jeremyrubin",
      "payload": "removing #18191",
      "action": false,
      "timestamp": "2020-07-09T19:05:10+00:00"
    },
    {
      "id": "10a4ff84722947be887a5aae40dcd89c",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18191 | Change UpdateForDescendants to use Epochs by JeremyRubin \u00c3\u0082\u00c2\u00b7 Pull Request #18191 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:05:13+00:00"
    },
    {
      "id": "ab98f219f0424752af6b61f4906c7579",
      "sender": "jonatack",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:06:17+00:00"
    },
    {
      "id": "9e45f2a6d0064910939852cebe61aadb",
      "sender": "promag",
      "payload": "please see #19033, its for 0.20.1",
      "action": false,
      "timestamp": "2020-07-09T19:06:22+00:00"
    },
    {
      "id": "24405829a5be41cfa2acebc015db426e",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/19033 | http: Release work queue after event base finish by promag \u00c3\u0082\u00c2\u00b7 Pull Request #19033 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:06:24+00:00"
    },
    {
      "id": "ca10958c48f04d1ebdb1faf28f105e60",
      "sender": "wumpus",
      "payload": "ariard, achow101  done",
      "action": false,
      "timestamp": "2020-07-09T19:06:25+00:00"
    },
    {
      "id": "79067bd9f0b14929a16320299828ce1d",
      "sender": "wumpus",
      "payload": "jeremyrubin: ok",
      "action": false,
      "timestamp": "2020-07-09T19:07:11+00:00"
    },
    {
      "id": "7fcde13cc0984f43a070a09ae005b3b9",
      "sender": "luke-jr",
      "payload": "would be nice to get the build tarballs fixed finally too <.<",
      "action": false,
      "timestamp": "2020-07-09T19:07:13+00:00"
    },
    {
      "id": "19e8dd9902964abb88c1efe6a5fd2321",
      "sender": "meshcollider",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:07:19+00:00"
    },
    {
      "id": "5b7aa64bf5b141dcaffd65edb692b026",
      "sender": "pinheadmz1",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-07-09T19:08:10+00:00"
    },
    {
      "id": "1d4548b7bce843baa3c47a2d567a8e0a",
      "sender": "wumpus",
      "payload": "#topic clarification on the goals of the mempool project (jeremyrubin)",
      "action": false,
      "timestamp": "2020-07-09T19:09:20+00:00"
    },
    {
      "id": "10a4fc7dce714064a4ad9b6e4d104f57",
      "sender": "jeremyrubin",
      "payload": "Yeah just quick;",
      "action": false,
      "timestamp": "2020-07-09T19:09:49+00:00"
    },
    {
      "id": "e3498c9cd29c4a30837973ca1eceb256",
      "sender": "jeremyrubin",
      "payload": "So I think that there's some confusion or at least co-mingling of concerns based on how I've presented things",
      "action": false,
      "timestamp": "2020-07-09T19:10:10+00:00"
    },
    {
      "id": "fb8cf139d0c54bd3a5e790dcd80779f9",
      "sender": "jeremyrubin",
      "payload": "A lot of the motivation is to reduce the memory usage in the mempool",
      "action": false,
      "timestamp": "2020-07-09T19:10:35+00:00"
    },
    {
      "id": "7e0727fe6d9e402bb35c4bb34ac4b3a3",
      "sender": "jeremyrubin",
      "payload": "and to better bound the algorithmic complexity on functions",
      "action": false,
      "timestamp": "2020-07-09T19:10:49+00:00"
    },
    {
      "id": "656a48c1346547aba3db1dafe2d2de66",
      "sender": "jeremyrubin",
      "payload": "So that one day, maybe, we could lift some restrictions (e.g., descendents)",
      "action": false,
      "timestamp": "2020-07-09T19:11:09+00:00"
    },
    {
      "id": "e28b18e1893644c393af7b6cd58ea257",
      "sender": "jeremyrubin",
      "payload": "It's less so \"make mempool faster now\" performance motivation.",
      "action": false,
      "timestamp": "2020-07-09T19:11:42+00:00"
    },
    {
      "id": "6325e07cb2544d6eb08243c93719c751",
      "sender": "wumpus",
      "payload": "ok good to know",
      "action": false,
      "timestamp": "2020-07-09T19:12:09+00:00"
    },
    {
      "id": "3ea5ad2fbf114ceeb5503b0f4d42b07c",
      "sender": "jeremyrubin",
      "payload": "In a lot of cases I think it would be fine to accept a *slower* score on some benchmark (or at least the same) when the goal of the PR is reducing memory",
      "action": false,
      "timestamp": "2020-07-09T19:12:13+00:00"
    },
    {
      "id": "b9bd1d7126784fb295982659f57860b8",
      "sender": "jeremyrubin",
      "payload": "especially in cases where there may be a distant invariant which is currently protecting us from a \"crash the network\" style DoS",
      "action": false,
      "timestamp": "2020-07-09T19:12:44+00:00"
    },
    {
      "id": "3cedb19caf6a4817b235367cbf7f2943",
      "sender": "luke-jr",
      "payload": "if those are the goals, I wonder if it might make sense to move complexity into the miner",
      "action": false,
      "timestamp": "2020-07-09T19:12:56+00:00"
    },
    {
      "id": "b2270239b2254a5c944b2ee57c497ceb",
      "sender": "wumpus",
      "payload": "we could have benchmarks that measure memory usage I suppose",
      "action": false,
      "timestamp": "2020-07-09T19:13:00+00:00"
    },
    {
      "id": "4faf0b3f18424de4b1dcad8a6661f2e9",
      "sender": "luke-jr",
      "payload": "but that could interfere with compact blocks",
      "action": false,
      "timestamp": "2020-07-09T19:13:08+00:00"
    },
    {
      "id": "78aae64c67f047128ff28e396d005612",
      "sender": "jeremyrubin",
      "payload": "luke-jr: this does make sense for certain things.",
      "action": false,
      "timestamp": "2020-07-09T19:13:27+00:00"
    },
    {
      "id": "a8af9ed32a3f4521ad2af69585c69489",
      "sender": "luke-jr",
      "payload": "I wonder if it'd be possible to support a build without mining support that performs better",
      "action": false,
      "timestamp": "2020-07-09T19:13:49+00:00"
    },
    {
      "id": "138a15f8a37a4d8c84b1710a7d45cb60",
      "sender": "jeremyrubin",
      "payload": "I think one of the things that is difficult in particular is that we don't have a great set of adversarial benches for the mempool",
      "action": false,
      "timestamp": "2020-07-09T19:14:12+00:00"
    },
    {
      "id": "0a84bf37b1d34e729c19e1f3a566794e",
      "sender": "jeremyrubin",
      "payload": "And you need both whole-system and unit tests for the functions",
      "action": false,
      "timestamp": "2020-07-09T19:14:23+00:00"
    },
    {
      "id": "7900c11f398d48ca9254068978488792",
      "sender": "wumpus",
      "payload": "I think there's something of a conflict there, miners want the block selection to be as fast as possible, while other node users would want to reduce memory usage for the mempool as much as possible",
      "action": false,
      "timestamp": "2020-07-09T19:14:30+00:00"
    },
    {
      "id": "7ac0e01328a240b8a0e29c6c402c938a",
      "sender": "jeremyrubin",
      "payload": "And both asymptotic and bounded size",
      "action": false,
      "timestamp": "2020-07-09T19:14:34+00:00"
    },
    {
      "id": "6c88fe1e75d94fcf8ceb356d023080d9",
      "sender": "cfields",
      "payload": "wumpus: +1",
      "action": false,
      "timestamp": "2020-07-09T19:14:37+00:00"
    },
    {
      "id": "f1f035b4fa0649389e95cada853082b8",
      "sender": "luke-jr",
      "payload": "wumpus: by making mining build-time-optional, we could possibly get both cheaply?",
      "action": false,
      "timestamp": "2020-07-09T19:15:19+00:00"
    },
    {
      "id": "1b3f336429f548a7986b4423e08abf20",
      "sender": "ariard",
      "payload": "I'm not sure about reducing the memory usage, what the relation between size of your mempool and perf of fee estimation ?",
      "action": false,
      "timestamp": "2020-07-09T19:15:46+00:00"
    },
    {
      "id": "baf6ed6704f8411d9762c60336cf4963",
      "sender": "luke-jr",
      "payload": "I wonder if there's a way to change class sizes at runtime in C++",
      "action": false,
      "timestamp": "2020-07-09T19:15:50+00:00"
    },
    {
      "id": "16b98046efce4bc98fd23f890953a47d",
      "sender": "jeremyrubin",
      "payload": "Reducing memory usage is related to DoS primarily",
      "action": false,
      "timestamp": "2020-07-09T19:16:03+00:00"
    },
    {
      "id": "2b53fe4de7e747c38b432678e37945f4",
      "sender": "wumpus",
      "payload": "that's kind of annoying for testing but yes",
      "action": false,
      "timestamp": "2020-07-09T19:16:06+00:00"
    },
    {
      "id": "050c1848e1e14182a082b250fb260c3c",
      "sender": "jeremyrubin",
      "payload": "So the goal is to eliminate the class  of vuln",
      "action": false,
      "timestamp": "2020-07-09T19:16:24+00:00"
    },
    {
      "id": "e3fcd07c8eea43199959f3c4eb88f0a2",
      "sender": "luke-jr",
      "payload": "jeremyrubin: eh? users can always adjust their mempool size",
      "action": false,
      "timestamp": "2020-07-09T19:16:42+00:00"
    },
    {
      "id": "251cbc19859f4c6f8b9a5d893fb01c8b",
      "sender": "jeremyrubin",
      "payload": "I don't care about performance here that much, even a 2x slower mempool with less DoS surface is probably fine",
      "action": false,
      "timestamp": "2020-07-09T19:16:46+00:00"
    },
    {
      "id": "2499226f8eb341e9b9819bee391187a3",
      "sender": "wumpus",
      "payload": "it doesn't help if only the miners would have the vulnerability though",
      "action": false,
      "timestamp": "2020-07-09T19:16:53+00:00"
    },
    {
      "id": "175f6fbf31c34c20bab45cb4c9770449",
      "sender": "sipa",
      "payload": "mempool size _predictability_ is a DoS concern",
      "action": false,
      "timestamp": "2020-07-09T19:16:55+00:00"
    },
    {
      "id": "487d5d616bd049019c89953acfe60cd8",
      "sender": "jeremyrubin",
      "payload": "luke-jr: no for the algorithms themselves",
      "action": false,
      "timestamp": "2020-07-09T19:16:55+00:00"
    },
    {
      "id": "d0d1c532f4cd48fa92353946fbcdf743",
      "sender": "luke-jr",
      "payload": "reducing mem usage would just mean more txs per MB",
      "action": false,
      "timestamp": "2020-07-09T19:16:57+00:00"
    },
    {
      "id": "b927328bec3c4a548d1a44c7244a28db",
      "sender": "jeremyrubin",
      "payload": "not for the mempool size itself",
      "action": false,
      "timestamp": "2020-07-09T19:17:03+00:00"
    },
    {
      "id": "fc6d6c85c47e4fd38d7870a6dda377a0",
      "sender": "ariard",
      "payload": "I think there is a confusion there with memory usage of caching data structure for update and overall mempool size",
      "action": false,
      "timestamp": "2020-07-09T19:17:20+00:00"
    },
    {
      "id": "a4a37587d2f14a1ab604d45b7e3cf807",
      "sender": "sipa",
      "payload": "e.g. improving average memory usage on average, but worsening it under a particular edge case might constitute a vulnerability",
      "action": false,
      "timestamp": "2020-07-09T19:17:23+00:00"
    },
    {
      "id": "3e50a5d670084a26bc599c5c5c2ec40e",
      "sender": "jeremyrubin",
      "payload": "Mostly fixing short-lived allocations",
      "action": false,
      "timestamp": "2020-07-09T19:17:23+00:00"
    },
    {
      "id": "10fc98068557459dbc778b750beb390c",
      "sender": "nehan",
      "payload": "jeremyrubin: what is your expected memory usage improvement?",
      "action": false,
      "timestamp": "2020-07-09T19:17:31+00:00"
    },
    {
      "id": "b850cc495e4d47ecbdc01a077a9d76f2",
      "sender": "luke-jr",
      "payload": "sipa: but there's no vuln with zero mempool\u00c3\u00a2\u00c2\u0080\u00c2\u00a6",
      "action": false,
      "timestamp": "2020-07-09T19:17:50+00:00"
    },
    {
      "id": "d892f83a5e4546c7b885ba70dfd2c8e8",
      "sender": "jeremyrubin",
      "payload": "nehan: it's a project with a bunch of algorithm improvements based on epochs for traversal instead of sets",
      "action": false,
      "timestamp": "2020-07-09T19:18:32+00:00"
    },
    {
      "id": "892490648f4149b6ae2476d2b6733eff",
      "sender": "aj",
      "payload": "(5min cap exceeded fwiw)",
      "action": false,
      "timestamp": "2020-07-09T19:18:37+00:00"
    },
    {
      "id": "67dbe0803c3f4772ba4f733ade0f5a59",
      "sender": "jeremyrubin",
      "payload": "ah yeah didn't mean to turn this into an ordeal, just trying to clarify",
      "action": false,
      "timestamp": "2020-07-09T19:18:51+00:00"
    },
    {
      "id": "4a690f0e7daf4767b17bf8f953b970f3",
      "sender": "luke-jr",
      "payload": "not like we have any other topics?",
      "action": false,
      "timestamp": "2020-07-09T19:19:05+00:00"
    },
    {
      "id": "27bec9dd164d43158f17e98f48ccd381",
      "sender": "sipa",
      "payload": "perhaps just document this as a summary on the relevant PRs?",
      "action": false,
      "timestamp": "2020-07-09T19:19:10+00:00"
    },
    {
      "id": "c6cf922b1c7542fab5ae4827d1823754",
      "sender": "jeremyrubin",
      "payload": "happy to move on if there's other things to discuss",
      "action": false,
      "timestamp": "2020-07-09T19:19:16+00:00"
    },
    {
      "id": "7eaff040c9334487b9bcde3767f67c47",
      "sender": "sipa",
      "payload": "unless it already is",
      "action": false,
      "timestamp": "2020-07-09T19:19:17+00:00"
    },
    {
      "id": "59ad2cefbe164ac5853fe3c54ad4c5fe",
      "sender": "wumpus",
      "payload": "luke-jr: we do, sipa had a topic",
      "action": false,
      "timestamp": "2020-07-09T19:19:17+00:00"
    },
    {
      "id": "e89a02d562e44d7e8387476c0f330f09",
      "sender": "luke-jr",
      "payload": "oh",
      "action": false,
      "timestamp": "2020-07-09T19:19:21+00:00"
    },
    {
      "id": "95edac9d49ae4f96a97bf74a31d1b39e",
      "sender": "sipa",
      "payload": "nothing important",
      "action": false,
      "timestamp": "2020-07-09T19:19:30+00:00"
    },
    {
      "id": "b137c0867f494c2cbc645f313efb3c92",
      "sender": "luke-jr",
      "payload": "right",
      "action": false,
      "timestamp": "2020-07-09T19:19:30+00:00"
    },
    {
      "id": "ea95ddb572794c999402d0a040951052",
      "sender": "wumpus",
      "payload": "#topic can we drop gcc 4.8 (sipa)",
      "action": false,
      "timestamp": "2020-07-09T19:19:48+00:00"
    },
    {
      "id": "ebd3acc89a824d89960d171e54fc2546",
      "sender": "MarcoFalke",
      "payload": "why?",
      "action": false,
      "timestamp": "2020-07-09T19:19:51+00:00"
    },
    {
      "id": "da7e70dcd351461aaf27ff6fc599d1e5",
      "sender": "wumpus",
      "payload": "just something to annoy fanquake",
      "action": false,
      "timestamp": "2020-07-09T19:19:54+00:00"
    },
    {
      "id": "bdd9134e365f4a529229787c16521279",
      "sender": "wumpus",
      "payload": ":)",
      "action": false,
      "timestamp": "2020-07-09T19:19:58+00:00"
    },
    {
      "id": "5e257450e5cb44e1aaa90ca8a1f20760",
      "sender": "luke-jr",
      "payload": "lol",
      "action": false,
      "timestamp": "2020-07-09T19:19:59+00:00"
    },
    {
      "id": "a4752ff1997e4ace89b17d3427de180f",
      "sender": "cfields",
      "payload": "lol",
      "action": false,
      "timestamp": "2020-07-09T19:19:59+00:00"
    },
    {
      "id": "e7ccaa7b3fc9453b94210db3b6179f98",
      "sender": "sipa",
      "payload": "so, i was looking at #18086 again",
      "action": false,
      "timestamp": "2020-07-09T19:20:02+00:00"
    },
    {
      "id": "e70fadc8f1d2417a9ccde6037d9b04df",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18086 | Accurately account for mempool index memory by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #18086 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:20:05+00:00"
    },
    {
      "id": "d5e1f3c36ccc4b14a6998f886e777176",
      "sender": "sipa",
      "payload": "and was trying to make the accounting allocator not track copies of containers, which is a feature of the C++11 allocator infrastructure",
      "action": false,
      "timestamp": "2020-07-09T19:20:32+00:00"
    },
    {
      "id": "eb1cbd35e9c54e07a34dfea881801bab",
      "sender": "wumpus",
      "payload": "I *really* think we should wait with bumping gcc versions until c++17 requirement",
      "action": false,
      "timestamp": "2020-07-09T19:20:39+00:00"
    },
    {
      "id": "ba5f529db1f142669f3b3499216a456f",
      "sender": "sipa",
      "payload": "but it seems gcc 4.8 ignores it or otherwise fails to implement it correctly",
      "action": false,
      "timestamp": "2020-07-09T19:20:45+00:00"
    },
    {
      "id": "404e39ff2ab74149a3b388c8cec94239",
      "sender": "wumpus",
      "payload": "which isn't too far away, just one major version",
      "action": false,
      "timestamp": "2020-07-09T19:20:46+00:00"
    },
    {
      "id": "a8d1254aff8a4f299ea58d89cd211ae1",
      "sender": "sipa",
      "payload": "yeah",
      "action": false,
      "timestamp": "2020-07-09T19:20:52+00:00"
    },
    {
      "id": "4a82ca49074840e98c8c3a3e0e4bc590",
      "sender": "luke-jr",
      "payload": "sipa: not the end of the world if it's wrong?",
      "action": false,
      "timestamp": "2020-07-09T19:21:17+00:00"
    },
    {
      "id": "65ae4ddde26a4c1e90a8951bd5446cc8",
      "sender": "sipa",
      "payload": "but i've just noticed at appveyor also fails at it :s",
      "action": false,
      "timestamp": "2020-07-09T19:21:18+00:00"
    },
    {
      "id": "73fdfdbf1d504195bd1a61b9d38047db",
      "sender": "sipa",
      "payload": "luke-jr: could cause UB",
      "action": false,
      "timestamp": "2020-07-09T19:21:25+00:00"
    },
    {
      "id": "94946a422efb49be8e433790c8188646",
      "sender": "luke-jr",
      "payload": "hmm",
      "action": false,
      "timestamp": "2020-07-09T19:21:32+00:00"
    },
    {
      "id": "8f63ac8e54994591bfa3aef26eb661f3",
      "sender": "sipa",
      "payload": "if used in totally reasonable ways",
      "action": false,
      "timestamp": "2020-07-09T19:21:33+00:00"
    },
    {
      "id": "3cf2b4fce7ca45c58817cf7a0fea8dd5",
      "sender": "sipa",
      "payload": "(but probably not in my actual PR)",
      "action": false,
      "timestamp": "2020-07-09T19:21:40+00:00"
    },
    {
      "id": "04e90a39fa7147eb913a229677dc6424",
      "sender": "wumpus",
      "payload": "not that I'm opposed to bumping it sooner if it's eally required for something, but it seems a waste of time to discuss minor version bumps if a big one is around the cornr :)",
      "action": false,
      "timestamp": "2020-07-09T19:21:46+00:00"
    },
    {
      "id": "99ff16d4d3cf40dc9908ed7454b8bc66",
      "sender": "luke-jr",
      "payload": "when C++20? :p",
      "action": false,
      "timestamp": "2020-07-09T19:21:59+00:00"
    },
    {
      "id": "da5f7d9019524173ac739d0a9679e47d",
      "sender": "wumpus",
      "payload": "in 2025",
      "action": false,
      "timestamp": "2020-07-09T19:22:07+00:00"
    },
    {
      "id": "681f2cda53014bb7b0f16e2f6b8edea8",
      "sender": "luke-jr",
      "payload": "found C++20 to be required for totally obvious/expected features the other day :/",
      "action": true,
      "timestamp": "2020-07-09T19:22:11+00:00"
    },
    {
      "id": "9d3c2e18ef17451d88363bfcd29cd6a8",
      "sender": "sipa",
      "payload": "luke-jr: hard to talk about things that don't exist",
      "action": false,
      "timestamp": "2020-07-09T19:22:14+00:00"
    },
    {
      "id": "c4c4d718e34f4d418006fe1f719fc71a",
      "sender": "cfields",
      "payload": "luke-jr: get sipa to backport for you like Span :p",
      "action": false,
      "timestamp": "2020-07-09T19:22:42+00:00"
    },
    {
      "id": "97e3fb6491ee46b18616adc6e4d9fc5d",
      "sender": "luke-jr",
      "payload": "cfields: can't backport syntax",
      "action": false,
      "timestamp": "2020-07-09T19:22:50+00:00"
    },
    {
      "id": "9281885d6f9f41209d9e7a970d2c7201",
      "sender": "MarcoFalke",
      "payload": "Only 3.6 months till branch off: https://github.com/bitcoin/bitcoin/issues/18947",
      "action": false,
      "timestamp": "2020-07-09T19:22:59+00:00"
    },
    {
      "id": "c14803ad04814a569b3153276e738b39",
      "sender": "luke-jr",
      "payload": "struct type var = { .a = 1, .b = 2 }",
      "action": false,
      "timestamp": "2020-07-09T19:23:07+00:00"
    },
    {
      "id": "b1b814e45767466481916d1a108265a5",
      "sender": "jnewbery",
      "payload": "sipa: can you #ifdef support for accounting allocators for only certain versions of gcc until we move to c++ 17?",
      "action": false,
      "timestamp": "2020-07-09T19:23:16+00:00"
    },
    {
      "id": "cb8ffe2bd50f48f6a4746d74dcaa4b52",
      "sender": "wumpus",
      "payload": "jnewbery: +1!",
      "action": false,
      "timestamp": "2020-07-09T19:23:30+00:00"
    },
    {
      "id": "9009046570314e7f9f5aedb14cc8710b",
      "sender": "sipa",
      "payload": "jnewbery: ugh",
      "action": false,
      "timestamp": "2020-07-09T19:23:34+00:00"
    },
    {
      "id": "2988afac16b84af5b8d9c785c5a5459b",
      "sender": "aj",
      "payload": "luke-jr: omg, don't tease things like that",
      "action": false,
      "timestamp": "2020-07-09T19:23:34+00:00"
    },
    {
      "id": "38c723a9c7584593a15063c7e0008cba",
      "sender": "sipa",
      "payload": "that's horrendous",
      "action": false,
      "timestamp": "2020-07-09T19:23:37+00:00"
    },
    {
      "id": "08db5b4f0b2043dc83f1b5c9e4687980",
      "sender": "luke-jr",
      "payload": "aj: it's common C99, no clue why C++ forbids it :/",
      "action": false,
      "timestamp": "2020-07-09T19:23:51+00:00"
    },
    {
      "id": "c13796f298df4735a35baf036659d365",
      "sender": "cfields",
      "payload": "luke-jr: juse use unnamed initializers ?",
      "action": false,
      "timestamp": "2020-07-09T19:24:09+00:00"
    },
    {
      "id": "cc0f1c0b897d4127a518e454ccbae346",
      "sender": "luke-jr",
      "payload": "cfields: but the whole point is the names!",
      "action": false,
      "timestamp": "2020-07-09T19:24:17+00:00"
    },
    {
      "id": "4b76fb1be2084cbe9057abd627873d30",
      "sender": "wumpus",
      "payload": "I mean, accurate memory accounting is nice but not critical I suppose, not enough reason to really forbid building on a platform",
      "action": false,
      "timestamp": "2020-07-09T19:24:18+00:00"
    },
    {
      "id": "1a9804fbbcb842959830c93eeaff5284",
      "sender": "luke-jr",
      "payload": "cfields: I ended up putting defaults for every member, and just setting the ones I care about after init",
      "action": false,
      "timestamp": "2020-07-09T19:24:59+00:00"
    },
    {
      "id": "2c871d4df9a04d36a944de593b9df35d",
      "sender": "sipa",
      "payload": "wumpus: it would mean ifdefs all over to maintain to old heuristics for every data structure, plus a accounting based one",
      "action": false,
      "timestamp": "2020-07-09T19:25:19+00:00"
    },
    {
      "id": "7c74725ff3fb4d6bb61b363055222db3",
      "sender": "luke-jr",
      "payload": "https://github.com/bitcoin/bitcoin/pull/19463/files#diff-b2bb174788c7409b671c46ccc86034bdR291",
      "action": false,
      "timestamp": "2020-07-09T19:25:29+00:00"
    },
    {
      "id": "1027fb2514b5488788ae96afd67cc514",
      "sender": "sipa",
      "payload": "so i guess i'd just wait instead",
      "action": false,
      "timestamp": "2020-07-09T19:25:33+00:00"
    },
    {
      "id": "cdba7c4eb28747e9970ed2716d241dac",
      "sender": "wumpus",
      "payload": "anyhow according to #16684 the minimum gcc version will go to 8.3",
      "action": false,
      "timestamp": "2020-07-09T19:25:35+00:00"
    },
    {
      "id": "ba77a433a5bf40b2ac181a2fbe2b954a",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/16684 | Discussion: upgrading to C++17 \u00c3\u0082\u00c2\u00b7 Issue #16684 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:25:38+00:00"
    },
    {
      "id": "0d216269a82940f3b29c736ee9f779ba",
      "sender": "sipa",
      "payload": "or try to minimize the risk of copying",
      "action": false,
      "timestamp": "2020-07-09T19:25:47+00:00"
    },
    {
      "id": "bcf3ffbce1d34e0e9f04c6e9b32f0376",
      "sender": "cfields",
      "payload": "sipa: can you point to exactly what old gcc gets wrong? I'm just curious to see.",
      "action": false,
      "timestamp": "2020-07-09T19:25:59+00:00"
    },
    {
      "id": "0de6922be3fa4c9a8280cfe139b0e455",
      "sender": "jnewbery",
      "payload": "sipa: ah ok. If it's super invasive to do, then not worth it",
      "action": false,
      "timestamp": "2020-07-09T19:26:07+00:00"
    },
    {
      "id": "196a7ca7640343cfafac1dddbb525663",
      "sender": "sipa",
      "payload": "cfields: have a container with an accounting allocator, encapsulated in some class",
      "action": false,
      "timestamp": "2020-07-09T19:26:28+00:00"
    },
    {
      "id": "593c8bb3e28a4a3daa9079a0dd48f30b",
      "sender": "sipa",
      "payload": "return a copy of it for public consumption",
      "action": false,
      "timestamp": "2020-07-09T19:26:36+00:00"
    },
    {
      "id": "1b3b7998e49d4a8088d3a444bbb988f3",
      "sender": "wumpus",
      "payload": "is changing this really urgent or can it wait until after 0.21?",
      "action": false,
      "timestamp": "2020-07-09T19:26:37+00:00"
    },
    {
      "id": "d4ca1bc9bc704d3da76749231f75e61c",
      "sender": "sipa",
      "payload": "now any changes to that copy need to lock the origin datastructure's accounting variable",
      "action": false,
      "timestamp": "2020-07-09T19:26:56+00:00"
    },
    {
      "id": "0b511bc6ca1545cb9129b67512954997",
      "sender": "luke-jr",
      "payload": "8.3 sounds pretty recent; is it already a sure thing major distros will have it in their stable releases?",
      "action": false,
      "timestamp": "2020-07-09T19:27:11+00:00"
    },
    {
      "id": "9c449479b9e84529bde51867e828c1e5",
      "sender": "sipa",
      "payload": "because they're shared",
      "action": false,
      "timestamp": "2020-07-09T19:27:11+00:00"
    },
    {
      "id": "f8eb5601c545428ebb4730941a8c154c",
      "sender": "MarcoFalke",
      "payload": "gcc 7 is enough: https://github.com/bitcoin/bitcoin/pull/19183/files#diff-0c8311709d11060c5156268e58f5f209R14",
      "action": false,
      "timestamp": "2020-07-09T19:27:22+00:00"
    },
    {
      "id": "d3847ded575444d8962516d2a12a61a7",
      "sender": "wumpus",
      "payload": "MarcoFalke: okay maybe I'm misreading the issue then",
      "action": false,
      "timestamp": "2020-07-09T19:27:57+00:00"
    },
    {
      "id": "1163c9490d414f1882f30b26ea6da316",
      "sender": "aj",
      "payload": "8.3 is in debian stable as the default gcc, only gcc 6 in oldstable",
      "action": false,
      "timestamp": "2020-07-09T19:27:59+00:00"
    },
    {
      "id": "9be9ff5392d24f8cb376dd4e55659665",
      "sender": "luke-jr",
      "payload": "aj: RHEL tends to be the bottleneck",
      "action": false,
      "timestamp": "2020-07-09T19:28:15+00:00"
    },
    {
      "id": "ae4b7b9c28f7424092dfc6f900401fc0",
      "sender": "wumpus",
      "payload": "in any case there is going to be a large bump",
      "action": false,
      "timestamp": "2020-07-09T19:28:18+00:00"
    },
    {
      "id": "d3055d5a78334f148f8a878159b570dc",
      "sender": "MarcoFalke",
      "payload": "sipa: Maybe rebase to see if msvc can compile it with C++17. If not, there is something else to look into first anyway. Pretty sure the 3 months will pass quickly ;)",
      "action": false,
      "timestamp": "2020-07-09T19:28:38+00:00"
    },
    {
      "id": "e613ec7aa756434aa93fc3231985694b",
      "sender": "aj",
      "payload": "luke-jr: it has software collections now so you get new gcc/clang on old rhel pretty easy",
      "action": false,
      "timestamp": "2020-07-09T19:28:39+00:00"
    },
    {
      "id": "c503cbb6592e4e4f87b5d4c2ca695386",
      "sender": "sipa",
      "payload": "RHEL8 has gcc 8.2",
      "action": false,
      "timestamp": "2020-07-09T19:28:54+00:00"
    },
    {
      "id": "1448147c5a894136a98eacbb895603a7",
      "sender": "luke-jr",
      "payload": "aj: oh!",
      "action": false,
      "timestamp": "2020-07-09T19:28:57+00:00"
    },
    {
      "id": "08c42bc500f14e149c499f4af2684898",
      "sender": "sipa",
      "payload": "RHEL7 uses gcc 4.8 by default",
      "action": false,
      "timestamp": "2020-07-09T19:29:37+00:00"
    },
    {
      "id": "5c1fd8e5c87e4158acd91053954c645d",
      "sender": "luke-jr",
      "payload": "do we care about old stables now?",
      "action": false,
      "timestamp": "2020-07-09T19:29:53+00:00"
    },
    {
      "id": "e357b0e8c5cf443ea70c308454ba41c3",
      "sender": "sipa",
      "payload": "(we've strayed a bit from the topic, but that's ok unless someone has something else)",
      "action": false,
      "timestamp": "2020-07-09T19:29:53+00:00"
    },
    {
      "id": "0f5060f5247a4043b9883ec2de35fd0e",
      "sender": "aj",
      "payload": "https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/  -- gcc 8 for rhel 6 and 7",
      "action": false,
      "timestamp": "2020-07-09T19:30:01+00:00"
    },
    {
      "id": "2740240efeaa45a3aab61b85a6009428",
      "sender": "instagibbs",
      "payload": "mempool delta notifications topic",
      "action": false,
      "timestamp": "2020-07-09T19:30:08+00:00"
    },
    {
      "id": "b74303b32ab643eeb431c38d1b8f952e",
      "sender": "wumpus",
      "payload": "can always cross-compile anyway",
      "action": false,
      "timestamp": "2020-07-09T19:30:13+00:00"
    },
    {
      "id": "7d757d35e77f48288ee9d5668500813f",
      "sender": "luke-jr",
      "payload": "wumpus: that's a bit much for most users",
      "action": false,
      "timestamp": "2020-07-09T19:30:21+00:00"
    },
    {
      "id": "c8556739e582465ea6f31826440643b1",
      "sender": "wumpus",
      "payload": "#topic mempool delta notifications (instagibbs)",
      "action": false,
      "timestamp": "2020-07-09T19:30:34+00:00"
    },
    {
      "id": "d01131bd5e8643a682a909d84b3b400c",
      "sender": "cfields",
      "payload": "sipa: I was under the impression you weren't supposed to inherit from std::allocator in c++11.",
      "action": false,
      "timestamp": "2020-07-09T19:30:56+00:00"
    },
    {
      "id": "aea6294117cf4fc593c72679e58822d2",
      "sender": "cfields",
      "payload": "ok, will look more after the meeting.",
      "action": false,
      "timestamp": "2020-07-09T19:31:04+00:00"
    },
    {
      "id": "45849dc9f5d44f32811a74a4f26ca331",
      "sender": "instagibbs",
      "payload": "Ok, so recently I wrote a one-off zmq notification for mempool evictions, which are currently not covered. Other people have more exntensive ideas: https://github.com/bitcoin/bitcoin/pull/19476",
      "action": false,
      "timestamp": "2020-07-09T19:31:10+00:00"
    },
    {
      "id": "2153aea4c6fd49c99ad6fcdf3a89f62a",
      "sender": "instagibbs",
      "payload": "shuckc, can you speak to motivation/usage?",
      "action": false,
      "timestamp": "2020-07-09T19:31:18+00:00"
    },
    {
      "id": "6426b3421953411f9e78f5ec5a2f8c8b",
      "sender": "wumpus",
      "payload": "luke-jr: maybe, it's not that much more difficult, especially nowadays with the extreme availability of VMs etc",
      "action": false,
      "timestamp": "2020-07-09T19:31:19+00:00"
    },
    {
      "id": "8cbec345bb124166991a90b499af63e1",
      "sender": "sipa",
      "payload": "cfields: ah, i can try avoiding that",
      "action": false,
      "timestamp": "2020-07-09T19:31:32+00:00"
    },
    {
      "id": "92368da5d9484f5ba076ff286bd2fd83",
      "sender": "instagibbs",
      "payload": "promag also made a WIP mempool delta RPC as another possible option https://github.com/bitcoin/bitcoin/pull/19476",
      "action": false,
      "timestamp": "2020-07-09T19:31:43+00:00"
    },
    {
      "id": "c2398b3df6584c908d480359f41d4cde",
      "sender": "cfields",
      "payload": "sipa: no idea if that's useful, need to spend a whole lot more time understanding what you're doing :)",
      "action": false,
      "timestamp": "2020-07-09T19:32:00+00:00"
    },
    {
      "id": "af99f516ba01470e9d578959c30f09f2",
      "sender": "shuckc",
      "payload": "We track a huge number of wallets, keeping mempool contents synchronised is tricky given incomplete notifications, and difficult to sychronise between api and zmq notifications",
      "action": false,
      "timestamp": "2020-07-09T19:32:53+00:00"
    },
    {
      "id": "0d690c49a88445f08fe4f66a8d125305",
      "sender": "shuckc",
      "payload": "seems like an opportunity to cover off a lot of the edge cases in one go",
      "action": false,
      "timestamp": "2020-07-09T19:33:35+00:00"
    },
    {
      "id": "7c7447a18e1a40bd91a36c087a4224e6",
      "sender": "instagibbs",
      "payload": "so ideally you could getrawmempool like once, then use zmq notifications to track delta, then maybe call getrawmempool when something drops for whatever reason, and be able to figure out \"where\" in that notification stream the snapshot is from",
      "action": false,
      "timestamp": "2020-07-09T19:33:48+00:00"
    },
    {
      "id": "ccb1806b4c4e41f9aa46db24626139ba",
      "sender": "luke-jr",
      "payload": "instagibbs: you linked the same PR twice",
      "action": false,
      "timestamp": "2020-07-09T19:33:54+00:00"
    },
    {
      "id": "1177097f933f4c90880e32a542001b6b",
      "sender": "instagibbs",
      "payload": "oh woops",
      "action": false,
      "timestamp": "2020-07-09T19:33:58+00:00"
    },
    {
      "id": "f152b6577d4349058be9c4f41c73687c",
      "sender": "instagibbs",
      "payload": "https://github.com/bitcoin/bitcoin/pull/19462#issueacomment-656140421",
      "action": false,
      "timestamp": "2020-07-09T19:34:09+00:00"
    },
    {
      "id": "f376d0465cd24ecb8a3ffa6a4c507f74",
      "sender": "luke-jr",
      "payload": "instagibbs: ZMQ is very unreliable..",
      "action": false,
      "timestamp": "2020-07-09T19:34:11+00:00"
    },
    {
      "id": "90e5c38502f7482da167b75fbcdcbb26",
      "sender": "wumpus",
      "payload": "instagibbs: that makes sense",
      "action": false,
      "timestamp": "2020-07-09T19:34:38+00:00"
    },
    {
      "id": "154d1852d3fc4a918d57be3511c16cb0",
      "sender": "wumpus",
      "payload": "no, ZMQ is not very unreliable",
      "action": false,
      "timestamp": "2020-07-09T19:34:45+00:00"
    },
    {
      "id": "2582ecdabbc5453e87d8ba8f362d6f99",
      "sender": "instagibbs",
      "payload": "sure luke-jr so alternative would likely look like promag pr i linked",
      "action": false,
      "timestamp": "2020-07-09T19:34:52+00:00"
    },
    {
      "id": "7ffd9f394e344171a50fc9e2edcd7eaa",
      "sender": "instagibbs",
      "payload": "maybe long polling",
      "action": false,
      "timestamp": "2020-07-09T19:34:56+00:00"
    },
    {
      "id": "937488785f094396be204849c7996068",
      "sender": "wumpus",
      "payload": "only in pretty extreme circumstances it sometimes drops a packet",
      "action": false,
      "timestamp": "2020-07-09T19:34:59+00:00"
    },
    {
      "id": "4288ae8aa6934b949530a2ed16c1a6a7",
      "sender": "sipa",
      "payload": "ZMQ has no reliability _guarantees_",
      "action": false,
      "timestamp": "2020-07-09T19:35:02+00:00"
    },
    {
      "id": "7d7a67c56d63405fb4dafe7081500fe5",
      "sender": "wumpus",
      "payload": "and in that case there needs to be a way to resynchronize, anyway, as instagibbs  says",
      "action": false,
      "timestamp": "2020-07-09T19:35:17+00:00"
    },
    {
      "id": "9b7bbca7b3bc42e8a56748066d237330",
      "sender": "luke-jr",
      "payload": "wumpus: I used it for low traffic on a reliable network, and it still lost stuff regularly",
      "action": false,
      "timestamp": "2020-07-09T19:35:27+00:00"
    },
    {
      "id": "f97c80ab7c3a43d89efc5ba2aca0f7b8",
      "sender": "sipa",
      "payload": "but absent overflow conditiins, it is very reliable",
      "action": false,
      "timestamp": "2020-07-09T19:35:28+00:00"
    },
    {
      "id": "b660e1b48c6941c1a28e28abc19c5298",
      "sender": "wumpus",
      "payload": "notifications have sequence numbers to be able to detect that",
      "action": false,
      "timestamp": "2020-07-09T19:35:32+00:00"
    },
    {
      "id": "b726cf11224c4c11857365486c387a9f",
      "sender": "sipa",
      "payload": "luke-jr: hmm, ok",
      "action": false,
      "timestamp": "2020-07-09T19:35:38+00:00"
    },
    {
      "id": "5684b22160b64f68a74e81a67ecac2e8",
      "sender": "instagibbs",
      "payload": "and avoiding \"lots\" of getrawmempools I guess is hte biggest goal",
      "action": false,
      "timestamp": "2020-07-09T19:35:39+00:00"
    },
    {
      "id": "f0234c5b52404ebb907a006df2ac7bda",
      "sender": "wumpus",
      "payload": "sipa: yes, in the general case it is very reliable",
      "action": false,
      "timestamp": "2020-07-09T19:35:44+00:00"
    },
    {
      "id": "24c238c18cd94d14b2d29ad145f8ecf2",
      "sender": "promag",
      "payload": "the biggest problem if you have to take the client offline for a bit",
      "action": false,
      "timestamp": "2020-07-09T19:35:47+00:00"
    },
    {
      "id": "e7a540562ff0485a9a0c7eff93c25399",
      "sender": "shuckc",
      "payload": "ZMQ generally work as well as any other pubsub system so long as you have the high watermark set sufficiently high, and you are not trying to consume slower than the publisher is producing. I don't see that as a particular obstancle",
      "action": false,
      "timestamp": "2020-07-09T19:35:54+00:00"
    },
    {
      "id": "2debfaef36514435bdc89fbecedb2ee5",
      "sender": "wumpus",
      "payload": "unless your client is not consuming the notifications reliably: there can't be an infinite buffer",
      "action": false,
      "timestamp": "2020-07-09T19:36:11+00:00"
    },
    {
      "id": "7295b2f99b0b48ca92b0f427be65ca57",
      "sender": "wumpus",
      "payload": "(unless you'd spool to disk or something like that)",
      "action": false,
      "timestamp": "2020-07-09T19:36:24+00:00"
    },
    {
      "id": "60a5a72ac42a4064850b027b90d48ff3",
      "sender": "promag",
      "payload": "shuckc: zmq pub doesn't hold msg if client is offline.",
      "action": false,
      "timestamp": "2020-07-09T19:36:47+00:00"
    },
    {
      "id": "7d6a6f462d8a45a894a6afb225029222",
      "sender": "wumpus",
      "payload": "but I don't think adding yet another notifications system with mail-like reliablity is really what we want",
      "action": false,
      "timestamp": "2020-07-09T19:36:51+00:00"
    },
    {
      "id": "f0ae6d730b474924bbaddc949b9a4486",
      "sender": "shuckc",
      "payload": "if your client goes away, you are going to have to hit getrawmempools for sure. but would like to avoid those calls in the general case as big result set (even when brief)",
      "action": false,
      "timestamp": "2020-07-09T19:37:10+00:00"
    },
    {
      "id": "3dcfdc9626ef4317aa6ce75884adaf42",
      "sender": "wumpus",
      "payload": "I mean there's mq systems like rabbitmq that guarantee 100% reliability",
      "action": false,
      "timestamp": "2020-07-09T19:37:39+00:00"
    },
    {
      "id": "ead16d6219944a0c95422c48993887fc",
      "sender": "promag",
      "payload": "the approach in #19476 avoids periodic getrawmempools",
      "action": false,
      "timestamp": "2020-07-09T19:37:51+00:00"
    },
    {
      "id": "afcc9dd1e47141ac9239396c7da4ce86",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/19476 | wip, rpc: Add mempoolchanges by promag \u00c3\u0082\u00c2\u00b7 Pull Request #19476 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-07-09T19:37:53+00:00"
    },
    {
      "id": "96cd5814b9884d3c9f1d4723f3d9f3ac",
      "sender": "jnewbery",
      "payload": "why not have ZMQ log every txid it sends a notification for along with seq number. If your client detects a drop it can consult the log and query the mempool for that txid?",
      "action": false,
      "timestamp": "2020-07-09T19:38:00+00:00"
    },
    {
      "id": "eebbc5d313674ccfaa3485cf553937e4",
      "sender": "wumpus",
      "payload": "but I mean, how many of these things do you want to integrate with",
      "action": false,
      "timestamp": "2020-07-09T19:38:04+00:00"
    },
    {
      "id": "7a0c28504e764d24b4dfc6a0d044ef9a",
      "sender": "instagibbs",
      "payload": "promag, your rpc could be maybe generalized into block hash announcements too, connect/disconnect",
      "action": false,
      "timestamp": "2020-07-09T19:38:07+00:00"
    },
    {
      "id": "d681166d49a84fc887345a1b74476bb6",
      "sender": "instagibbs",
      "payload": "jnewbery, it has as seq number",
      "action": false,
      "timestamp": "2020-07-09T19:38:24+00:00"
    },
    {
      "id": "17b407629a6344a0813f7775491bacfa",
      "sender": "instagibbs",
      "payload": "but right now it's a hodgepodge of endpoints",
      "action": false,
      "timestamp": "2020-07-09T19:38:36+00:00"
    },
    {
      "id": "f58a2d3797f9404e91f81e6f41358868",
      "sender": "wumpus",
      "payload": "yes, it has a seq number",
      "action": false,
      "timestamp": "2020-07-09T19:38:41+00:00"
    },
    {
      "id": "30726b50c41440f09a1c5313e258e39c",
      "sender": "instagibbs",
      "payload": "and missing eviction entirely",
      "action": false,
      "timestamp": "2020-07-09T19:38:43+00:00"
    },
    {
      "id": "28f41238893e4e359cabad62386f7d9e",
      "sender": "jnewbery",
      "payload": "right, we're talking about two things here. Let's assume that your eviction PR is merged",
      "action": false,
      "timestamp": "2020-07-09T19:39:07+00:00"
    },
    {
      "id": "19ab30a962764ee88313c21926204a88",
      "sender": "wumpus",
      "payload": "all the zmq endpoints have seq numbers",
      "action": false,
      "timestamp": "2020-07-09T19:39:11+00:00"
    },
    {
      "id": "29500d8df3674836a51eec4bc2a09d5e",
      "sender": "shuckc",
      "payload": "if eviction PR is merged, the remaining issues are:",
      "action": false,
      "timestamp": "2020-07-09T19:39:31+00:00"
    },
    {
      "id": "d48d297a15d242cdb7d9428c3515634b",
      "sender": "wumpus",
      "payload": "I'mnot sure these are actually useful because people keep complaining about this",
      "action": false,
      "timestamp": "2020-07-09T19:39:31+00:00"
    },
    {
      "id": "e14e6b1b7739419ba88f50fea8f4f22b",
      "sender": "promag",
      "payload": "wumpus: you don't know at what sequence corresponds a getrawmempool response",
      "action": false,
      "timestamp": "2020-07-09T19:39:53+00:00"
    },
    {
      "id": "8b32c88dacae423495a244b2a64c12ed",
      "sender": "wumpus",
      "payload": "no, indeed you don't",
      "action": false,
      "timestamp": "2020-07-09T19:40:02+00:00"
    },
    {
      "id": "8b5d11b4f342463783f9b38c71782a81",
      "sender": "shuckc",
      "payload": "I cannot know for sure if the txn hash broadcasts are adds or block removals, as they don't specify, and I can't for sure know how it lines up with the results of getrawmempool",
      "action": false,
      "timestamp": "2020-07-09T19:40:15+00:00"
    },
    {
      "id": "5acfc0ce872c476fa9c003a4a0cea87b",
      "sender": "jnewbery",
      "payload": "for reliability, ZMQ can log seq_num:txid to file every time a notification is sent. If a client detects a missing seq_num, you consult the log and query the mempool rpc for that file",
      "action": false,
      "timestamp": "2020-07-09T19:40:16+00:00"
    },
    {
      "id": "bd5d21bf35fe436882a3f3aa8f89ee26",
      "sender": "wumpus",
      "payload": "zmq logging to file? taht sounds really at odd with low-latency",
      "action": false,
      "timestamp": "2020-07-09T19:40:35+00:00"
    },
    {
      "id": "aea3b1361aee4824b3e83548bfd3919c",
      "sender": "jnewbery",
      "payload": "*for that txid",
      "action": false,
      "timestamp": "2020-07-09T19:40:35+00:00"
    },
    {
      "id": "44b416f2d5dd475e9da4f20afa15534d",
      "sender": "luke-jr",
      "payload": "wumpus: mkfifo \u00c3\u00a2\u00c2\u0098\u00c2\u00ba",
      "action": false,
      "timestamp": "2020-07-09T19:40:45+00:00"
    },
    {
      "id": "3631edbcc17c430dbb6c3e4b14ab7584",
      "sender": "wumpus",
      "payload": "luke-jr: fifo is one to one, not one to many",
      "action": false,
      "timestamp": "2020-07-09T19:40:55+00:00"
    },
    {
      "id": "134c16931ff941a48cb9d7eddd816a80",
      "sender": "luke-jr",
      "payload": "not sure why ZMQ is involved at that point lol",
      "action": false,
      "timestamp": "2020-07-09T19:40:56+00:00"
    },
    {
      "id": "4239ac50502449b686f79573a70dec43",
      "sender": "luke-jr",
      "payload": "true",
      "action": false,
      "timestamp": "2020-07-09T19:40:58+00:00"
    },
    {
      "id": "f382016d4d3b469ab980f9c3b89f3703",
      "sender": "wumpus",
      "payload": "luke-jr: if only UNIX had a one to many notification mechanism",
      "action": false,
      "timestamp": "2020-07-09T19:41:05+00:00"
    },
    {
      "id": "86fe04e0e9a34a67811629129355138d",
      "sender": "wumpus",
      "payload": "except for mail",
      "action": false,
      "timestamp": "2020-07-09T19:41:13+00:00"
    },
    {
      "id": "f2d5f52ec0e946d4a8849a54bc32cb73",
      "sender": "luke-jr",
      "payload": "dbus?",
      "action": false,
      "timestamp": "2020-07-09T19:41:14+00:00"
    },
    {
      "id": "8f56ad4c608e46e0a635ad3c443b6dfc",
      "sender": "sipa",
      "payload": "wumpus: oh you can have many writers and many readers for one fifo just fine ;)    and no guarantee which write goes to which read",
      "action": false,
      "timestamp": "2020-07-09T19:41:27+00:00"
    },
    {
      "id": "ed765496bc2a472f9a684e6cf3ea6b6e",
      "sender": "aj",
      "payload": "wumpus: wall(1) :)",
      "action": false,
      "timestamp": "2020-07-09T19:41:29+00:00"
    },
    {
      "id": "d45086cf08264d439460b2e9bce3d525",
      "sender": "luke-jr",
      "payload": "is not sure dbus actually has this",
      "action": true,
      "timestamp": "2020-07-09T19:41:32+00:00"
    },
    {
      "id": "06ab8354a53c4b479ee7f7fa2ba4a99a",
      "sender": "luke-jr",
      "payload": "aj: lol",
      "action": false,
      "timestamp": "2020-07-09T19:41:35+00:00"
    },
    {
      "id": "097a20df99e145feb1c0911e80d9a800",
      "sender": "wumpus",
      "payload": "no, dbus doesn't have it either",
      "action": false,
      "timestamp": "2020-07-09T19:41:38+00:00"
    },
    {
      "id": "6839e74f7845465c8d90d8d8c48f0df0",
      "sender": "wumpus",
      "payload": "dbus is one to one, it has no realible multi consumer broadcase",
      "action": false,
      "timestamp": "2020-07-09T19:41:48+00:00"
    },
    {
      "id": "dd42aa4064d045f5b36a6e012069fe1a",
      "sender": "luke-jr",
      "payload": "I suppose you could just use a tmpfs file",
      "action": false,
      "timestamp": "2020-07-09T19:42:13+00:00"
    },
    {
      "id": "4894beac82e84575b948935efca2e038",
      "sender": "wumpus",
      "payload": "it's a difficult issue in general",
      "action": false,
      "timestamp": "2020-07-09T19:42:13+00:00"
    },
    {
      "id": "9b8fbda5eec5443e96e3a723d32366ba",
      "sender": "wumpus",
      "payload": "because some consumer might always be lagging",
      "action": false,
      "timestamp": "2020-07-09T19:42:20+00:00"
    },
    {
      "id": "256cfacbd0e24427b8426908cb1aa557",
      "sender": "luke-jr",
      "payload": "and punch holes at the start as desired",
      "action": false,
      "timestamp": "2020-07-09T19:42:21+00:00"
    },
    {
      "id": "6dc8ab8b7cbc4985bc15258cec760262",
      "sender": "wumpus",
      "payload": "this can potentially result in infinitely much storage needed",
      "action": false,
      "timestamp": "2020-07-09T19:42:29+00:00"
    },
    {
      "id": "41125ec89f47418583ffe64de93d1fd1",
      "sender": "luke-jr",
      "payload": "or store to disk and let Linux's buffers handle it",
      "action": false,
      "timestamp": "2020-07-09T19:42:36+00:00"
    },
    {
      "id": "a47fbd886c9947f9a2112da0ed4bc949",
      "sender": "wumpus",
      "payload": "rabbitmq is pretty good if you really need this",
      "action": false,
      "timestamp": "2020-07-09T19:42:47+00:00"
    },
    {
      "id": "81d5b7cab0ef482091ea996db1766418",
      "sender": "instagibbs",
      "payload": "Well aside from fixing infinite buffer problems, I think it'd be good to improve where we can. When there's a failure there's always the fallback of getrawmempool for example",
      "action": false,
      "timestamp": "2020-07-09T19:45:10+00:00"
    },
    {
      "id": "d1400dcf993b4cb09a0b6e93d6361d6d",
      "sender": "jnewbery",
      "payload": "wumpus: zmq already logs (if -logging=zmq is enabled). It just doesn't log the seq num, so it's not easy for a client to tell which messages were dropped",
      "action": false,
      "timestamp": "2020-07-09T19:45:11+00:00"
    },
    {
      "id": "b06aebf2fac44a7b867462fe171eed06",
      "sender": "instagibbs",
      "payload": "I was joking that you could also do minisketch for set reconciliation of mempool views",
      "action": false,
      "timestamp": "2020-07-09T19:45:32+00:00"
    },
    {
      "id": "58ec08b69c3c423e9a42afbafa88b1fc",
      "sender": "sipa",
      "payload": "haha",
      "action": false,
      "timestamp": "2020-07-09T19:45:47+00:00"
    },
    {
      "id": "95f66e2761e04d8888129785b01128cb",
      "sender": "luke-jr",
      "payload": "jnewbery: I'm not sure we want to encourage software to parse debug.log \u00c3\u00a2\u00c2\u0080\u00c2\u00a6",
      "action": false,
      "timestamp": "2020-07-09T19:45:54+00:00"
    },
    {
      "id": "3058a8f216d145f194173df8618e283a",
      "sender": "instagibbs",
      "payload": "zmq to keep difference small ;)",
      "action": false,
      "timestamp": "2020-07-09T19:45:58+00:00"
    },
    {
      "id": "479acab5293747f7b2b2fa64ffbe83a5",
      "sender": "wumpus",
      "payload": "jnewbery: I don't think clients can ever know what message is dropped; usually, missing a sequnence number means having to resyncronize in some way (e.g.e query the entire mempool)",
      "action": false,
      "timestamp": "2020-07-09T19:46:00+00:00"
    },
    {
      "id": "87048e84b9ba43cab4cc23c853bfe404",
      "sender": "wumpus",
      "payload": "luke-jr: exactly",
      "action": false,
      "timestamp": "2020-07-09T19:46:11+00:00"
    },
    {
      "id": "2f5c1ab6c11348bda8224c2b86d92f6f",
      "sender": "wumpus",
      "payload": "I don't think 'parse the log' is a good option, though it serves one-to-many notification perfectly",
      "action": false,
      "timestamp": "2020-07-09T19:46:30+00:00"
    },
    {
      "id": "4a039256352747d1b5592a467f6b1764",
      "sender": "wumpus",
      "payload": "mq is essentially a log",
      "action": false,
      "timestamp": "2020-07-09T19:46:37+00:00"
    },
    {
      "id": "99b5338cde6947308d8687eb0aac2f2f",
      "sender": "wumpus",
      "payload": "until your disk is full",
      "action": false,
      "timestamp": "2020-07-09T19:46:43+00:00"
    },
    {
      "id": "f4c9451fd21a4cf9ad660d9c34d123dc",
      "sender": "luke-jr",
      "payload": "a dedicated, well-defined-format log might be okay",
      "action": false,
      "timestamp": "2020-07-09T19:46:45+00:00"
    },
    {
      "id": "2ccead29444c45959c88fa0cccbe8fc4",
      "sender": "wumpus",
      "payload": "it's also a high latency option but that might not matter",
      "action": false,
      "timestamp": "2020-07-09T19:47:07+00:00"
    },
    {
      "id": "40063e0322c5486188287a17c2fe6e4f",
      "sender": "luke-jr",
      "payload": "but something needs to do hole-punching to clean it up before disk fills",
      "action": false,
      "timestamp": "2020-07-09T19:47:07+00:00"
    },
    {
      "id": "ae7101b03c1d4249a9ea9c79a48e39e1",
      "sender": "luke-jr",
      "payload": "wumpus: why is it high latency?",
      "action": false,
      "timestamp": "2020-07-09T19:47:15+00:00"
    },
    {
      "id": "d39095a5a01147ec9a2615ae53979b58",
      "sender": "wumpus",
      "payload": "yes, but if you do tha, some clients might miss messages",
      "action": false,
      "timestamp": "2020-07-09T19:47:23+00:00"
    },
    {
      "id": "e034c1b00b49400d9c3d5c09de06e8bf",
      "sender": "sipa",
      "payload": "luke-jr: bitcoind will already shut down when disk is full",
      "action": false,
      "timestamp": "2020-07-09T19:47:32+00:00"
    },
    {
      "id": "ab696067406742afbd4220050c0512ba",
      "sender": "sipa",
      "payload": ":)",
      "action": false,
      "timestamp": "2020-07-09T19:47:33+00:00"
    },
    {
      "id": "f2c45a300a2649669520353986b2397f",
      "sender": "luke-jr",
      "payload": "depends on who does it",
      "action": false,
      "timestamp": "2020-07-09T19:47:35+00:00"
    },
    {
      "id": "86cab45cf4e5425aa3ba1999a3283d4f",
      "sender": "wumpus",
      "payload": "unless they tell you they read up until that far",
      "action": false,
      "timestamp": "2020-07-09T19:47:35+00:00"
    },
    {
      "id": "b34899050af54b218d2f8dcba14349a6",
      "sender": "luke-jr",
      "payload": "sipa: yes, but you don't want that",
      "action": false,
      "timestamp": "2020-07-09T19:47:43+00:00"
    },
    {
      "id": "5a22541cc6524a25bf53e0b6967a36f3",
      "sender": "wumpus",
      "payload": "luke-jr: because disk/block devices are slow, compared to networking, latency wise",
      "action": false,
      "timestamp": "2020-07-09T19:47:55+00:00"
    },
    {
      "id": "74b2a3bec35449da8f763037cf46d1ff",
      "sender": "luke-jr",
      "payload": "wumpus: Linux at least has buffers",
      "action": false,
      "timestamp": "2020-07-09T19:48:02+00:00"
    },
    {
      "id": "439b293336974f4ea7c6bf090fa9180b",
      "sender": "wumpus",
      "payload": "even with that",
      "action": false,
      "timestamp": "2020-07-09T19:48:08+00:00"
    },
    {
      "id": "bdffdab4a3e4409694b56dc9a240e1e9",
      "sender": "luke-jr",
      "payload": ":/",
      "action": false,
      "timestamp": "2020-07-09T19:48:11+00:00"
    },
    {
      "id": "c73c95351efd4cacb835d63a089dd048",
      "sender": "luke-jr",
      "payload": "the write/read won't even need to hit disk",
      "action": false,
      "timestamp": "2020-07-09T19:48:20+00:00"
    },
    {
      "id": "0bf6c2b7a1b34687ae6caf0fe6a50500",
      "sender": "luke-jr",
      "payload": "wonders if you can tell Linux to never flush to disk unless it has to",
      "action": true,
      "timestamp": "2020-07-09T19:48:32+00:00"
    },
    {
      "id": "86c412f5bd384f04863a9ca30facfd98",
      "sender": "luke-jr",
      "payload": "per-device*",
      "action": false,
      "timestamp": "2020-07-09T19:48:37+00:00"
    },
    {
      "id": "3ee3a17e19d44cb496a01a570694d6bd",
      "sender": "luke-jr",
      "payload": "per-file would also be nice :P",
      "action": false,
      "timestamp": "2020-07-09T19:48:45+00:00"
    },
    {
      "id": "dbe0fc442b7d423194cbb8f3de06ed82",
      "sender": "wumpus",
      "payload": "yes, there's an option for that afaik, but it also means in case of power loss...",
      "action": false,
      "timestamp": "2020-07-09T19:49:04+00:00"
    },
    {
      "id": "4c81952166a64815992962c6450156f4",
      "sender": "jnewbery",
      "payload": "shuckc: it sounded like you were going to mention more issues. Was there anything else?",
      "action": false,
      "timestamp": "2020-07-09T19:49:47+00:00"
    },
    {
      "id": "df1d9dbfb8604f999f69fdec0d84b2d4",
      "sender": "wumpus",
      "payload": "reliable delivery of messages to multiple consumers is a difficult topic",
      "action": false,
      "timestamp": "2020-07-09T19:49:50+00:00"
    },
    {
      "id": "71ce510cffdf434ba343ea2d0ad2ef6d",
      "sender": "sipa",
      "payload": "we need a blockchain",
      "action": false,
      "timestamp": "2020-07-09T19:50:08+00:00"
    },
    {
      "id": "160c3b81af894ad2a999d2849f000121",
      "sender": "wumpus",
      "payload": "sipa: :-)",
      "action": false,
      "timestamp": "2020-07-09T19:50:13+00:00"
    },
    {
      "id": "b7f86d912e684d62b317b3cb481edeb1",
      "sender": "instagibbs",
      "payload": "so i think the biggest oustanding issue(if evictions are announced and we're ok with drops once i na while) is being able to line up getrawmempool results with the notifications",
      "action": false,
      "timestamp": "2020-07-09T19:50:31+00:00"
    },
    {
      "id": "7fa96710eac64e539eccf58580cdc90e",
      "sender": "wumpus",
      "payload": "yes, at least the blockchain always allows going back i time... well unless pruning",
      "action": false,
      "timestamp": "2020-07-09T19:50:32+00:00"
    },
    {
      "id": "e32121431a1a41ebb1076c608c3de87a",
      "sender": "wumpus",
      "payload": "pruning is kind of the 'what if not all consumers have seen this yet' problem",
      "action": false,
      "timestamp": "2020-07-09T19:50:44+00:00"
    },
    {
      "id": "88647429713643b181728face613e5df",
      "sender": "shuckc",
      "payload": "the sequence number on the response to getrawmempool",
      "action": false,
      "timestamp": "2020-07-09T19:50:45+00:00"
    },
    {
      "id": "b4bc7e36be5142d9b955c43c78b6cb70",
      "sender": "shuckc",
      "payload": "obviously has backward compatibility concerns, and other suggestions?",
      "action": false,
      "timestamp": "2020-07-09T19:51:09+00:00"
    },
    {
      "id": "cdb499087bc2494d9217afbca1d4327e",
      "sender": "sipa",
      "payload": "shuckc: hmm?",
      "action": false,
      "timestamp": "2020-07-09T19:51:20+00:00"
    },
    {
      "id": "6da0484d741f499ab4182565f8d2cf39",
      "sender": "luke-jr",
      "payload": "wumpus: there is an option for that? what? :o",
      "action": false,
      "timestamp": "2020-07-09T19:51:29+00:00"
    },
    {
      "id": "5c941de59ea04eaf94c6fe0b4aa7fdb0",
      "sender": "instagibbs",
      "payload": "sipa, he wants to know where the mempool \"snapshot\" came from",
      "action": false,
      "timestamp": "2020-07-09T19:51:32+00:00"
    },
    {
      "id": "2a742852c0d645dfa0a70eadcdc93d56",
      "sender": "sipa",
      "payload": "does getrawmempool report a sequence number now?",
      "action": false,
      "timestamp": "2020-07-09T19:51:37+00:00"
    },
    {
      "id": "ee57bf2b47a24cd2bdcde698a8456c64",
      "sender": "instagibbs",
      "payload": "no",
      "action": false,
      "timestamp": "2020-07-09T19:51:41+00:00"
    },
    {
      "id": "2c676000ec104b2b97a2418aa1c878f0",
      "sender": "wumpus",
      "payload": "it doesn't",
      "action": false,
      "timestamp": "2020-07-09T19:51:45+00:00"
    },
    {
      "id": "3082cb3cf66b4cab8bd8e44eaa63ee1a",
      "sender": "shuckc",
      "payload": "no, I'm suggeting it should",
      "action": false,
      "timestamp": "2020-07-09T19:51:49+00:00"
    },
    {
      "id": "8dcf2abd38614fd1b08f7be6dd242c18",
      "sender": "sipa",
      "payload": "and adding one would help?",
      "action": false,
      "timestamp": "2020-07-09T19:51:49+00:00"
    },
    {
      "id": "ffcfc457076143f9a5e557d7a1f5a4cb",
      "sender": "shuckc",
      "payload": "yes",
      "action": false,
      "timestamp": "2020-07-09T19:51:52+00:00"
    },
    {
      "id": "ae1024d0f1ea49148cbec4105338998f",
      "sender": "sipa",
      "payload": "oh, ok",
      "action": false,
      "timestamp": "2020-07-09T19:51:54+00:00"
    },
    {
      "id": "836a324957574d5cb5ac539223b43257",
      "sender": "instagibbs",
      "payload": "so you don't know if the getrawmempool result is stale or from \"future\" wrt zmq reports",
      "action": false,
      "timestamp": "2020-07-09T19:52:03+00:00"
    },
    {
      "id": "a9bce352f523426cb0381c96170b62f2",
      "sender": "sipa",
      "payload": "what would be the reason not to?",
      "action": false,
      "timestamp": "2020-07-09T19:52:05+00:00"
    },
    {
      "id": "5578bd85b2284e22b75513dec266129e",
      "sender": "shuckc",
      "payload": "because you can't tell which delta(s) have already been added",
      "action": false,
      "timestamp": "2020-07-09T19:52:05+00:00"
    },
    {
      "id": "9524e61bf872414c8a59c8e42fa5c3cf",
      "sender": "wumpus",
      "payload": "I guess it could prove that there were no updates in between",
      "action": false,
      "timestamp": "2020-07-09T19:52:09+00:00"
    },
    {
      "id": "315cc38cd5b14024823d574d8eda0726",
      "sender": "sipa",
      "payload": "adding new fields has no backward compatibility concerns",
      "action": false,
      "timestamp": "2020-07-09T19:52:12+00:00"
    },
    {
      "id": "d76476b23ee3462dafa3415a897615f7",
      "sender": "instagibbs",
      "payload": "sipa, I think you'd have to add *all* the zmq notification seq numbers",
      "action": false,
      "timestamp": "2020-07-09T19:52:19+00:00"
    },
    {
      "id": "4e8a3c79aafc408990db1dbb501ea2d0",
      "sender": "sipa",
      "payload": "ah",
      "action": false,
      "timestamp": "2020-07-09T19:52:24+00:00"
    },
    {
      "id": "e152306ae34743d7a14a9cbaede62446",
      "sender": "instagibbs",
      "payload": "well it's an array result ;",
      "action": false,
      "timestamp": "2020-07-09T19:52:26+00:00"
    },
    {
      "id": "be286acb59fe4999b2ee16656b8c889b",
      "sender": "instagibbs",
      "payload": ";)",
      "action": false,
      "timestamp": "2020-07-09T19:52:28+00:00"
    },
    {
      "id": "201df67fa3734318b5dc5d46fe508315",
      "sender": "promag",
      "payload": "can bnly be added if verbose=true in getrawmempool",
      "action": false,
      "timestamp": "2020-07-09T19:52:34+00:00"
    },
    {
      "id": "e920378c187f40d5a3ea30db2acc6d17",
      "sender": "instagibbs",
      "payload": "but like I said I think optional arg -> json object",
      "action": false,
      "timestamp": "2020-07-09T19:52:39+00:00"
    },
    {
      "id": "08e4ed3236d643959147f9d3c749ff25",
      "sender": "wumpus",
      "payload": "I wonder why every zmq message has its own sequence number",
      "action": false,
      "timestamp": "2020-07-09T19:52:45+00:00"
    },
    {
      "id": "96e35d26652d4f5fac70edf8bb58811d",
      "sender": "wumpus",
      "payload": "couldn't it be just one increasing atomic?",
      "action": false,
      "timestamp": "2020-07-09T19:52:54+00:00"
    },
    {
      "id": "4f6778ac04724082ad3acacbf0801a18",
      "sender": "shuckc",
      "payload": "unless you have one single notifier that you use for all the messages you need to sync with",
      "action": false,
      "timestamp": "2020-07-09T19:52:55+00:00"
    },
    {
      "id": "216573b86ef6423eb98d5b9158dc5074",
      "sender": "instagibbs",
      "payload": "wumpus, it's a local member of hte notification, for whatever reason",
      "action": false,
      "timestamp": "2020-07-09T19:52:56+00:00"
    },
    {
      "id": "5d4b6dae5f8547fe9fc43f8a837d1705",
      "sender": "promag",
      "payload": "wumpus: a client knows if he missed anything",
      "action": false,
      "timestamp": "2020-07-09T19:53:09+00:00"
    },
    {
      "id": "9e8e70fbdce04d4d9b0fa57f1ff97c85",
      "sender": "wumpus",
      "payload": "promag: oh, true",
      "action": false,
      "timestamp": "2020-07-09T19:53:18+00:00"
    },
    {
      "id": "5c7b27429fe14730957d9ea9a06d82ff",
      "sender": "shuckc",
      "payload": "it's only a mess if need to track lots of notifiers",
      "action": false,
      "timestamp": "2020-07-09T19:53:18+00:00"
    },
    {
      "id": "34f21cb765f04a2e93ec1d4781c368b5",
      "sender": "wumpus",
      "payload": "yes, makes sense, a client is generally interested in only a subset of message kinds",
      "action": false,
      "timestamp": "2020-07-09T19:53:32+00:00"
    },
    {
      "id": "54fd4de46a4246e181d53529aaf5e33c",
      "sender": "instagibbs",
      "payload": "shuckc, shouldn't be too bad, you just grab the one you care about",
      "action": false,
      "timestamp": "2020-07-09T19:53:35+00:00"
    },
    {
      "id": "fe37b0f6be9145d6a9cbb1afdd18f530",
      "sender": "wumpus",
      "payload": "so a global sequence number would be useless",
      "action": false,
      "timestamp": "2020-07-09T19:53:45+00:00"
    },
    {
      "id": "c50e698ae3be4e7aa5ab73f00eed5135",
      "sender": "promag",
      "payload": "wumpus: not really, that number should be exposed in both rpc response and zmq message",
      "action": false,
      "timestamp": "2020-07-09T19:54:11+00:00"
    },
    {
      "id": "c8c778a1b01c4ba4aae4f403a99cea5c",
      "sender": "wumpus",
      "payload": "in any case getmempool would only need the mempool related numbers...",
      "action": false,
      "timestamp": "2020-07-09T19:54:18+00:00"
    },
    {
      "id": "ade28ebb52ae4507bc5817b105e948a5",
      "sender": "promag",
      "payload": "but I'm not fond of that..",
      "action": false,
      "timestamp": "2020-07-09T19:54:26+00:00"
    },
    {
      "id": "94dfeed814294af4b9b2a7bf92df9b68",
      "sender": "wumpus",
      "payload": "it seems like some kind of layer violation",
      "action": false,
      "timestamp": "2020-07-09T19:54:42+00:00"
    },
    {
      "id": "150c9d9a6a1c4acf822b4debca30fd7b",
      "sender": "wumpus",
      "payload": "having RPC query ZMQ",
      "action": false,
      "timestamp": "2020-07-09T19:54:46+00:00"
    },
    {
      "id": "e2533e668e31406aa06fede501604b26",
      "sender": "promag",
      "payload": "because as a client, you need to use rpc AND zmq",
      "action": false,
      "timestamp": "2020-07-09T19:54:54+00:00"
    },
    {
      "id": "e4e1a3f6fb16427e8c1b71ab79e75dab",
      "sender": "wumpus",
      "payload": "yes",
      "action": false,
      "timestamp": "2020-07-09T19:54:59+00:00"
    },
    {
      "id": "3ba16c53b9914d4a835aec064b0c6f15",
      "sender": "instagibbs",
      "payload": "otherwise you need to somehow ask for unique snapshot",
      "action": false,
      "timestamp": "2020-07-09T19:55:02+00:00"
    },
    {
      "id": "e25d09db37a241f9b376e66eba377ab6",
      "sender": "promag",
      "payload": "hence my draft PR",
      "action": false,
      "timestamp": "2020-07-09T19:55:11+00:00"
    },
    {
      "id": "e2b5d53f22294c9da3d2a373b5ef51e1",
      "sender": "instagibbs",
      "payload": "of the mempool",
      "action": false,
      "timestamp": "2020-07-09T19:55:11+00:00"
    },
    {
      "id": "72297f26fbb4491d9d47675f92ac2a67",
      "sender": "instagibbs",
      "payload": "but yes, it's a light violation at least",
      "action": false,
      "timestamp": "2020-07-09T19:55:33+00:00"
    },
    {
      "id": "6de18d05901e4981a8cb6bc0a07fdc3f",
      "sender": "phantomcircuit",
      "payload": "shuckc, zmq can and will silently drop messages, unless you have sequence numbers in the application layer you cannot detect that",
      "action": false,
      "timestamp": "2020-07-09T19:55:40+00:00"
    },
    {
      "id": "eea670afa2514efcbd6321746135725d",
      "sender": "shuckc",
      "payload": "My suggestion includes connectblock and disconnect block notifications on the same new channel, because they allow you to keep your local mempool up to date and equally you need to know where in the stream of deltas they arrived",
      "action": false,
      "timestamp": "2020-07-09T19:55:44+00:00"
    },
    {
      "id": "57dd557a94d64348bb49aa28bddd618f",
      "sender": "wumpus",
      "payload": "of course, that could be worked around by having both RPC and ZMQ query another source for sequence numbers",
      "action": false,
      "timestamp": "2020-07-09T19:56:00+00:00"
    },
    {
      "id": "c8fcab0ef2d54759b8ef42dda3beae33",
      "sender": "jnewbery",
      "payload": "how about if the mempool itself had a seq number that is incremented on every add/remove?",
      "action": false,
      "timestamp": "2020-07-09T19:56:03+00:00"
    },
    {
      "id": "a0a0215d08d44af98da2b754cf11f92b",
      "sender": "wumpus",
      "payload": "right",
      "action": false,
      "timestamp": "2020-07-09T19:56:09+00:00"
    },
    {
      "id": "9a2d44d98e5c43dc8e1066f5fcf725dc",
      "sender": "instagibbs",
      "payload": "jnewbery, that's promag's pr pretty much-ish",
      "action": false,
      "timestamp": "2020-07-09T19:56:19+00:00"
    },
    {
      "id": "06ae01716a314cb4ba4e2c72a321e180",
      "sender": "wumpus",
      "payload": "I think that would make sense",
      "action": false,
      "timestamp": "2020-07-09T19:56:20+00:00"
    },
    {
      "id": "c4dfffcb767a4ea2b05f516ebc39e5bd",
      "sender": "instagibbs",
      "payload": "3 minutes",
      "action": false,
      "timestamp": "2020-07-09T19:57:08+00:00"
    },
    {
      "id": "ab1ac5c8e9d3418ca6da2421e13bbbf4",
      "sender": "wumpus",
      "payload": "so +1 on jnewbery/promag's idea then",
      "action": false,
      "timestamp": "2020-07-09T19:57:25+00:00"
    },
    {
      "id": "0ffd10f55cf84578b5282ccd9a8421fc",
      "sender": "shuckc",
      "payload": "with promags suggestion, bitcoind has to keep state/buffer for each consumer, the zmq model makes it state-less, and promag you also need to poll for new messages which is something of a step backwatfs",
      "action": false,
      "timestamp": "2020-07-09T19:57:44+00:00"
    },
    {
      "id": "10d026d07b414c99b35b62c3f50a6577",
      "sender": "wumpus",
      "payload": "I didn't understand it like that",
      "action": false,
      "timestamp": "2020-07-09T19:58:05+00:00"
    },
    {
      "id": "66df2a3597a04c87a13de292f4d1793d",
      "sender": "promag",
      "payload": "note that in my PR, the \"stream\" will be upper bounded in size, so no OOM concerns",
      "action": false,
      "timestamp": "2020-07-09T19:58:09+00:00"
    },
    {
      "id": "25c1cdfd9fa4483c86b9c0ec7e34b79f",
      "sender": "luke-jr",
      "payload": "shuckc: not if he adds longpolling",
      "action": false,
      "timestamp": "2020-07-09T19:58:10+00:00"
    },
    {
      "id": "820391913821462e8acdce85c4f86ca6",
      "sender": "wumpus",
      "payload": "the mempool itself would keep the seq number",
      "action": false,
      "timestamp": "2020-07-09T19:58:15+00:00"
    },
    {
      "id": "540e63bfa6bc4031bf30bb6fad3fa5f3",
      "sender": "wumpus",
      "payload": "not per consumer",
      "action": false,
      "timestamp": "2020-07-09T19:58:24+00:00"
    },
    {
      "id": "9bd2879799ec4353ac978b479bd5c591",
      "sender": "promag",
      "payload": "shuckc: ill add long poll",
      "action": false,
      "timestamp": "2020-07-09T19:58:29+00:00"
    },
    {
      "id": "619cca6114ea4d8fb51a60999b026c83",
      "sender": "wumpus",
      "payload": "it's kind of strange if different consumers have differnt seq ids",
      "action": false,
      "timestamp": "2020-07-09T19:58:36+00:00"
    },
    {
      "id": "987c060b68d34201ae4c08912ad506c3",
      "sender": "shuckc",
      "payload": "do any other commands use long polling?",
      "action": false,
      "timestamp": "2020-07-09T19:58:41+00:00"
    },
    {
      "id": "7e3e5a04c55b46b7a6822ba434f6696a",
      "sender": "wumpus",
      "payload": "because this is global state we're exposing",
      "action": false,
      "timestamp": "2020-07-09T19:58:45+00:00"
    },
    {
      "id": "013998b67bd84c43a5b7fc50976a0b75",
      "sender": "luke-jr",
      "payload": "GBT",
      "action": false,
      "timestamp": "2020-07-09T19:58:46+00:00"
    },
    {
      "id": "1bd0f6cbe4e44f3b97957553d7591ba4",
      "sender": "phantomcircuit",
      "payload": "wumpus, if zmq is using a global sequence number for all messages, i'd suggest just adding that to rpc as a header or something",
      "action": false,
      "timestamp": "2020-07-09T19:58:46+00:00"
    },
    {
      "id": "23e6dba9a1cb4e7c9017605ea480cf9d",
      "sender": "promag",
      "payload": "shuckc: yes",
      "action": false,
      "timestamp": "2020-07-09T19:58:46+00:00"
    },
    {
      "id": "70e0eb2d0cdf4708b668e505bb2bc002",
      "sender": "instagibbs",
      "payload": "getblocktemplate <--- GBT",
      "action": false,
      "timestamp": "2020-07-09T19:58:51+00:00"
    },
    {
      "id": "fe43587607ed469eb72df6513e44c6c0",
      "sender": "promag",
      "payload": "I don't like longpoll that much tbh, at least in json rpc",
      "action": false,
      "timestamp": "2020-07-09T19:59:12+00:00"
    },
    {
      "id": "5993c9f0f49941b6ac08ba9b472a40e9",
      "sender": "promag",
      "payload": "especially because of libevent, timeouts etcetc",
      "action": false,
      "timestamp": "2020-07-09T19:59:33+00:00"
    },
    {
      "id": "ce984bb2fadb4e20aec5736b6b1cf487",
      "sender": "promag",
      "payload": "but \"poll and wait up to n secs\" if fine imo",
      "action": false,
      "timestamp": "2020-07-09T19:59:51+00:00"
    },
    {
      "id": "b8cae0debccc4c2c99c69c3d78d8569e",
      "sender": "wumpus",
      "payload": "I don't think adding a different notification mechanism will really solve the 'clients could stop consuming and keep behind'  problem",
      "action": false,
      "timestamp": "2020-07-09T19:59:52+00:00"
    },
    {
      "id": "c5f93dc2fe6142cd9ffcfa589a69d82a",
      "sender": "luke-jr",
      "payload": "promag: same thing? :P",
      "action": false,
      "timestamp": "2020-07-09T20:00:02+00:00"
    },
    {
      "id": "928e2c3c80534bdb961ee1b6c6b4a89d",
      "sender": "wumpus",
      "payload": "it would mean accumulating in memory in that case?",
      "action": false,
      "timestamp": "2020-07-09T20:00:03+00:00"
    },
    {
      "id": "739d9f3f3b014aa189bd18daf17cadb5",
      "sender": "promag",
      "payload": "luke-jr: n secs < timeoud (:",
      "action": false,
      "timestamp": "2020-07-09T20:00:20+00:00"
    },
    {
      "id": "fa553b2ef2aa406e8c5969fdf757a0a0",
      "sender": "promag",
      "payload": "wumpus: yes",
      "action": false,
      "timestamp": "2020-07-09T20:00:26+00:00"
    },
    {
      "id": "93319a7d785a482db2a4020b43f785b1",
      "sender": "fjahr",
      "payload": "I guess I am the hammer that sees nails everywhere, but how about a hash (muhash) for the mempool states instead of a sequence number? but not sure i grasp the problem completely yet...",
      "action": false,
      "timestamp": "2020-07-09T20:00:31+00:00"
    },
    {
      "id": "b79b45c8eae34f7daafc8e81ecdd56e5",
      "sender": "promag",
      "payload": "but thats's fine",
      "action": false,
      "timestamp": "2020-07-09T20:00:33+00:00"
    },
    {
      "id": "701b519b99134df681759f0700037e67",
      "sender": "luke-jr",
      "payload": "fjahr: then you need to log the hash..",
      "action": false,
      "timestamp": "2020-07-09T20:00:50+00:00"
    },
    {
      "id": "3888b49837fa403db86494a1498679a5",
      "sender": "promag",
      "payload": "if the client doensn't pull the stream, the stream will be terminated",
      "action": false,
      "timestamp": "2020-07-09T20:00:55+00:00"
    },
    {
      "id": "6c017a14402642a6a88fe82bd23ddb03",
      "sender": "wumpus",
      "payload": "no, I don't think that's fine, if there's no limit a client could forget to connect and fill your memory entirely",
      "action": false,
      "timestamp": "2020-07-09T20:00:56+00:00"
    },
    {
      "id": "112f422c317a494e988fe27210d9274d",
      "sender": "instagibbs",
      "payload": "fjahr, even more ridiculous than my minisketch idea ;P",
      "action": false,
      "timestamp": "2020-07-09T20:01:00+00:00"
    },
    {
      "id": "655ae0b492e1422a884d92f87b5b64f4",
      "sender": "wumpus",
      "payload": "promag: that's just another \"lose notifications\" then",
      "action": false,
      "timestamp": "2020-07-09T20:01:10+00:00"
    },
    {
      "id": "87e72cbbe19a4666bbd26106f78fafcc",
      "sender": "fjahr",
      "payload": "hehe",
      "action": false,
      "timestamp": "2020-07-09T20:01:17+00:00"
    },
    {
      "id": "e8a3f4d6cfd04f888c0ace71c3ad0b5b",
      "sender": "luke-jr",
      "payload": "wumpus: it's one thing to begin dropping stuff after N minutes of downtime; another to lose them randomly as a normal event",
      "action": false,
      "timestamp": "2020-07-09T20:01:41+00:00"
    },
    {
      "id": "4442d76d53674495a34b4e395157ac6f",
      "sender": "wumpus",
      "payload": "reliable notification is really a non-trivial issue :)",
      "action": false,
      "timestamp": "2020-07-09T20:01:47+00:00"
    },
    {
      "id": "2d6eb77f0eb44035bb68c62ee1e41473",
      "sender": "promag",
      "payload": "wumpus: no, the stream will be terminated, the client starts over and gets a fresh stream",
      "action": false,
      "timestamp": "2020-07-09T20:01:49+00:00"
    },
    {
      "id": "be64d8fff73947fba1aa6183fb3672d3",
      "sender": "wumpus",
      "payload": "in any case, it's time",
      "action": false,
      "timestamp": "2020-07-09T20:01:57+00:00"
    },
    {
      "id": "e2122c3d3a94440b978c03373f38e187",
      "sender": "aj",
      "payload": "instagibbs: (minisketch is a great idea!)",
      "action": false,
      "timestamp": "2020-07-09T20:02:09+00:00"
    },
    {
      "id": "5f9ade0db6c3447d8b9ffab2f7947c6e",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2020-07-09T20:02:11+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "40f914c7e8ba49169add347df2fac92e",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2020-07-09T19:00:52+00:00"
      },
      "operand": null,
      "id": "40f914c7e8ba49169add347df2fac92e",
      "timestamp": "2020-07-09T19:00:52+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "e331931e2b8f4f0ab55be2deead071a6",
        "sender": "wumpus",
        "payload": "#topic High priority for review",
        "action": false,
        "timestamp": "2020-07-09T19:04:04+00:00"
      },
      "operand": "High priority for review",
      "id": "e331931e2b8f4f0ab55be2deead071a6",
      "timestamp": "2020-07-09T19:04:04+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "4207a71ca814487bb262feb6f9ac8cef",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/19386 | rpc: Assert that RPCArg names are equal to CRPCCommand ones (server) by MarcoFalke \u00c3\u0082\u00c2\u00b7 Pull Request #19386 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:04:19+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/19386",
      "id": "4207a71ca814487bb262feb6f9ac8cef",
      "timestamp": "2020-07-09T19:04:19+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "fd9d31b285b348c9b6f770e5d823dadc",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/19325 | wallet: Refactor BerkeleyDatabase to introduce DatabaseBatch abstract class by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #19325 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:04:20+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/19325",
      "id": "fd9d31b285b348c9b6f770e5d823dadc",
      "timestamp": "2020-07-09T19:04:20+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "b48f1567a4fa442d8d355dda4c248934",
        "sender": "wumpus",
        "payload": "https://github.com/bitcoin/bitcoin/projects/8  13 blockers, 1 bugfix, 3 chasing concept ACK",
        "action": false,
        "timestamp": "2020-07-09T19:04:27+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/projects/8",
      "id": "b48f1567a4fa442d8d355dda4c248934",
      "timestamp": "2020-07-09T19:04:27+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "fc0bf6dc62084940b45d81a9b9fcc82e",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18787 | wallet: descriptor wallet release notes and cleanups by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #18787 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:04:50+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18787",
      "id": "fc0bf6dc62084940b45d81a9b9fcc82e",
      "timestamp": "2020-07-09T19:04:50+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "1dbc2b40731f436098330be7d0f4db0a",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18797 | Export standard Script flags in bitcoinconsensus by ariard \u00c3\u0082\u00c2\u00b7 Pull Request #18797 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:05:04+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18797",
      "id": "1dbc2b40731f436098330be7d0f4db0a",
      "timestamp": "2020-07-09T19:05:04+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "10a4ff84722947be887a5aae40dcd89c",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18191 | Change UpdateForDescendants to use Epochs by JeremyRubin \u00c3\u0082\u00c2\u00b7 Pull Request #18191 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:05:13+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18191",
      "id": "10a4ff84722947be887a5aae40dcd89c",
      "timestamp": "2020-07-09T19:05:13+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "24405829a5be41cfa2acebc015db426e",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/19033 | http: Release work queue after event base finish by promag \u00c3\u0082\u00c2\u00b7 Pull Request #19033 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:06:24+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/19033",
      "id": "24405829a5be41cfa2acebc015db426e",
      "timestamp": "2020-07-09T19:06:24+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "1d4548b7bce843baa3c47a2d567a8e0a",
        "sender": "wumpus",
        "payload": "#topic clarification on the goals of the mempool project (jeremyrubin)",
        "action": false,
        "timestamp": "2020-07-09T19:09:20+00:00"
      },
      "operand": "clarification on the goals of the mempool project (jeremyrubin)",
      "id": "1d4548b7bce843baa3c47a2d567a8e0a",
      "timestamp": "2020-07-09T19:09:20+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "ea95ddb572794c999402d0a040951052",
        "sender": "wumpus",
        "payload": "#topic can we drop gcc 4.8 (sipa)",
        "action": false,
        "timestamp": "2020-07-09T19:19:48+00:00"
      },
      "operand": "can we drop gcc 4.8 (sipa)",
      "id": "ea95ddb572794c999402d0a040951052",
      "timestamp": "2020-07-09T19:19:48+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "e70fadc8f1d2417a9ccde6037d9b04df",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18086 | Accurately account for mempool index memory by sipa \u00c3\u0082\u00c2\u00b7 Pull Request #18086 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:20:05+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18086",
      "id": "e70fadc8f1d2417a9ccde6037d9b04df",
      "timestamp": "2020-07-09T19:20:05+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "7c74725ff3fb4d6bb61b363055222db3",
        "sender": "luke-jr",
        "payload": "https://github.com/bitcoin/bitcoin/pull/19463/files#diff-b2bb174788c7409b671c46ccc86034bdR291",
        "action": false,
        "timestamp": "2020-07-09T19:25:29+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/pull/19463/files#diff-b2bb174788c7409b671c46ccc86034bdR291",
      "id": "7c74725ff3fb4d6bb61b363055222db3",
      "timestamp": "2020-07-09T19:25:29+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "ba77a433a5bf40b2ac181a2fbe2b954a",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/16684 | Discussion: upgrading to C++17 \u00c3\u0082\u00c2\u00b7 Issue #16684 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:25:38+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/16684",
      "id": "ba77a433a5bf40b2ac181a2fbe2b954a",
      "timestamp": "2020-07-09T19:25:38+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "0f5060f5247a4043b9883ec2de35fd0e",
        "sender": "aj",
        "payload": "https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/  -- gcc 8 for rhel 6 and 7",
        "action": false,
        "timestamp": "2020-07-09T19:30:01+00:00"
      },
      "operand": "https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/",
      "id": "0f5060f5247a4043b9883ec2de35fd0e",
      "timestamp": "2020-07-09T19:30:01+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "c8556739e582465ea6f31826440643b1",
        "sender": "wumpus",
        "payload": "#topic mempool delta notifications (instagibbs)",
        "action": false,
        "timestamp": "2020-07-09T19:30:34+00:00"
      },
      "operand": "mempool delta notifications (instagibbs)",
      "id": "c8556739e582465ea6f31826440643b1",
      "timestamp": "2020-07-09T19:30:34+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "f152b6577d4349058be9c4f41c73687c",
        "sender": "instagibbs",
        "payload": "https://github.com/bitcoin/bitcoin/pull/19462#issueacomment-656140421",
        "action": false,
        "timestamp": "2020-07-09T19:34:09+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/pull/19462#issueacomment-656140421",
      "id": "f152b6577d4349058be9c4f41c73687c",
      "timestamp": "2020-07-09T19:34:09+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "afcc9dd1e47141ac9239396c7da4ce86",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/19476 | wip, rpc: Add mempoolchanges by promag \u00c3\u0082\u00c2\u00b7 Pull Request #19476 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-07-09T19:37:53+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/19476",
      "id": "afcc9dd1e47141ac9239396c7da4ce86",
      "timestamp": "2020-07-09T19:37:53+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "5f9ade0db6c3447d8b9ffab2f7947c6e",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2020-07-09T20:02:11+00:00"
      },
      "operand": null,
      "id": "5f9ade0db6c3447d8b9ffab2f7947c6e",
      "timestamp": "2020-07-09T20:02:11+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}