{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "4bf0d6e39293493faf1fc729d0ab5fd6",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 64,
    "lightningbot": 2,
    "jnewbery": 6,
    "kanzure": 1,
    "jeremyrubin": 17,
    "jkczyz": 1,
    "achow101": 2,
    "fjahr": 2,
    "ariard": 86,
    "jonatack": 2,
    "hebasto": 3,
    "elichai2": 1,
    "instagibbs": 5,
    "amiti": 1,
    "meshcollider": 1,
    "luke-jr": 8,
    "aj": 1,
    "gribble": 3,
    "sipa": 41,
    "jb55": 7,
    "ryanofsky": 6,
    "BlueMatt": 63
  },
  "start_time": "2020-05-21T19:01:19+00:00",
  "end_time": "2020-05-21T20:01:41+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": "Alternative transports support (ariard)",
  "messages": [
    {
      "id": "438d222e2bfe461496e373114d0cfe00",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2020-05-21T19:01:19+00:00"
    },
    {
      "id": "010e636823e24f398f1e88e5e516111e",
      "sender": "lightningbot",
      "payload": "Meeting started Thu May 21 19:01:19 2020 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2020-05-21T19:01:19+00:00"
    },
    {
      "id": "6c60d634a4d7490488a6b907e6884c33",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2020-05-21T19:01:19+00:00"
    },
    {
      "id": "6969302b423346f78def492aac2d7c22",
      "sender": "jnewbery",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:22+00:00"
    },
    {
      "id": "200379616b5c42ae9ca48e86b20d4e0b",
      "sender": "kanzure",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:23+00:00"
    },
    {
      "id": "26850ce518384158bf9f6e56127e6dfa",
      "sender": "jeremyrubin",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:24+00:00"
    },
    {
      "id": "ea245b4fa95e447d8829fda3e984f6f0",
      "sender": "wumpus",
      "payload": "let's try...",
      "action": false,
      "timestamp": "2020-05-21T19:01:24+00:00"
    },
    {
      "id": "c3604e03898f4f6ba5392b1ab45a34af",
      "sender": "jkczyz",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:26+00:00"
    },
    {
      "id": "1c12ed79d45841ba8c95e7aaee3d2563",
      "sender": "achow101",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:36+00:00"
    },
    {
      "id": "a15458d1a0e84658858d708e49f2d3dc",
      "sender": "fjahr",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:42+00:00"
    },
    {
      "id": "cabf02e23ef741248331220d3c44612f",
      "sender": "ariard",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:49+00:00"
    },
    {
      "id": "644589f92bc44581b7400b637e97f799",
      "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-05-21T19:01:51+00:00"
    },
    {
      "id": "2d3ae73ed4704e10a971cb9568ed4a3a",
      "sender": "jonatack",
      "payload": "late night hi",
      "action": false,
      "timestamp": "2020-05-21T19:01:52+00:00"
    },
    {
      "id": "210cf2096fe74ee3b3962ba307b725ab",
      "sender": "wumpus",
      "payload": "jeremyrubin lightlike emilengler jonatack hebasto jb55 elichai2",
      "action": false,
      "timestamp": "2020-05-21T19:01:52+00:00"
    },
    {
      "id": "798e2a7b076d4bf4a773215e7f4c9dab",
      "sender": "hebasto",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:02:02+00:00"
    },
    {
      "id": "81603432b45a4925bdf110673c6b31cb",
      "sender": "elichai2",
      "payload": "Hi",
      "action": false,
      "timestamp": "2020-05-21T19:02:24+00:00"
    },
    {
      "id": "518cf64bcb5d4531bf6e330632f87a84",
      "sender": "wumpus",
      "payload": "one proposed meeting topic: alternative transports support (ariard)",
      "action": false,
      "timestamp": "2020-05-21T19:02:33+00:00"
    },
    {
      "id": "9fb1aadbadc745e2b9551c1c388bd325",
      "sender": "ariard",
      "payload": "yes!",
      "action": false,
      "timestamp": "2020-05-21T19:02:39+00:00"
    },
    {
      "id": "d28f645d551b42298b907d6d4b4d98b1",
      "sender": "instagibbs",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:02:49+00:00"
    },
    {
      "id": "69e8bfbdc1454e27afeb3d20f2b44ba7",
      "sender": "wumpus",
      "payload": "any last minute proposals?",
      "action": false,
      "timestamp": "2020-05-21T19:02:51+00:00"
    },
    {
      "id": "db5a45e516bf46acbf7256f2aa878570",
      "sender": "amiti",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:02:53+00:00"
    },
    {
      "id": "c58d7b04ac044d1bb145ffc70e93848a",
      "sender": "meshcollider",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:02:59+00:00"
    },
    {
      "id": "3d7629a70e32420cab91204307242c25",
      "sender": "wumpus",
      "payload": "okay, let's start with high priority for review as usual",
      "action": false,
      "timestamp": "2020-05-21T19:03:42+00:00"
    },
    {
      "id": "36d1941ae81242ce87e605f385966505",
      "sender": "wumpus",
      "payload": "#topic High priority for review",
      "action": false,
      "timestamp": "2020-05-21T19:03:48+00:00"
    },
    {
      "id": "1a1f7ce6da264699aa2a089ec3d38fd2",
      "sender": "luke-jr",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:03:48+00:00"
    },
    {
      "id": "2ee3d38ce186498d89ac1f51a92b9651",
      "sender": "aj",
      "payload": "hi",
      "action": false,
      "timestamp": "2020-05-21T19:03:57+00:00"
    },
    {
      "id": "6d45a14d27424641b9cadbcbc8433526",
      "sender": "hebasto",
      "payload": "could #18297 be added to hi-prio?",
      "action": false,
      "timestamp": "2020-05-21T19:03:58+00:00"
    },
    {
      "id": "2e07811104c2414a996b22de05ffc8cb",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18297 | build: Use pkg-config in BITCOIN_QT_CONFIGURE for all hosts including Windows by hebasto \u00c3\u0082\u00c2\u00b7 Pull Request #18297 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-05-21T19:04:00+00:00"
    },
    {
      "id": "bfb119353cb74d6f8df13aa37b01a05a",
      "sender": "wumpus",
      "payload": "https://github.com/bitcoin/bitcoin/projects/8  4 blockers, 1 bugfix, 4 chasing concept ACK",
      "action": false,
      "timestamp": "2020-05-21T19:04:05+00:00"
    },
    {
      "id": "b7aba68ff7af4a9aa25955336a962ce8",
      "sender": "wumpus",
      "payload": "hebasto: yes",
      "action": false,
      "timestamp": "2020-05-21T19:04:28+00:00"
    },
    {
      "id": "d97172c44e9a4f07afbad20374673591",
      "sender": "hebasto",
      "payload": "wumpus: thanks",
      "action": false,
      "timestamp": "2020-05-21T19:04:37+00:00"
    },
    {
      "id": "cfed4e64f0fb4f04856c550be6805cb6",
      "sender": "achow101",
      "payload": "#18787 for hi prio",
      "action": false,
      "timestamp": "2020-05-21T19:05:00+00:00"
    },
    {
      "id": "8955fb74869647e3981dbc0c576111bf",
      "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-05-21T19:05:02+00:00"
    },
    {
      "id": "417a1db8d95947adacd1e821a64b5f62",
      "sender": "wumpus",
      "payload": "achow101: added",
      "action": false,
      "timestamp": "2020-05-21T19:05:55+00:00"
    },
    {
      "id": "c2106e0ca16d4dadb48b11d9807bbae1",
      "sender": "wumpus",
      "payload": "#topic Alternative transports support (ariard)",
      "action": false,
      "timestamp": "2020-05-21T19:07:31+00:00"
    },
    {
      "id": "b3a68aeb1eda4750af28580594e2e568",
      "sender": "wumpus",
      "payload": "#18989",
      "action": false,
      "timestamp": "2020-05-21T19:07:41+00:00"
    },
    {
      "id": "4591fb0b085f435580f38b17da2964d3",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/18989 | Towards alternative transports first-class support \u00c3\u0082\u00c2\u00b7 Issue #18989 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2020-05-21T19:07:43+00:00"
    },
    {
      "id": "1272b13a97e94c9389b28b1647f939d2",
      "sender": "ariard",
      "payload": "Okay so I've explored a bit alternative transports support",
      "action": false,
      "timestamp": "2020-05-21T19:07:48+00:00"
    },
    {
      "id": "37a6e84cd555452793ee16620e780224",
      "sender": "ariard",
      "payload": "as it has been previously attempted by Matt with headers-over-radio or headers-over-DNS",
      "action": false,
      "timestamp": "2020-05-21T19:08:08+00:00"
    },
    {
      "id": "f595a7a7761c4913bdf7eac088b0b9b8",
      "sender": "wumpus",
      "payload": "is there anything special needed at our side with regard to that?",
      "action": false,
      "timestamp": "2020-05-21T19:08:15+00:00"
    },
    {
      "id": "ddf5eae27b044c1c8369b753409fd9f4",
      "sender": "ariard",
      "payload": "well I want to assert project worthiness",
      "action": false,
      "timestamp": "2020-05-21T19:08:32+00:00"
    },
    {
      "id": "c721bd45ac694cc0a6a8a6ceb01a4d16",
      "sender": "wumpus",
      "payload": "couldn't any extenal software route the P2P port over some other transport?",
      "action": false,
      "timestamp": "2020-05-21T19:08:39+00:00"
    },
    {
      "id": "0b94bc1bffa4429ab2d4a43151f98932",
      "sender": "luke-jr",
      "payload": "there's also Blockstream's blocks-over-satellite",
      "action": false,
      "timestamp": "2020-05-21T19:08:40+00:00"
    },
    {
      "id": "b679f73b154c48fbaace15fce96d82c9",
      "sender": "ariard",
      "payload": "yes but idea is to increase easiness of link layer diversity",
      "action": false,
      "timestamp": "2020-05-21T19:09:02+00:00"
    },
    {
      "id": "265044d767744a23a96f710fda6450d1",
      "sender": "ariard",
      "payload": "wumpus: you may want to receive blocks on one transport like satellites and broadcast them over another medium",
      "action": false,
      "timestamp": "2020-05-21T19:09:34+00:00"
    },
    {
      "id": "51c5d012a6854ea0891d0d6e126798cd",
      "sender": "wumpus",
      "payload": "while I think alternative transports are great, I don't think we should integrate the code for all the transports into bitcoin core",
      "action": false,
      "timestamp": "2020-05-21T19:09:49+00:00"
    },
    {
      "id": "a2823acd550041c2b930f1ec1f9af8dd",
      "sender": "wumpus",
      "payload": "I didn't read your proposal yet so I might be off",
      "action": false,
      "timestamp": "2020-05-21T19:10:05+00:00"
    },
    {
      "id": "3aab49fdd4014981aad8b84add985595",
      "sender": "ariard",
      "payload": "wumpus: I agree that's why my proposal is splitting drivers from fetching logic",
      "action": false,
      "timestamp": "2020-05-21T19:10:12+00:00"
    },
    {
      "id": "b57b2d0a939f43b7b788b80bc15bef4b",
      "sender": "ariard",
      "payload": "It's just a generic driver framework",
      "action": false,
      "timestamp": "2020-05-21T19:10:27+00:00"
    },
    {
      "id": "bc218b6811cf4882ba8dd3e4c412057a",
      "sender": "sipa",
      "payload": "but the drivers would things you compile in?",
      "action": false,
      "timestamp": "2020-05-21T19:10:40+00:00"
    },
    {
      "id": "07acdd8e11c74b9fb745f0be219694c0",
      "sender": "ariard",
      "payload": "drivers should obviously lay outside of core",
      "action": false,
      "timestamp": "2020-05-21T19:10:41+00:00"
    },
    {
      "id": "a36dc63a9cef4fb7ad9b60a990b61fc6",
      "sender": "sipa",
      "payload": "or external applications?",
      "action": false,
      "timestamp": "2020-05-21T19:10:44+00:00"
    },
    {
      "id": "d642fc0eef2c402cbe010db836070e61",
      "sender": "wumpus",
      "payload": "if it's external applications that's great",
      "action": false,
      "timestamp": "2020-05-21T19:10:52+00:00"
    },
    {
      "id": "a6a27d4b0dba4102ba9922ac4fc7b168",
      "sender": "sipa",
      "payload": "(even if not maintained in our repository)",
      "action": false,
      "timestamp": "2020-05-21T19:10:55+00:00"
    },
    {
      "id": "68462712f1e04700800ce76275b02b4a",
      "sender": "ariard",
      "payload": "sipa: compile in or external applications like meek or snowflake",
      "action": false,
      "timestamp": "2020-05-21T19:11:01+00:00"
    },
    {
      "id": "9e8c824a272d4ed692d74c1347902448",
      "sender": "jb55",
      "payload": "why do we integrate tor then",
      "action": false,
      "timestamp": "2020-05-21T19:11:10+00:00"
    },
    {
      "id": "71b8fefadf3e4d5e8ee7c62ce8f639fb",
      "sender": "ariard",
      "payload": "yes I don't want them to be maintained in the repo",
      "action": false,
      "timestamp": "2020-05-21T19:11:13+00:00"
    },
    {
      "id": "7716866b4cc442ea9d485497631a4c3d",
      "sender": "sipa",
      "payload": "jb55: i think there is a difference between routing and non-routing transports",
      "action": false,
      "timestamp": "2020-05-21T19:11:34+00:00"
    },
    {
      "id": "39633b26d1064de5aa0b82a5d8c384db",
      "sender": "wumpus",
      "payload": "jb55: historical legacy, as well as being the most popular one probably",
      "action": false,
      "timestamp": "2020-05-21T19:11:34+00:00"
    },
    {
      "id": "61a8ac7bd815437eb43468908d4f3fba",
      "sender": "ariard",
      "payload": "jb55: with regards to their pluggable transports",
      "action": false,
      "timestamp": "2020-05-21T19:11:36+00:00"
    },
    {
      "id": "15c3890ffe7848a1bbe22d0e7130daf4",
      "sender": "sipa",
      "payload": "i think the things ariard is thinking about doesn't have addresses or a way to initiate a connection to a particular peer",
      "action": false,
      "timestamp": "2020-05-21T19:12:02+00:00"
    },
    {
      "id": "0409f3d4ba7145949b1a2674b92f5b35",
      "sender": "ariard",
      "payload": "wumpus: it's the most popuplar one ofc, but their threat model is a bit diffrent than our",
      "action": false,
      "timestamp": "2020-05-21T19:12:05+00:00"
    },
    {
      "id": "8ef61fddd1a74b028a0b7c331ecf9e49",
      "sender": "luke-jr",
      "payload": "we don't integrate tor really",
      "action": false,
      "timestamp": "2020-05-21T19:12:07+00:00"
    },
    {
      "id": "9e95baf6cd0144b0b756cb71e60f9df6",
      "sender": "luke-jr",
      "payload": "we just have bits to interoperate with it",
      "action": false,
      "timestamp": "2020-05-21T19:12:15+00:00"
    },
    {
      "id": "daa849d168204bccbc629827eba7bb8d",
      "sender": "ariard",
      "payload": "sipa: yes peer policy would be left to the driver",
      "action": false,
      "timestamp": "2020-05-21T19:12:21+00:00"
    },
    {
      "id": "1698121249494ff0aaa6326350337ddd",
      "sender": "sipa",
      "payload": "but just a \"i have a way to connect to some other node, please communicate through it\"",
      "action": false,
      "timestamp": "2020-05-21T19:12:22+00:00"
    },
    {
      "id": "d8b3e9ab30c54c9f919f50799ff9aa80",
      "sender": "wumpus",
      "payload": "that makes sense",
      "action": false,
      "timestamp": "2020-05-21T19:12:53+00:00"
    },
    {
      "id": "77fec1d9bf3447689533b4019567e442",
      "sender": "ariard",
      "payload": "like if your alternative transport is a satellite, there is no that much peer",
      "action": false,
      "timestamp": "2020-05-21T19:12:57+00:00"
    },
    {
      "id": "8807fd32dff141bc9244b5e4843a8e62",
      "sender": "sipa",
      "payload": "so this would be outside addrman, addr (or addrv2) messages, ...",
      "action": false,
      "timestamp": "2020-05-21T19:13:21+00:00"
    },
    {
      "id": "dfa6e618db1440968caf87b534473978",
      "sender": "ariard",
      "payload": "also you may receive block from an uni-directional channel but want to broadcast tx over another one",
      "action": false,
      "timestamp": "2020-05-21T19:13:22+00:00"
    },
    {
      "id": "9d175b1e0df64056aae9c03b74d823bf",
      "sender": "wumpus",
      "payload": "yes, I agree that could be facilitatd better",
      "action": false,
      "timestamp": "2020-05-21T19:13:23+00:00"
    },
    {
      "id": "f34fea6a3a5544788fd112ec489335ab",
      "sender": "ariard",
      "payload": "in reaction to this",
      "action": false,
      "timestamp": "2020-05-21T19:13:26+00:00"
    },
    {
      "id": "fb43f3fdab354d74bf2d38639b9ec23e",
      "sender": "ariard",
      "payload": "sipa: yes not melding with addrman",
      "action": false,
      "timestamp": "2020-05-21T19:13:39+00:00"
    },
    {
      "id": "42f05a4971524731b5322dd4fae6f645",
      "sender": "wumpus",
      "payload": "maybe through hints in a special-permissioned P2P connection",
      "action": false,
      "timestamp": "2020-05-21T19:13:45+00:00"
    },
    {
      "id": "c8ec61cdfbf84c85b6671e48a252f424",
      "sender": "ariard",
      "payload": "sipa: you may reuse addr messages but that's up to driver",
      "action": false,
      "timestamp": "2020-05-21T19:13:56+00:00"
    },
    {
      "id": "043c6b6ced52454584ff02330de4a058",
      "sender": "luke-jr",
      "payload": "p2p stuff needs Core-side integration ofc",
      "action": false,
      "timestamp": "2020-05-21T19:13:59+00:00"
    },
    {
      "id": "87b1a95e79b24dfc851f2394182868aa",
      "sender": "luke-jr",
      "payload": "well, maybe not",
      "action": false,
      "timestamp": "2020-05-21T19:14:13+00:00"
    },
    {
      "id": "f6601c1d45134b30ab0df6c164e4af94",
      "sender": "wumpus",
      "payload": "yes, in a sense",
      "action": false,
      "timestamp": "2020-05-21T19:14:17+00:00"
    },
    {
      "id": "a732e82d3d534db5afc0fb670411b0b8",
      "sender": "ariard",
      "payload": "luke-jr: may you precise ?",
      "action": false,
      "timestamp": "2020-05-21T19:14:18+00:00"
    },
    {
      "id": "b2877090e7fb4f0fa86cf77d1e07755e",
      "sender": "luke-jr",
      "payload": "I guess they can do their own addr-equivalent messages on their own transport",
      "action": false,
      "timestamp": "2020-05-21T19:14:31+00:00"
    },
    {
      "id": "7b6dc70e47b740528f8de113a3f76812",
      "sender": "sipa",
      "payload": "i'm not sure what the best way to support such things is... on the face of it, it could all be done as an external application talking P2P",
      "action": false,
      "timestamp": "2020-05-21T19:14:31+00:00"
    },
    {
      "id": "0895150c026246e4bd99eefc2150c24e",
      "sender": "sipa",
      "payload": "but there may be easier ways of integrating",
      "action": false,
      "timestamp": "2020-05-21T19:14:39+00:00"
    },
    {
      "id": "ae1c03f8b4b1496aa83689b98c225869",
      "sender": "fjahr",
      "payload": "ariard: have users expressed interest in any specific alternative transports? which one would have the most interest in the beginning do you think?",
      "action": false,
      "timestamp": "2020-05-21T19:14:50+00:00"
    },
    {
      "id": "78e0d29b9abc4c319336a962eb4c8f07",
      "sender": "ariard",
      "payload": "sipa: like a supplemental daemon supporting all drivers ?",
      "action": false,
      "timestamp": "2020-05-21T19:15:00+00:00"
    },
    {
      "id": "41e63a317e5e45c0a4dc518248f1a22a",
      "sender": "sipa",
      "payload": "fibre-like things are harder, as they need mempool access",
      "action": false,
      "timestamp": "2020-05-21T19:15:02+00:00"
    },
    {
      "id": "e1432746803148d8b49e1aa1b4a0d167",
      "sender": "luke-jr",
      "payload": "would be ideal to split out current p2p stuff external someday too",
      "action": false,
      "timestamp": "2020-05-21T19:15:08+00:00"
    },
    {
      "id": "fe3c789887ac45dd852dc4877a6e7d4c",
      "sender": "sipa",
      "payload": "ariard: or one daemon per driver",
      "action": false,
      "timestamp": "2020-05-21T19:15:11+00:00"
    },
    {
      "id": "1affb823423141809b5651f2ad584077",
      "sender": "wumpus",
      "payload": "what we're not going to do: include it all into the repository, or dynamic library based plugin mechanisms",
      "action": false,
      "timestamp": "2020-05-21T19:15:13+00:00"
    },
    {
      "id": "bc1de825f87a4f8d9dd3f66aca2d0bb1",
      "sender": "sipa",
      "payload": "wumpus: agree",
      "action": false,
      "timestamp": "2020-05-21T19:15:23+00:00"
    },
    {
      "id": "86379a553b0e4a54a1ba507eb3f948d7",
      "sender": "ariard",
      "payload": "fjahr: yes some LN routing nodes operators would like block redundancy",
      "action": false,
      "timestamp": "2020-05-21T19:15:30+00:00"
    },
    {
      "id": "93b867eba6f04997bea475b12b6e9eef",
      "sender": "wumpus",
      "payload": "everything else is fine",
      "action": false,
      "timestamp": "2020-05-21T19:15:34+00:00"
    },
    {
      "id": "3df0da7b3ffb49c7ae5c07bdb4c57e56",
      "sender": "ariard",
      "payload": "sipa: yes you may have one daemon per driver but ideally you may react on what your learn one driver",
      "action": false,
      "timestamp": "2020-05-21T19:16:03+00:00"
    },
    {
      "id": "bca6a8e5ada84df8b6078b3ad7084034",
      "sender": "sipa",
      "payload": "i can't parse your sentence",
      "action": false,
      "timestamp": "2020-05-21T19:16:21+00:00"
    },
    {
      "id": "5b4d154fa48e48678011d8b39df55969",
      "sender": "wumpus",
      "payload": "if it runs in an external process and communicates with bitcoin core that's the right way",
      "action": false,
      "timestamp": "2020-05-21T19:16:48+00:00"
    },
    {
      "id": "4c9d9cd00dae4cd5ab96a1b8fe6f3ff5",
      "sender": "ariard",
      "payload": "wumpus: yes agree doesn't make sense to include it all into the repo",
      "action": false,
      "timestamp": "2020-05-21T19:16:56+00:00"
    },
    {
      "id": "41f21c3537e149a1a09ce07a1b924dd6",
      "sender": "wumpus",
      "payload": "if it requires a little extra support on our side that's ok",
      "action": false,
      "timestamp": "2020-05-21T19:17:08+00:00"
    },
    {
      "id": "494b5928231d44b18170749ad746161a",
      "sender": "jb55",
      "payload": "for tor it just connects to a local proxy socket right? isn't this general enough?",
      "action": false,
      "timestamp": "2020-05-21T19:17:15+00:00"
    },
    {
      "id": "8c359374d904417aabca1e131f0902e2",
      "sender": "jeremyrubin",
      "payload": "What about making our P2P function that way wumpus?",
      "action": false,
      "timestamp": "2020-05-21T19:17:19+00:00"
    },
    {
      "id": "e2648f5bb5f6454db162aeff60090d7b",
      "sender": "wumpus",
      "payload": "jb55: yes, there's a little specificsupport for incoming connections by creating a hidden service",
      "action": false,
      "timestamp": "2020-05-21T19:17:43+00:00"
    },
    {
      "id": "5a6abfebac3d47b9b96e9fdfa5063652",
      "sender": "ariard",
      "payload": "sipa: let's say I learn I'm currently eclipsed, I send a notification to my LN daemon, LN daemon react by closing channnel and broadcast through some emergency channel",
      "action": false,
      "timestamp": "2020-05-21T19:17:52+00:00"
    },
    {
      "id": "e161512aa8704f32b985f723c9455a32",
      "sender": "sipa",
      "payload": "jb55: that wouldn't work for a satellite connection for example",
      "action": false,
      "timestamp": "2020-05-21T19:17:55+00:00"
    },
    {
      "id": "41e324ee96474b77a74ebcb5230a8949",
      "sender": "jeremyrubin",
      "payload": "I mean it seems like a silly suggestion but if we want fully capable alt-p2ps, then we should be able to dogfood it with our current p2p system",
      "action": false,
      "timestamp": "2020-05-21T19:18:02+00:00"
    },
    {
      "id": "34e7836020884c929d9bcf0299e1c9d9",
      "sender": "wumpus",
      "payload": "jeremyrubin: in the long run maybe",
      "action": false,
      "timestamp": "2020-05-21T19:18:12+00:00"
    },
    {
      "id": "5554efbe92794064b1107839853f3ad2",
      "sender": "sipa",
      "payload": "jb55: as you can't route a bidirectional byte stream",
      "action": false,
      "timestamp": "2020-05-21T19:18:13+00:00"
    },
    {
      "id": "e6593344e961447688f3449f94c68483",
      "sender": "jb55",
      "payload": "sipa: satellite would require custom deserialization code as well if I understand correctly",
      "action": false,
      "timestamp": "2020-05-21T19:18:26+00:00"
    },
    {
      "id": "ebf232c70ea24416ba338f9d930e418e",
      "sender": "ariard",
      "payload": "jeremyrubin: ideally but that's too much carefull refactor",
      "action": false,
      "timestamp": "2020-05-21T19:18:33+00:00"
    },
    {
      "id": "b7e065544e2f48e8adf878ca67c3678d",
      "sender": "jeremyrubin",
      "payload": "wumpus: also seems good from a security perspective -- no DMA if you pop the transit layer :)",
      "action": false,
      "timestamp": "2020-05-21T19:18:34+00:00"
    },
    {
      "id": "7644e2e849e74e2e9d4165a15a3bf118",
      "sender": "jeremyrubin",
      "payload": "I think ryanofsky probably has some insight here",
      "action": false,
      "timestamp": "2020-05-21T19:19:00+00:00"
    },
    {
      "id": "4e762dca641e48f5a00e33b15822d887",
      "sender": "jeremyrubin",
      "payload": "Don't you have a seperate network process branch right now?",
      "action": false,
      "timestamp": "2020-05-21T19:19:16+00:00"
    },
    {
      "id": "84ade1072bf141d18b6125647be6efba",
      "sender": "jeremyrubin",
      "payload": "Or is it just wallet stuff presently",
      "action": false,
      "timestamp": "2020-05-21T19:19:25+00:00"
    },
    {
      "id": "1b9a01bdec754fbb9d36781d6d57771b",
      "sender": "ariard",
      "payload": "better integration with core would ease deployement therefore making the number of such alternative transport used higher",
      "action": false,
      "timestamp": "2020-05-21T19:19:26+00:00"
    },
    {
      "id": "9f99333643b64ca0ba012c4849464d1d",
      "sender": "wumpus",
      "payload": "jeremyrubin: yes, gmaxwell had some ideas in that direction as well, run the whole P2P in a sandboxed process",
      "action": false,
      "timestamp": "2020-05-21T19:19:36+00:00"
    },
    {
      "id": "4270e4b4b2a7408ebd5e65202dba1b79",
      "sender": "sipa",
      "payload": "if one goal is supporting FIBRE in an external process... that's pretty hard; i think the reconstruction code needs low latency access to the mempool etc",
      "action": false,
      "timestamp": "2020-05-21T19:19:38+00:00"
    },
    {
      "id": "af4e1ab33dae4b24958e49fc35a09005",
      "sender": "ariard",
      "payload": "and this would increase network security",
      "action": false,
      "timestamp": "2020-05-21T19:19:39+00:00"
    },
    {
      "id": "47f09ec0fb3741bcbf4bc80e551593b6",
      "sender": "ariard",
      "payload": "sipa: fibre is so much special, not in my integration target",
      "action": false,
      "timestamp": "2020-05-21T19:20:11+00:00"
    },
    {
      "id": "59631a09c4de4380943cd0bd7d6cd1eb",
      "sender": "sipa",
      "payload": "ariard: ok",
      "action": false,
      "timestamp": "2020-05-21T19:20:16+00:00"
    },
    {
      "id": "2acf997443f14dcd8418674d0ca07a41",
      "sender": "ariard",
      "payload": "I'm more interesred by headers-over-DNS or domain-fronting or radio integration",
      "action": false,
      "timestamp": "2020-05-21T19:20:29+00:00"
    },
    {
      "id": "d5c9f21139be4165b4207840e5405579",
      "sender": "wumpus",
      "payload": "let's aim lower first ...",
      "action": false,
      "timestamp": "2020-05-21T19:20:35+00:00"
    },
    {
      "id": "f2f8a07210cc4c58856d6c35a22bfa6c",
      "sender": "jeremyrubin",
      "payload": "sipa: IPC shared memeory the mempool for fibre?",
      "action": false,
      "timestamp": "2020-05-21T19:20:37+00:00"
    },
    {
      "id": "b406ff66c88e4fe489ca9d57e9c3549a",
      "sender": "jeremyrubin",
      "payload": "ducks",
      "action": true,
      "timestamp": "2020-05-21T19:20:38+00:00"
    },
    {
      "id": "6cbadd93e93b4d379fc17efca8992fc2",
      "sender": "sipa",
      "payload": "that's fair",
      "action": false,
      "timestamp": "2020-05-21T19:20:39+00:00"
    },
    {
      "id": "9dcaa1a3c8af4165993ab77f33ca97f7",
      "sender": "wumpus",
      "payload": "it coudl always be extended later",
      "action": false,
      "timestamp": "2020-05-21T19:20:40+00:00"
    },
    {
      "id": "0b243a0a1537419a84f414fdca59d8e4",
      "sender": "wumpus",
      "payload": "to way-out ideas like that",
      "action": false,
      "timestamp": "2020-05-21T19:20:50+00:00"
    },
    {
      "id": "5db5841d9ff84aec9aef800ab98905e1",
      "sender": "ariard",
      "payload": "yes I want something simple first, like headers-over-DNS",
      "action": false,
      "timestamp": "2020-05-21T19:20:57+00:00"
    },
    {
      "id": "dd797c4d4c37489fbbfd1a308089d53d",
      "sender": "jb55",
      "payload": "what's the simplest non-invasive use case?",
      "action": false,
      "timestamp": "2020-05-21T19:20:58+00:00"
    },
    {
      "id": "4ea13ae733874c68b97dd2832e5c1f4d",
      "sender": "sipa",
      "payload": "ariard: headers-over-DNS could even just done with RPC, i think?",
      "action": false,
      "timestamp": "2020-05-21T19:21:14+00:00"
    },
    {
      "id": "25201892f0bf49ac8e9123e892bc5cd2",
      "sender": "wumpus",
      "payload": "nothgin is going to happen at all if that's a requirement for the first version though :)",
      "action": false,
      "timestamp": "2020-05-21T19:21:16+00:00"
    },
    {
      "id": "70daefd8922d4bb28bd2176ea34f9aef",
      "sender": "sipa",
      "payload": "(a daemon communicating through RPC)",
      "action": false,
      "timestamp": "2020-05-21T19:21:23+00:00"
    },
    {
      "id": "22e937c3b50d48f3a2516ce3d14b9f02",
      "sender": "wumpus",
      "payload": "memmap the mempool lol :)",
      "action": false,
      "timestamp": "2020-05-21T19:21:47+00:00"
    },
    {
      "id": "2ad55a8db7df4ee0a5302ac63f200264",
      "sender": "ariard",
      "payload": "sipa: yes my concern is if you have to manage one daemon per alternative transport that's a bit cumbersome to deploy",
      "action": false,
      "timestamp": "2020-05-21T19:21:54+00:00"
    },
    {
      "id": "b496c565e11a4d16893d715d8d84c0d9",
      "sender": "ariard",
      "payload": "even for power users",
      "action": false,
      "timestamp": "2020-05-21T19:22:01+00:00"
    },
    {
      "id": "d82087a35b5f48508f7e28a692a31465",
      "sender": "ariard",
      "payload": "I want to explore if we can integrate with multiprocess and just have another new process supporting the drivers",
      "action": false,
      "timestamp": "2020-05-21T19:22:54+00:00"
    },
    {
      "id": "94424388181c4837bf61b76cd480e85e",
      "sender": "sipa",
      "payload": "ariard: compared to c-lightning which is already half a dozen daemons? ;)",
      "action": false,
      "timestamp": "2020-05-21T19:22:56+00:00"
    },
    {
      "id": "240bb466d7674b5185d726204893f82b",
      "sender": "ariard",
      "payload": "sipa: I know it doesn't work well for embedded or mobile envs",
      "action": false,
      "timestamp": "2020-05-21T19:23:36+00:00"
    },
    {
      "id": "e29d724c63b74de1b5f363d38781a489",
      "sender": "wumpus",
      "payload": "why not?",
      "action": false,
      "timestamp": "2020-05-21T19:24:41+00:00"
    },
    {
      "id": "0be64bb47e014090a1230c73a7611e9c",
      "sender": "ariard",
      "payload": "and I think actually blocksat is its own fork of core",
      "action": false,
      "timestamp": "2020-05-21T19:24:57+00:00"
    },
    {
      "id": "4f1cda53285045da83b51737b46d5130",
      "sender": "wumpus",
      "payload": "on limited 32-bit platforms it's usually better to have a zillion separate processes than threads within the same process",
      "action": false,
      "timestamp": "2020-05-21T19:24:58+00:00"
    },
    {
      "id": "6a9efb64a0a041e1ace28ea7b2258f17",
      "sender": "wumpus",
      "payload": "e.g. at least they don't have to share an address space",
      "action": false,
      "timestamp": "2020-05-21T19:25:28+00:00"
    },
    {
      "id": "6e2c30d4750243b6b1104560503131f7",
      "sender": "ariard",
      "payload": "well actually with my driver interface design if you want to fork() behind you can",
      "action": false,
      "timestamp": "2020-05-21T19:25:42+00:00"
    },
    {
      "id": "c4de8ea243bc4395843a11c4d2e4512c",
      "sender": "ryanofsky",
      "payload": "sipa/wumpus is there quick way to say what you don't like about the shared library approach? build complications? memory safety?",
      "action": false,
      "timestamp": "2020-05-21T19:25:46+00:00"
    },
    {
      "id": "da4e428b8e9e4898b336854bea901cb2",
      "sender": "ariard",
      "payload": "it's up to the driver implementation",
      "action": false,
      "timestamp": "2020-05-21T19:25:53+00:00"
    },
    {
      "id": "f160ec49cb4e435088c1149c311b0e73",
      "sender": "wumpus",
      "payload": "ryanofsky: security, limits static linking, and having to provide a binary interface",
      "action": false,
      "timestamp": "2020-05-21T19:26:14+00:00"
    },
    {
      "id": "abcd135ab5914490b8a962d41d7883f7",
      "sender": "wumpus",
      "payload": "also cross platform stuf",
      "action": false,
      "timestamp": "2020-05-21T19:26:51+00:00"
    },
    {
      "id": "698b72de835e490e97e2a78ee7ca0cd1",
      "sender": "wumpus",
      "payload": "dynamic libraries are slightly but different enough to make your life a pain between windows and linux",
      "action": false,
      "timestamp": "2020-05-21T19:27:07+00:00"
    },
    {
      "id": "be10cca45f2d44c7a22c854b4db4a3f3",
      "sender": "ariard",
      "payload": "wumpus: on security/fault-tolerance that's why I think a separate process would be better",
      "action": false,
      "timestamp": "2020-05-21T19:27:11+00:00"
    },
    {
      "id": "5cc5e9116f74438b8572d824101b7a8f",
      "sender": "wumpus",
      "payload": "yes, it is",
      "action": false,
      "timestamp": "2020-05-21T19:27:17+00:00"
    },
    {
      "id": "17beb6a33b0246fba1eda2b0fe20994f",
      "sender": "ariard",
      "payload": "contrary to Matt stuff spawning new threads",
      "action": false,
      "timestamp": "2020-05-21T19:27:24+00:00"
    },
    {
      "id": "71cf7b1c7d034131a93ee63af0b905c5",
      "sender": "wumpus",
      "payload": "separate processes are better for isolation/security",
      "action": false,
      "timestamp": "2020-05-21T19:27:41+00:00"
    },
    {
      "id": "d716c533b89e44ecb9a9599c5d580bea",
      "sender": "ariard",
      "payload": "now what should be the threading model of such new process it's another question",
      "action": false,
      "timestamp": "2020-05-21T19:27:41+00:00"
    },
    {
      "id": "2aeac423f0cf425aae85eac7b409196b",
      "sender": "ariard",
      "payload": "wumpus: agree",
      "action": false,
      "timestamp": "2020-05-21T19:27:49+00:00"
    },
    {
      "id": "981492d5e7e24d279d6a3c6d1ceadb24",
      "sender": "ariard",
      "payload": "but current proposal is just to have fetching/broadcast logic in this new process and talk to a driver interface",
      "action": false,
      "timestamp": "2020-05-21T19:28:47+00:00"
    },
    {
      "id": "f472a1e449bd42e78cf53a8b4ff9ec90",
      "sender": "ryanofsky",
      "payload": "ariard, i'll take a look at your prs and what the interfaces are. i'd expect they are easy just to get working across processes",
      "action": false,
      "timestamp": "2020-05-21T19:29:04+00:00"
    },
    {
      "id": "e26ee2ac33ac4b7cb2f11640b3faf99d",
      "sender": "ariard",
      "payload": "fetching logic is operating over abstract driver attributes like fHeaders or fBlocks",
      "action": false,
      "timestamp": "2020-05-21T19:29:05+00:00"
    },
    {
      "id": "82e448c9d08e462dba7ab3c56cdd1c48",
      "sender": "wumpus",
      "payload": "that's interesting, I'll read the issue more closely",
      "action": false,
      "timestamp": "2020-05-21T19:29:07+00:00"
    },
    {
      "id": "d26b34dc568d44ef9b73d2aa96cae33b",
      "sender": "ryanofsky",
      "payload": "the issue is just performance, it's a easier to have great performance if you aren't doing io and just accessing memory",
      "action": false,
      "timestamp": "2020-05-21T19:29:36+00:00"
    },
    {
      "id": "577b3f5a338349ff8d8fd4d12fa3e156",
      "sender": "ariard",
      "payload": "wumpus: yes I want to rely drivers devs to write their own fetching logic for each transport",
      "action": false,
      "timestamp": "2020-05-21T19:29:50+00:00"
    },
    {
      "id": "569dfa149e4d43fc83c0b3c03afcfa7b",
      "sender": "BlueMatt",
      "payload": "ariard: i think it may be useful for you to take a look at all the rust-based drivers that I had written",
      "action": false,
      "timestamp": "2020-05-21T19:29:51+00:00"
    },
    {
      "id": "88a604414d164d2298d2c33f17f7099e",
      "sender": "BlueMatt",
      "payload": "ariard: I think the current API design in 18988 is much too tied to certain assumptions about what the thing will look like",
      "action": false,
      "timestamp": "2020-05-21T19:30:07+00:00"
    },
    {
      "id": "0d34e0887492474fa82343cfcc3f6f3f",
      "sender": "wumpus",
      "payload": "bitcoin core is I/O bound but usually only on disk, not on P2P/network",
      "action": false,
      "timestamp": "2020-05-21T19:30:20+00:00"
    },
    {
      "id": "01dfb6a8121a4748ad9f96dec11ccc8e",
      "sender": "ariard",
      "payload": "BlueMatt: I know, I need to rework the threading model, but ideally your rust-based drivers should be reused",
      "action": false,
      "timestamp": "2020-05-21T19:30:37+00:00"
    },
    {
      "id": "8d2f0bc35ef44a40bb5ac8a54098148f",
      "sender": "BlueMatt",
      "payload": "ariard: I dont think the threading model is the only issue there",
      "action": false,
      "timestamp": "2020-05-21T19:30:48+00:00"
    },
    {
      "id": "35be726707d243ba97d059f5f6a0309d",
      "sender": "BlueMatt",
      "payload": "i think it needs to be way more free-form",
      "action": false,
      "timestamp": "2020-05-21T19:30:53+00:00"
    },
    {
      "id": "6beb97d88d20435992ec6c26ab7b547f",
      "sender": "BlueMatt",
      "payload": "eg the rust stuff was just exposing ProcessNewBlock(Headers) and FindNextBlocksToDownload",
      "action": false,
      "timestamp": "2020-05-21T19:31:15+00:00"
    },
    {
      "id": "e9451e2c527a47a19d597c0e97e4b97d",
      "sender": "BlueMatt",
      "payload": "as well as an api to get header state",
      "action": false,
      "timestamp": "2020-05-21T19:31:20+00:00"
    },
    {
      "id": "e8ce914f76fb4c1e801e39f8480f69d7",
      "sender": "ariard",
      "payload": "BlueMatt: more asynchronous ?",
      "action": false,
      "timestamp": "2020-05-21T19:31:21+00:00"
    },
    {
      "id": "69c27d88a0894f78a9ffd64009945f5a",
      "sender": "BlueMatt",
      "payload": "and leaving it up to the driver what to do with that",
      "action": false,
      "timestamp": "2020-05-21T19:31:32+00:00"
    },
    {
      "id": "57d9132ae1054b8ab2e4244e918dc162",
      "sender": "BlueMatt",
      "payload": "cause drivers may have very different capabilities in terms of how to query",
      "action": false,
      "timestamp": "2020-05-21T19:31:41+00:00"
    },
    {
      "id": "1fa9c7b1dc2d4bddb6c8ae39b630d0a2",
      "sender": "sipa",
      "payload": "i guess that's a question of layering",
      "action": false,
      "timestamp": "2020-05-21T19:31:52+00:00"
    },
    {
      "id": "be834fac7f614005b0e73923c03d9814",
      "sender": "ryanofsky",
      "payload": "BlueMatt, is starting with an API and just changing over time hard here? it seems like a brand new API you can declare unstable",
      "action": false,
      "timestamp": "2020-05-21T19:31:53+00:00"
    },
    {
      "id": "4577365bbaad4669b8a63326d9e651c3",
      "sender": "BlueMatt",
      "payload": "eg headers-over-dns may only be able to query by block height, and its a poll, its not a file descriptor or a socket.",
      "action": false,
      "timestamp": "2020-05-21T19:32:03+00:00"
    },
    {
      "id": "f11dc9479ca94f3c9fe865f262ee3452",
      "sender": "sipa",
      "payload": "it does make sense to have a \"i have a bidirection byte stream connection to another node... tell me what to route over it\" interface",
      "action": false,
      "timestamp": "2020-05-21T19:32:13+00:00"
    },
    {
      "id": "e6a940da9e6340459a41479a119fbf05",
      "sender": "BlueMatt",
      "payload": "ryanofsky: I'm suggesting start with less api, and add more over time :)",
      "action": false,
      "timestamp": "2020-05-21T19:32:21+00:00"
    },
    {
      "id": "32799fc1d4c44654b9731be125637e12",
      "sender": "sipa",
      "payload": "but it's not the right solution for everything",
      "action": false,
      "timestamp": "2020-05-21T19:32:22+00:00"
    },
    {
      "id": "0bfab1ecd1004e68a0d48282caeb6124",
      "sender": "BlueMatt",
      "payload": "i dont think its the right solution for...almost anything we'd want to do here?",
      "action": false,
      "timestamp": "2020-05-21T19:32:37+00:00"
    },
    {
      "id": "335d20e709364353906052050dab1a1f",
      "sender": "BlueMatt",
      "payload": "like, some of the most exciting options would be https domain fronting",
      "action": false,
      "timestamp": "2020-05-21T19:32:50+00:00"
    },
    {
      "id": "387d9f2537394c8b9aa5e6f40c102733",
      "sender": "BlueMatt",
      "payload": "and its not a byte stream, its a query interface",
      "action": false,
      "timestamp": "2020-05-21T19:32:56+00:00"
    },
    {
      "id": "1f3b537d97254059b7035339c1d0318b",
      "sender": "sipa",
      "payload": "what is https domain fronting?",
      "action": false,
      "timestamp": "2020-05-21T19:33:08+00:00"
    },
    {
      "id": "780c137b237c4e199574520259f0504c",
      "sender": "ariard",
      "payload": "yes that's why fetching logic should adapt its request to driver capabilities",
      "action": false,
      "timestamp": "2020-05-21T19:33:08+00:00"
    },
    {
      "id": "6c76cfabab91464c9fcca0ee337eedd5",
      "sender": "ariard",
      "payload": "like don't send GETHEADERS if it's unidirectional",
      "action": false,
      "timestamp": "2020-05-21T19:33:18+00:00"
    },
    {
      "id": "ae896ade3cc145a9909562435026975a",
      "sender": "ariard",
      "payload": "sipa: https://www.bamsoftware.com/papers/fronting/",
      "action": false,
      "timestamp": "2020-05-21T19:33:41+00:00"
    },
    {
      "id": "6a940cc2c00d40439c656111d37c5a64",
      "sender": "BlueMatt",
      "payload": "sipa: where you hit commoncdn.amazon.com in SNI, but the http host header is magicbitcoinproxy.amazonuser.com",
      "action": false,
      "timestamp": "2020-05-21T19:33:42+00:00"
    },
    {
      "id": "639a160d7e3c42b1bb0dab3cd5328edf",
      "sender": "sipa",
      "payload": "SNI?",
      "action": false,
      "timestamp": "2020-05-21T19:33:54+00:00"
    },
    {
      "id": "81f42fe888e945d8be898093bdc2ff8d",
      "sender": "BlueMatt",
      "payload": "sipa: and it routes to your domain. this is a *functional* way to connect to tor through the gfw still today, last i heard, though the common endpoint is slow",
      "action": false,
      "timestamp": "2020-05-21T19:34:10+00:00"
    },
    {
      "id": "7dab86cd078a46d98a8c6649bd8def8a",
      "sender": "BlueMatt",
      "payload": "sipa: ssl plaintext hostname in the connection setup",
      "action": false,
      "timestamp": "2020-05-21T19:34:17+00:00"
    },
    {
      "id": "17b8816baca943b79f210aa3da214219",
      "sender": "ariard",
      "payload": "sipa: https://en.wikipedia.org/wiki/Server_Name_Indication",
      "action": false,
      "timestamp": "2020-05-21T19:34:19+00:00"
    },
    {
      "id": "cbdf7bdcdb3c492ba9b929c2a3ff8e5d",
      "sender": "sipa",
      "payload": "i'll read the link",
      "action": false,
      "timestamp": "2020-05-21T19:34:32+00:00"
    },
    {
      "id": "a3cdeba63ec84e89aa32fa75b1b4353b",
      "sender": "sipa",
      "payload": "no need to unnoob be here",
      "action": false,
      "timestamp": "2020-05-21T19:34:41+00:00"
    },
    {
      "id": "3be00c4480184acbaea2dad465b917c0",
      "sender": "BlueMatt",
      "payload": "ariard: i dont even think 'bidirectional' is a reasonable assumption here - eg radio-based stuff is likely to be unidirectional",
      "action": false,
      "timestamp": "2020-05-21T19:35:10+00:00"
    },
    {
      "id": "6cb21a3378df45ce93278b0b41c895a8",
      "sender": "BlueMatt",
      "payload": "(and could be *either* read or write)",
      "action": false,
      "timestamp": "2020-05-21T19:35:16+00:00"
    },
    {
      "id": "7aef52ced78d4cf593d65b5aefee8966",
      "sender": "ariard",
      "payload": "yes censorship circumvention is a huge topic in itself, and some of Tor stuff may not fit your threat model",
      "action": false,
      "timestamp": "2020-05-21T19:35:20+00:00"
    },
    {
      "id": "8506a96a5b3145adb7c74fe9313ea42e",
      "sender": "jnewbery",
      "payload": "if it's possible to unnoob the rest of us in a sentence or two, that might be helpful though",
      "action": false,
      "timestamp": "2020-05-21T19:35:33+00:00"
    },
    {
      "id": "2e126ddb57ba4a10843681aaff0b4ac6",
      "sender": "ariard",
      "payload": "BlueMatt: yes capabilities need refinement",
      "action": false,
      "timestamp": "2020-05-21T19:35:46+00:00"
    },
    {
      "id": "bb8eb7a492bb4c379c8877173b85966a",
      "sender": "ryanofsky",
      "payload": "jnewbery, it's just a string passed to disambiguate when you have web servers for different domains on the same ip",
      "action": false,
      "timestamp": "2020-05-21T19:35:59+00:00"
    },
    {
      "id": "bdfe837e88794e69a5b7b61f5842ee2c",
      "sender": "jb55",
      "payload": "jnewbery: its like the http Host header for tls connections",
      "action": false,
      "timestamp": "2020-05-21T19:36:03+00:00"
    },
    {
      "id": "7853a82417c048a798e1eeddcda87ed0",
      "sender": "BlueMatt",
      "payload": "jnewbery: tl;dr: a way to connect to a super common https endpoint (so common that any censors wont block it cause they'd break many websites) and then route your own data over it",
      "action": false,
      "timestamp": "2020-05-21T19:36:23+00:00"
    },
    {
      "id": "3ca0178e525d45e7ad7626dc73ba88b5",
      "sender": "sipa",
      "payload": "i feel people are trying to explain minor details while i (or some) are missing the big picture",
      "action": false,
      "timestamp": "2020-05-21T19:36:31+00:00"
    },
    {
      "id": "e517fd5c28a34a98b48351bf28d4c067",
      "sender": "BlueMatt",
      "payload": "think of, eg, amazon aws javascript cache",
      "action": false,
      "timestamp": "2020-05-21T19:36:38+00:00"
    },
    {
      "id": "61bd48dcdea54da5b7b63ce06e3c0648",
      "sender": "BlueMatt",
      "payload": "but you magically make the censor think you're connecting to that but are in fact connecting to a bitcoin core reset endpoint",
      "action": false,
      "timestamp": "2020-05-21T19:37:05+00:00"
    },
    {
      "id": "5d191bee70514759b9d5297be5d270b3",
      "sender": "sipa",
      "payload": "i hear \"something something https bypass GFW\", but not what or how that'd be used",
      "action": false,
      "timestamp": "2020-05-21T19:37:05+00:00"
    },
    {
      "id": "70fc63042b7a4ab18060e52f1736ea61",
      "sender": "ariard",
      "payload": "sipa: agree there is a lot of alternative transports, integration with each of them may bring you more security/privacy",
      "action": false,
      "timestamp": "2020-05-21T19:37:13+00:00"
    },
    {
      "id": "bc06ea1f0d324a46ae9f07ded98219f2",
      "sender": "ariard",
      "payload": "therefore making them easier to deploy would be great",
      "action": false,
      "timestamp": "2020-05-21T19:37:28+00:00"
    },
    {
      "id": "fea6d64b547d4aaf92c5bb3db7c34c15",
      "sender": "jeremyrubin",
      "payload": "ariard: or less as you add more too",
      "action": false,
      "timestamp": "2020-05-21T19:37:35+00:00"
    },
    {
      "id": "b8ad35bde39a4c3a85af12362a6bd657",
      "sender": "ryanofsky",
      "payload": "i think big picture is it's harder to censor an ip when it's an amazon ip also hosting things you're not trying to censor",
      "action": false,
      "timestamp": "2020-05-21T19:37:39+00:00"
    },
    {
      "id": "c7597615e31d47b88601a1f935a359ea",
      "sender": "sipa",
      "payload": "ryanofsky: ok, that's helpful!",
      "action": false,
      "timestamp": "2020-05-21T19:37:57+00:00"
    },
    {
      "id": "b2ccdd71cd024ae68395835b9a96e55b",
      "sender": "sipa",
      "payload": "why is it unidirectional?",
      "action": false,
      "timestamp": "2020-05-21T19:38:01+00:00"
    },
    {
      "id": "764fa439d38c421aaf6e9f102febf9e7",
      "sender": "ariard",
      "payload": "jeremyrubin: there is a risk of privacy leakage, it should be well-documented I agree",
      "action": false,
      "timestamp": "2020-05-21T19:38:04+00:00"
    },
    {
      "id": "bea1baefeef248f7b828a4b032c79231",
      "sender": "jnewbery",
      "payload": "Very helpful. Thanks ryanofsky jb55 BlueMatt",
      "action": false,
      "timestamp": "2020-05-21T19:38:24+00:00"
    },
    {
      "id": "59e9591246384c9fb6426c661ca28f92",
      "sender": "ariard",
      "payload": "domain-fronting increase cost of censorship, because now you have to harm ingenous traffic too",
      "action": false,
      "timestamp": "2020-05-21T19:39:05+00:00"
    },
    {
      "id": "ea4e33322b5846009e6ebd86d650300f",
      "sender": "instagibbs",
      "payload": "Signal uses this IIRC",
      "action": false,
      "timestamp": "2020-05-21T19:39:16+00:00"
    },
    {
      "id": "de12f4c21e1b46dd9152f6f68c4496be",
      "sender": "jb55",
      "payload": "could I use altnet to send a tx via carrier pidgin",
      "action": false,
      "timestamp": "2020-05-21T19:39:59+00:00"
    },
    {
      "id": "4571222c12e84dbe8e12d64438a7ee11",
      "sender": "BlueMatt",
      "payload": "its been very effecive for signal, in fact",
      "action": false,
      "timestamp": "2020-05-21T19:40:03+00:00"
    },
    {
      "id": "eb8bcce3698940a58a6738db48fa247a",
      "sender": "ariard",
      "payload": "but sipa was right, we miss the bigger picture, I would be glad to explain domain-fronting or how we may incorporate it in core in a pr review club session or other",
      "action": false,
      "timestamp": "2020-05-21T19:40:18+00:00"
    },
    {
      "id": "5d6af4551c5845e89205f01b1387c398",
      "sender": "instagibbs",
      "payload": "BlueMatt, AWS got mad at them didn't hear the result of it :P",
      "action": false,
      "timestamp": "2020-05-21T19:40:20+00:00"
    },
    {
      "id": "d54363dad17d4441b8987917d8ce318c",
      "sender": "BlueMatt",
      "payload": "instagibbs: the result was to use azure",
      "action": false,
      "timestamp": "2020-05-21T19:40:32+00:00"
    },
    {
      "id": "d2544c488a3d47b39320f50f662fd3a9",
      "sender": "BlueMatt",
      "payload": "who did not get mad",
      "action": false,
      "timestamp": "2020-05-21T19:40:35+00:00"
    },
    {
      "id": "1fd60ca2176f455e8b80ce32b3b80643",
      "sender": "sipa",
      "payload": "jb55: using pidgin to steganographically hide the traffic is a great idea!",
      "action": false,
      "timestamp": "2020-05-21T19:40:37+00:00"
    },
    {
      "id": "f96d05df11bb4ef2ad4b151df5d8dffa",
      "sender": "instagibbs",
      "payload": "Ahhh",
      "action": false,
      "timestamp": "2020-05-21T19:40:40+00:00"
    },
    {
      "id": "95a2d1d7916e4957953200ed68964f07",
      "sender": "BlueMatt",
      "payload": "(yet)",
      "action": false,
      "timestamp": "2020-05-21T19:40:41+00:00"
    },
    {
      "id": "50fcaef6602743ffa94227c0e06f6a62",
      "sender": "wumpus",
      "payload": "hehe",
      "action": false,
      "timestamp": "2020-05-21T19:40:52+00:00"
    },
    {
      "id": "6f53a50fe9b04c06b37c1d0b46d27291",
      "sender": "jb55",
      "payload": "pigeon*",
      "action": false,
      "timestamp": "2020-05-21T19:40:54+00:00"
    },
    {
      "id": "84051e6a2cd34521a0297b524b791117",
      "sender": "instagibbs",
      "payload": "But indeed, seems to work inside China quite well considering",
      "action": false,
      "timestamp": "2020-05-21T19:41:01+00:00"
    },
    {
      "id": "ee41d7370b604135bf1ee44d7f281273",
      "sender": "ariard",
      "payload": "yes if we have such generic driver framework, drivers devs may just focus on improving protocol fingerprint hidding",
      "action": false,
      "timestamp": "2020-05-21T19:41:26+00:00"
    },
    {
      "id": "518d35bb64f14002a2f07314f544f04b",
      "sender": "BlueMatt",
      "payload": "exactly. but it needs to be super flexible to support all these different crazy ideas",
      "action": false,
      "timestamp": "2020-05-21T19:42:58+00:00"
    },
    {
      "id": "314e4e554b604ad794be918eca31d4b6",
      "sender": "wumpus",
      "payload": "but not necessarily initially, it just needs to be extendable",
      "action": false,
      "timestamp": "2020-05-21T19:43:11+00:00"
    },
    {
      "id": "090921bc9b614099afb4295895e77ce6",
      "sender": "ariard",
      "payload": "I invite anyone to let comment on the PR/issues and in the meanwhile I will explore more each alt-transports to see how much generic framework",
      "action": false,
      "timestamp": "2020-05-21T19:43:17+00:00"
    },
    {
      "id": "3416a12c3a8d4e08a646518a7227f1b0",
      "sender": "ariard",
      "payload": "and come with a cleaner design proposal",
      "action": false,
      "timestamp": "2020-05-21T19:43:30+00:00"
    },
    {
      "id": "638289e9c76c435f9f49f3061a48ac33",
      "sender": "jnewbery",
      "payload": "ariard: what do you need help with? From my perspective, there's still a lot of work to be done internally in Bitcoin Core cleaning up the layer separation between net / net_processing / validation, but I haven't reviewed your branch yet",
      "action": false,
      "timestamp": "2020-05-21T19:43:31+00:00"
    },
    {
      "id": "01d5211c74194a259531641765149b2c",
      "sender": "BlueMatt",
      "payload": "notes that, after initialization, before any read()/write()s to the remote host, openssl can be run in a sanboxed processes which has no access to any syscalls except read() and write() :)",
      "action": true,
      "timestamp": "2020-05-21T19:43:35+00:00"
    },
    {
      "id": "ab5f3227b42140ed8b5ee13bc866bb9b",
      "sender": "sipa",
      "payload": "maybe it's good to make a list of potential alternative transport that are useful, and then see if there's a reasonable subset that can easily be supported",
      "action": false,
      "timestamp": "2020-05-21T19:44:06+00:00"
    },
    {
      "id": "d51443d15dce437abec39a1941a9e717",
      "sender": "wumpus",
      "payload": "you don't want to overdesign either, nor make such a large stack of requirements that you give up in the idea",
      "action": false,
      "timestamp": "2020-05-21T19:44:20+00:00"
    },
    {
      "id": "ace9ef77c5c546a3ab2977723e7d1b9b",
      "sender": "ariard",
      "payload": "sipa: I've been working on this the last few days, will make it public soon",
      "action": false,
      "timestamp": "2020-05-21T19:44:26+00:00"
    },
    {
      "id": "921cca0fb06c49539fee037368e2c539",
      "sender": "ariard",
      "payload": "wumpus: you don't want to overdesign, but let room in the design to step-by-step extend it",
      "action": false,
      "timestamp": "2020-05-21T19:44:46+00:00"
    },
    {
      "id": "d0788d5d90554888bfd23fdeea0aa7c1",
      "sender": "BlueMatt",
      "payload": "jnewbery: these types of things need only very few calls into the rest of core",
      "action": false,
      "timestamp": "2020-05-21T19:44:47+00:00"
    },
    {
      "id": "3440d5f9b0874f97956f7b742f91fb6c",
      "sender": "wumpus",
      "payload": "ariard: yes",
      "action": false,
      "timestamp": "2020-05-21T19:44:53+00:00"
    },
    {
      "id": "5ae48e61a489492eb057462434deeb2b",
      "sender": "BlueMatt",
      "payload": "eg you can write dns + http + radio + a full second p2p client with only these functions: https://github.com/TheBlueMatt/bitcoin/blob/d3ca09afbc38d7f73866da33948651ac2c40fd58/src/rusty/src/cpp_bridge.cpp",
      "action": false,
      "timestamp": "2020-05-21T19:45:03+00:00"
    },
    {
      "id": "12f2e91f6910405ca52770e442c0a502",
      "sender": "ariard",
      "payload": "jnewbery: the kind of changes Carl is working on to separate net_processing from validation",
      "action": false,
      "timestamp": "2020-05-21T19:45:12+00:00"
    },
    {
      "id": "f7c0d0987d3645718b16a0350d9d8594",
      "sender": "BlueMatt",
      "payload": "(and that branch has all 4 written, though in rust)",
      "action": false,
      "timestamp": "2020-05-21T19:45:21+00:00"
    },
    {
      "id": "a85ab051125f47108119617431484487",
      "sender": "wumpus",
      "payload": "just trying to warn to not get overenthousiastic I've seen this before :)",
      "action": false,
      "timestamp": "2020-05-21T19:45:24+00:00"
    },
    {
      "id": "b8b73fdd7a3c4eccb987fc330e9039be",
      "sender": "BlueMatt",
      "payload": "so I really dont think separating or cleaning up net_processing is at all required here",
      "action": false,
      "timestamp": "2020-05-21T19:45:32+00:00"
    },
    {
      "id": "5e00799bdc8549749856071f2ff5ba9a",
      "sender": "BlueMatt",
      "payload": "in fact, I think using any parts of net_processing or even net is an anti-goal.",
      "action": false,
      "timestamp": "2020-05-21T19:45:47+00:00"
    },
    {
      "id": "43c804e6f8034b6e978611d16b86f74b",
      "sender": "jeremyrubin",
      "payload": "excited for audio relay so I can fill my neighborhood with the glorious sound of decentralization",
      "action": true,
      "timestamp": "2020-05-21T19:45:47+00:00"
    },
    {
      "id": "d83fcbd748a1488b930f9c18dc58406e",
      "sender": "ariard",
      "payload": "wumpus: I agree, that's kind of slow work like multiprocess is",
      "action": false,
      "timestamp": "2020-05-21T19:45:54+00:00"
    },
    {
      "id": "4535986cd49a4f37bc03355ef41aa70a",
      "sender": "wumpus",
      "payload": "jeremyrubin: ROFL",
      "action": false,
      "timestamp": "2020-05-21T19:45:54+00:00"
    },
    {
      "id": "b95153a4e76247ff837b47023321e8bd",
      "sender": "BlueMatt",
      "payload": "and validation.h is a relatively small API",
      "action": false,
      "timestamp": "2020-05-21T19:45:58+00:00"
    },
    {
      "id": "5c62ddd2f92a4a11810bf0c3d092a506",
      "sender": "ariard",
      "payload": "I'm well aware of",
      "action": false,
      "timestamp": "2020-05-21T19:46:01+00:00"
    },
    {
      "id": "4e2e8a2b0ee4474fb0119275675dbc54",
      "sender": "wumpus",
      "payload": "i'm stoked for neutrino relay, uncensorable by physics !",
      "action": false,
      "timestamp": "2020-05-21T19:46:46+00:00"
    },
    {
      "id": "8b5101445efc4fad81ce043a17b08782",
      "sender": "sipa",
      "payload": "\"it's faster than C!\"",
      "action": false,
      "timestamp": "2020-05-21T19:46:55+00:00"
    },
    {
      "id": "d52b32068b814924834360cc1f101c1b",
      "sender": "BlueMatt",
      "payload": "lol",
      "action": false,
      "timestamp": "2020-05-21T19:47:02+00:00"
    },
    {
      "id": "86d33b6966554694b60fab93359330d3",
      "sender": "wumpus",
      "payload": "hehe",
      "action": false,
      "timestamp": "2020-05-21T19:47:05+00:00"
    },
    {
      "id": "4d6cfda1f63440e48f9dccfb7772f5f1",
      "sender": "ariard",
      "payload": "jeremyrubin: receives block from space and pass headers-over-radio to your neighboors, be a good network citizen :)",
      "action": false,
      "timestamp": "2020-05-21T19:47:06+00:00"
    },
    {
      "id": "98e378326599445785beed012d87aad6",
      "sender": "BlueMatt",
      "payload": "is excited for cross-ocean global radio header relay",
      "action": true,
      "timestamp": "2020-05-21T19:47:33+00:00"
    },
    {
      "id": "b641639817ba46ba808a346c8cf8692a",
      "sender": "wumpus",
      "payload": "that would be very nice",
      "action": false,
      "timestamp": "2020-05-21T19:47:56+00:00"
    },
    {
      "id": "a515bf9ac08e4518beebecb22d79f0ee",
      "sender": "BlueMatt",
      "payload": "cause, like, some issues with using spectrum without pissing off a bunch of hams aside, is totally practical",
      "action": false,
      "timestamp": "2020-05-21T19:47:57+00:00"
    },
    {
      "id": "8997d8f2a9b348778ef8d7a2e3eefe9a",
      "sender": "jeremyrubin",
      "payload": "I'd just be worried that if we set up neutrino relay that we'd start getting extraterrestrial blocks",
      "action": false,
      "timestamp": "2020-05-21T19:48:00+00:00"
    },
    {
      "id": "cd715de66c364192b7580508db5424e6",
      "sender": "sipa",
      "payload": "800 bytes per 10 minutes is slightly higher than 1 bit per second",
      "action": false,
      "timestamp": "2020-05-21T19:48:11+00:00"
    },
    {
      "id": "a21c59056d1a46c99321d1fa398b2199",
      "sender": "wumpus",
      "payload": "jeremyrubin: win/win",
      "action": false,
      "timestamp": "2020-05-21T19:48:17+00:00"
    },
    {
      "id": "15c301f56d1f440aaa087bbedf6dfe64",
      "sender": "sipa",
      "payload": "i wonder how much energy you need to moonbounce that",
      "action": false,
      "timestamp": "2020-05-21T19:48:18+00:00"
    },
    {
      "id": "90bae1bc6e2d4b3e876d49bf0d19ab02",
      "sender": "ariard",
      "payload": "if anyone has idea of alternarive transport pleae note them in the issue, I will inquiry to see how you can integrate",
      "action": false,
      "timestamp": "2020-05-21T19:48:29+00:00"
    },
    {
      "id": "edef33880d864bd7980a18bb2dcd6384",
      "sender": "BlueMatt",
      "payload": "sipa: ha! I was having a conversation about moonbouncing header relay like an hour ago",
      "action": false,
      "timestamp": "2020-05-21T19:48:33+00:00"
    },
    {
      "id": "30fd4f25c8994518b7406d04b2805141",
      "sender": "BlueMatt",
      "payload": "ariard: I just have the 4 that I listed previously, all of which I think are cool.",
      "action": false,
      "timestamp": "2020-05-21T19:48:47+00:00"
    },
    {
      "id": "a27ad7b93ae842aa8e76c2aa41aeb060",
      "sender": "jeremyrubin",
      "payload": "How many TXs can we fit in the latency between here and the moon?",
      "action": false,
      "timestamp": "2020-05-21T19:48:56+00:00"
    },
    {
      "id": "b2d10e027d5a4287a6967aa197f2d15f",
      "sender": "BlueMatt",
      "payload": "(and sufficiently variable in the features they offer that they are a good test case)",
      "action": false,
      "timestamp": "2020-05-21T19:49:06+00:00"
    },
    {
      "id": "6b06f3ccd83143d792d74041b11f5e59",
      "sender": "jeremyrubin",
      "payload": "MoonMemPoolTapeDeck",
      "action": false,
      "timestamp": "2020-05-21T19:49:06+00:00"
    },
    {
      "id": "0c9ec0f7742e4b6a875bcb69df7de67b",
      "sender": "ariard",
      "payload": "BlueMatt: cooool will go through this whole conv again to bookmark",
      "action": false,
      "timestamp": "2020-05-21T19:49:17+00:00"
    },
    {
      "id": "a35d810fe4f24f949146030e41a9cb84",
      "sender": "ariard",
      "payload": "oh in fact i've already you branch bookmarked :) the doc starter is nice",
      "action": false,
      "timestamp": "2020-05-21T19:49:44+00:00"
    },
    {
      "id": "6c75564361c84ee7a325b4537621ab3d",
      "sender": "BlueMatt",
      "payload": "ariard: also take a look at the fn list at https://github.com/TheBlueMatt/bitcoin/blob/d3ca09afbc38d7f73866da33948651ac2c40fd58/src/rusty/src/cpp_bridge.cpp or the actual api at https://github.com/TheBlueMatt/bitcoin/blob/d3ca09afbc38d7f73866da33948651ac2c40fd58/src/rusty/src/bridge.rs",
      "action": false,
      "timestamp": "2020-05-21T19:49:44+00:00"
    },
    {
      "id": "cf169f8ac2f0406ebe132430aa471335",
      "sender": "BlueMatt",
      "payload": "thats the api that I was exposing to all 4 clients in rust, and was pretty easy to write again. its not a class-based thing, just a bag of functions, though, so not quite what you're going for.",
      "action": false,
      "timestamp": "2020-05-21T19:50:11+00:00"
    },
    {
      "id": "a743b9f3651d4cdcacae29b834d66664",
      "sender": "ariard",
      "payload": "okay I've had a different concern, if such stuff get wider deployement we may have side-effect on the network topology",
      "action": false,
      "timestamp": "2020-05-21T19:50:43+00:00"
    },
    {
      "id": "04353dabb45d43cd9b4f379cb53cab29",
      "sender": "BlueMatt",
      "payload": "in other news, these things are back in stock, and can be used to pick up headers most places in new york city: https://unsigned.io/product/rnode/",
      "action": false,
      "timestamp": "2020-05-21T19:50:44+00:00"
    },
    {
      "id": "2f57210ed41848ca967c36499a041f2c",
      "sender": "ariard",
      "payload": "anyone has opinion on this ?",
      "action": false,
      "timestamp": "2020-05-21T19:50:57+00:00"
    },
    {
      "id": "9cae1f8c21254949b7d5db1d481546c8",
      "sender": "BlueMatt",
      "payload": "ariard: as long as its purely additive, who cares! :)",
      "action": false,
      "timestamp": "2020-05-21T19:51:16+00:00"
    },
    {
      "id": "de4d93c0b6914360adfb37a67fc6a037",
      "sender": "ariard",
      "payload": "and such side-effect may not be desirable",
      "action": false,
      "timestamp": "2020-05-21T19:51:16+00:00"
    },
    {
      "id": "19e6d98e597e49418806e3bbba235a65",
      "sender": "jonatack",
      "payload": "ariard: at the risk of stating the obvious (but that is often forgotten in the excitement): restrict scope inititally to the smallest possible, minimum viable thing, that can be reviewed and that people can/will actually use on a small scale but eagerly",
      "action": false,
      "timestamp": "2020-05-21T19:51:30+00:00"
    },
    {
      "id": "f7e3aebe03a94932ab640ef8d4ab2ee5",
      "sender": "ariard",
      "payload": "BlueMatt: right if everything is opt-in I think that's okay",
      "action": false,
      "timestamp": "2020-05-21T19:51:31+00:00"
    },
    {
      "id": "bf3e7c3ddded40268af49c66f410b299",
      "sender": "jeremyrubin",
      "payload": "I don't think it's addititive",
      "action": false,
      "timestamp": "2020-05-21T19:51:53+00:00"
    },
    {
      "id": "3fb3a32dc94c427ab68817c4b2cbdc29",
      "sender": "BlueMatt",
      "payload": "(one of the key observations made previously is that these types of relays can be bucketed into a few categories: a) privacy preserving ones, often which only provide headers due to bandwidth constraints, and b) not that...)",
      "action": false,
      "timestamp": "2020-05-21T19:51:57+00:00"
    },
    {
      "id": "f75bef8685b54933b351ef7911b68893",
      "sender": "ariard",
      "payload": "jonatack: I know review process and getting the first chunks PRs are the hardest steps :)",
      "action": false,
      "timestamp": "2020-05-21T19:51:59+00:00"
    },
    {
      "id": "517c0284b5664261a3316939546b1bf8",
      "sender": "jeremyrubin",
      "payload": "This increases partitionability",
      "action": false,
      "timestamp": "2020-05-21T19:52:03+00:00"
    },
    {
      "id": "9a79f979dab3472992fc160ef38da38e",
      "sender": "jeremyrubin",
      "payload": "but increases availability I think?",
      "action": false,
      "timestamp": "2020-05-21T19:52:21+00:00"
    },
    {
      "id": "7f09dcc1c1b54e4dbcff0659e4316606",
      "sender": "BlueMatt",
      "payload": "in such cases, we can use (a)-category sources to detect when there are blocks we dont have, and turn on the non-privacy-preserving modes in such cases",
      "action": false,
      "timestamp": "2020-05-21T19:52:22+00:00"
    },
    {
      "id": "5e69546b0f454b52896fe1ebc0564b05",
      "sender": "BlueMatt",
      "payload": "but maybe only after having the regular p2p code make some new connections",
      "action": false,
      "timestamp": "2020-05-21T19:52:36+00:00"
    },
    {
      "id": "4d54b8faa2fd45e8acb717a096367903",
      "sender": "ariard",
      "payload": "BlueMatt: exactly that's kind of the idea of having a watchdog for this",
      "action": false,
      "timestamp": "2020-05-21T19:52:45+00:00"
    },
    {
      "id": "09988a1804f346df8575a9561f015e7e",
      "sender": "BlueMatt",
      "payload": "you dont need anything fancy to do that, though",
      "action": false,
      "timestamp": "2020-05-21T19:52:58+00:00"
    },
    {
      "id": "74d2ebe8389a4262a590deb95fb5ec11",
      "sender": "BlueMatt",
      "payload": "only a sleep(300) :)",
      "action": false,
      "timestamp": "2020-05-21T19:53:04+00:00"
    },
    {
      "id": "aed14bd3fab54dc990376dbaafc738f4",
      "sender": "ariard",
      "payload": "that's hacky",
      "action": false,
      "timestamp": "2020-05-21T19:53:13+00:00"
    },
    {
      "id": "a8693ee2a36646438543fcfa31a26175",
      "sender": "BlueMatt",
      "payload": "no its not",
      "action": false,
      "timestamp": "2020-05-21T19:53:16+00:00"
    },
    {
      "id": "f9a0d6a0f43f489cb7d7a3e9ca0dab0d",
      "sender": "BlueMatt",
      "payload": "its actually exactly what you want here",
      "action": false,
      "timestamp": "2020-05-21T19:53:24+00:00"
    },
    {
      "id": "6d093f6d755d4ec7b0c2221e149a246b",
      "sender": "sipa",
      "payload": "wth are you guys talking about",
      "action": false,
      "timestamp": "2020-05-21T19:53:35+00:00"
    },
    {
      "id": "b08f55b725764c04ad03218374dd9001",
      "sender": "BlueMatt",
      "payload": "give net_processing a chance to figure out how to fetch the block if we're missing one",
      "action": false,
      "timestamp": "2020-05-21T19:53:38+00:00"
    },
    {
      "id": "ae1dfd10947642879f12cef09c49d88d",
      "sender": "ariard",
      "payload": "BlueMatt: don't use a privacy-harming communication channel if you don't have to",
      "action": false,
      "timestamp": "2020-05-21T19:53:47+00:00"
    },
    {
      "id": "948b8f0f95504aa59da4b6c3a574e373",
      "sender": "BlueMatt",
      "payload": "and if it fails to within 5 minutes, turn on the http client and give up privacy for the block data",
      "action": false,
      "timestamp": "2020-05-21T19:53:51+00:00"
    },
    {
      "id": "f39d785f151b492ea77bc318d2015d42",
      "sender": "BlueMatt",
      "payload": "right, exactly, thats why you sleep(300) :)",
      "action": false,
      "timestamp": "2020-05-21T19:54:00+00:00"
    },
    {
      "id": "bd156d41cacf4a7c80b5c901148783f4",
      "sender": "wumpus",
      "payload": "~5 minutes to go",
      "action": false,
      "timestamp": "2020-05-21T19:54:17+00:00"
    },
    {
      "id": "1e8312ee17a446c2b9f12ba5d6cef126",
      "sender": "jnewbery",
      "payload": "I agree with sipa",
      "action": false,
      "timestamp": "2020-05-21T19:54:19+00:00"
    },
    {
      "id": "1d956b5adf9d49219d252ad8b21ebdcb",
      "sender": "BlueMatt",
      "payload": "sipa: if, eg, you learn a header over radio, but that source doesnt provide blocks, what do you do?",
      "action": false,
      "timestamp": "2020-05-21T19:54:24+00:00"
    },
    {
      "id": "12fe060d6d844e75b0067951b478322a",
      "sender": "BlueMatt",
      "payload": "oh, wait, is this still a meeting? lol I'll shut up.",
      "action": false,
      "timestamp": "2020-05-21T19:54:36+00:00"
    },
    {
      "id": "3b379bd1c44f425aa1bcf81bedf8a472",
      "sender": "jnewbery",
      "payload": "perhaps this more speculative discussion is better suited to bitcoin-wizards or similar?",
      "action": false,
      "timestamp": "2020-05-21T19:54:47+00:00"
    },
    {
      "id": "aa5ed11cc0b74f88a01c3f1b0ca1905a",
      "sender": "ariard",
      "payload": "BlueMatt: but no, you may start to be eclipsed after IBD and due to block variance sleep doesn't make sense IMO :p",
      "action": false,
      "timestamp": "2020-05-21T19:54:49+00:00"
    },
    {
      "id": "26543f74abf748c29d4e19ac235965ff",
      "sender": "sipa",
      "payload": "sleep(300) till the end of the meeting",
      "action": false,
      "timestamp": "2020-05-21T19:54:51+00:00"
    },
    {
      "id": "adc45287d13a48a8b11654786026856c",
      "sender": "wumpus",
      "payload": "jnewbery: yes, though we don't have any other topics queued for today",
      "action": false,
      "timestamp": "2020-05-21T19:55:04+00:00"
    },
    {
      "id": "49a80111403d4eb496812b15203b2734",
      "sender": "ariard",
      "payload": "jnewbery: agree again I invite people to pursue discussion on the issue or PR, it's better suited",
      "action": false,
      "timestamp": "2020-05-21T19:55:39+00:00"
    },
    {
      "id": "d2f302edfa9b4ee1b4cc43013b971e8b",
      "sender": "sipa",
      "payload": "BlueMatt: i don't know, why would you do anything?",
      "action": false,
      "timestamp": "2020-05-21T19:55:43+00:00"
    },
    {
      "id": "fcd46bf5434f47f0bc24b15cf836c2bf",
      "sender": "sipa",
      "payload": "i feel like i'm missing a lot of context",
      "action": false,
      "timestamp": "2020-05-21T19:56:24+00:00"
    },
    {
      "id": "10d56da5ee8b485590e4ec2d8f180116",
      "sender": "wumpus",
      "payload": "anyhow I agree with jonatack: restrict scope initially, don't try to do too many out-there things at once",
      "action": false,
      "timestamp": "2020-05-21T19:56:58+00:00"
    },
    {
      "id": "cd6c3e7996294a86a16ea68648dedd45",
      "sender": "wumpus",
      "payload": "though it's good that you're clearly having a lot of ideas",
      "action": false,
      "timestamp": "2020-05-21T19:57:25+00:00"
    },
    {
      "id": "844a630253b149ba997d84cb43228496",
      "sender": "ariard",
      "payload": "sipa: yes I will try to come with some Q&A-style of doc to inform people better",
      "action": false,
      "timestamp": "2020-05-21T19:57:28+00:00"
    },
    {
      "id": "cf8ac297d0c64f8ea01e36fa028c12e6",
      "sender": "wumpus",
      "payload": "but some of us hardly follow :)",
      "action": false,
      "timestamp": "2020-05-21T19:57:40+00:00"
    },
    {
      "id": "283c67fd57ed429daf133ec31e0a5ce3",
      "sender": "BlueMatt",
      "payload": "ariard: no thats my point - you learn absolutely that there is probably something amiss if you have headers for which you do not have a block, and several of these things are fine from a privacy perspective to learn that. in that case, it makes sense for net_processing to go make some new connections and see if it cant find the block. if it fails to after some time, go query cloudflare.deanonymizingseed.com cause, like, its better",
      "action": false,
      "timestamp": "2020-05-21T19:57:44+00:00"
    },
    {
      "id": "27fdd9999fc1404eb8c8b926ae494611",
      "sender": "BlueMatt",
      "payload": "than not getting the block (at least if you're a ln user or so and have it configured to do this), but you first want to give net_processing a chance here. so, essentially, sleep(300) is exactly what you want :)",
      "action": false,
      "timestamp": "2020-05-21T19:57:44+00:00"
    },
    {
      "id": "0e0b00dd9d7d4f74a4c385f81feb80f8",
      "sender": "ariard",
      "payload": "wumpus: thanks, I want to spend more time scoping to the minimal step but yet extendable after",
      "action": false,
      "timestamp": "2020-05-21T19:58:16+00:00"
    },
    {
      "id": "493b9bc491d14cca9aafeceb71316fcf",
      "sender": "BlueMatt",
      "payload": "wumpus: lol, sorry...I wrote out all 4 of the (headers-over-dns, headers-over-radio, blocks-over-http, secondary-p2p-client) things before, so apologies we're a bit three-steps-ahead here :/",
      "action": false,
      "timestamp": "2020-05-21T19:58:42+00:00"
    },
    {
      "id": "7a897ec43ba3452197b04c0db5a3eccc",
      "sender": "BlueMatt",
      "payload": "this all was, in fact, the rust branches.",
      "action": false,
      "timestamp": "2020-05-21T19:59:38+00:00"
    },
    {
      "id": "4c3adb842e2e4067a4cecadb8a417cb3",
      "sender": "wumpus",
      "payload": "BlueMatt: yes, I know, it was great! unfortuantely the approach to integrate them into bitcoin core didn't work with regard to review and organizationaly",
      "action": false,
      "timestamp": "2020-05-21T20:00:05+00:00"
    },
    {
      "id": "48ba8f2bfa2740ac8490e1415d6fabf3",
      "sender": "ariard",
      "payload": "BlueMatt: okay I see your point, but you need to dissociate cleanly 1) anomalies detection and 2) reaction",
      "action": false,
      "timestamp": "2020-05-21T20:00:05+00:00"
    },
    {
      "id": "1443c93ac5c04e0b8c5e8aaeb3982e5f",
      "sender": "ariard",
      "payload": "reaction may happen through net_processing or alt-transports",
      "action": false,
      "timestamp": "2020-05-21T20:00:14+00:00"
    },
    {
      "id": "2a956078bd574d6f9e484b2110b0fb3b",
      "sender": "BlueMatt",
      "payload": "wullon5: yea, no, not complaining, just providing historical context for folks",
      "action": false,
      "timestamp": "2020-05-21T20:00:20+00:00"
    },
    {
      "id": "82bdc852e3f341b4955751268752500c",
      "sender": "BlueMatt",
      "payload": "wumpus:",
      "action": false,
      "timestamp": "2020-05-21T20:00:22+00:00"
    },
    {
      "id": "67324b8379834dfa9679dad6c4d9eb66",
      "sender": "BlueMatt",
      "payload": "ariard: right, kinda, but I think part of my goal at least here is that there should be an absolute minmal amount of common code between the various sources",
      "action": false,
      "timestamp": "2020-05-21T20:00:54+00:00"
    },
    {
      "id": "beabc2651bc84f73adb1c3044d219e18",
      "sender": "wumpus",
      "payload": "wrapping up the meeting",
      "action": false,
      "timestamp": "2020-05-21T20:01:06+00:00"
    },
    {
      "id": "2607dc83c17b4fa2b9592fbb15e96d7d",
      "sender": "wumpus",
      "payload": "thanks everyone for the lively discussion",
      "action": false,
      "timestamp": "2020-05-21T20:01:14+00:00"
    },
    {
      "id": "babf40db863a4ad29672fecd7a6157dc",
      "sender": "ariard",
      "payload": "BlueMatt: ideally yes but I fear our internal components aren't that much clean yet",
      "action": false,
      "timestamp": "2020-05-21T20:01:22+00:00"
    },
    {
      "id": "390f6436112d4aee98c84f0861833764",
      "sender": "BlueMatt",
      "payload": "ariard: cause if there's a bug in anomoly-detection (which we've had 20 issues with in the past, turns out its hard to get right), then all of a sudden your 5 block sources are all stuck, instead of providing the redundancy they're there for.",
      "action": false,
      "timestamp": "2020-05-21T20:01:29+00:00"
    },
    {
      "id": "5cd3b8c82756492892678e1da1d80565",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2020-05-21T20:01:41+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "438d222e2bfe461496e373114d0cfe00",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2020-05-21T19:01:19+00:00"
      },
      "operand": null,
      "id": "438d222e2bfe461496e373114d0cfe00",
      "timestamp": "2020-05-21T19:01:19+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "36d1941ae81242ce87e605f385966505",
        "sender": "wumpus",
        "payload": "#topic High priority for review",
        "action": false,
        "timestamp": "2020-05-21T19:03:48+00:00"
      },
      "operand": "High priority for review",
      "id": "36d1941ae81242ce87e605f385966505",
      "timestamp": "2020-05-21T19:03:48+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "2e07811104c2414a996b22de05ffc8cb",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18297 | build: Use pkg-config in BITCOIN_QT_CONFIGURE for all hosts including Windows by hebasto \u00c3\u0082\u00c2\u00b7 Pull Request #18297 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-05-21T19:04:00+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18297",
      "id": "2e07811104c2414a996b22de05ffc8cb",
      "timestamp": "2020-05-21T19:04:00+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "bfb119353cb74d6f8df13aa37b01a05a",
        "sender": "wumpus",
        "payload": "https://github.com/bitcoin/bitcoin/projects/8  4 blockers, 1 bugfix, 4 chasing concept ACK",
        "action": false,
        "timestamp": "2020-05-21T19:04:05+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/projects/8",
      "id": "bfb119353cb74d6f8df13aa37b01a05a",
      "timestamp": "2020-05-21T19:04:05+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "8955fb74869647e3981dbc0c576111bf",
        "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-05-21T19:05:02+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18787",
      "id": "8955fb74869647e3981dbc0c576111bf",
      "timestamp": "2020-05-21T19:05:02+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "c2106e0ca16d4dadb48b11d9807bbae1",
        "sender": "wumpus",
        "payload": "#topic Alternative transports support (ariard)",
        "action": false,
        "timestamp": "2020-05-21T19:07:31+00:00"
      },
      "operand": "Alternative transports support (ariard)",
      "id": "c2106e0ca16d4dadb48b11d9807bbae1",
      "timestamp": "2020-05-21T19:07:31+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "4591fb0b085f435580f38b17da2964d3",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/18989 | Towards alternative transports first-class support \u00c3\u0082\u00c2\u00b7 Issue #18989 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2020-05-21T19:07:43+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/18989",
      "id": "4591fb0b085f435580f38b17da2964d3",
      "timestamp": "2020-05-21T19:07:43+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "5cd3b8c82756492892678e1da1d80565",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2020-05-21T20:01:41+00:00"
      },
      "operand": null,
      "id": "5cd3b8c82756492892678e1da1d80565",
      "timestamp": "2020-05-21T20:01:41+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}