{
  "founder": "wumpus",
  "channel": "#bitcoin-core-dev",
  "network": "freenode",
  "id": "46f555491987463380e478ba8bcbdaca",
  "name": "#bitcoin-core-dev",
  "chair": "wumpus",
  "chairs": [
    "wumpus"
  ],
  "nicks": {
    "wumpus": 41,
    "lightningbot": 2,
    "sipa": 30,
    "jeremyrubin": 2,
    "jonasschnelli": 6,
    "achow101": 3,
    "meshcollider": 3,
    "kanzure": 1,
    "moneyball": 1,
    "jnewbery": 14,
    "BlueMatt": 39,
    "luke-jr": 15,
    "jb55": 2,
    "gwillen": 2,
    "harding": 1,
    "phantomcircuit": 1
  },
  "start_time": "2019-06-20T19:01:09+00:00",
  "end_time": "2019-06-20T19:44:21+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": "Requiring 2FA for bitcoin orgs on GH (fanquake)",
  "messages": [
    {
      "id": "77d70cee2d384db880f4061256922d27",
      "sender": "wumpus",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2019-06-20T19:01:09+00:00"
    },
    {
      "id": "0fad61da36f645069fc0cdf933114910",
      "sender": "lightningbot",
      "payload": "Meeting started Thu Jun 20 19:01:09 2019 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.",
      "action": false,
      "timestamp": "2019-06-20T19:01:09+00:00"
    },
    {
      "id": "6191a9d7d23e4e1483f16d0e077f0e05",
      "sender": "lightningbot",
      "payload": "Useful Commands: #action #agreed #help #info #idea #link #topic.",
      "action": false,
      "timestamp": "2019-06-20T19:01:09+00:00"
    },
    {
      "id": "bf1e90d14be74577acd0f8f5568fa83d",
      "sender": "sipa",
      "payload": "hello",
      "action": false,
      "timestamp": "2019-06-20T19:01:13+00:00"
    },
    {
      "id": "77aee2bab32d49cdb240c6b6f7e8489f",
      "sender": "jeremyrubin",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:01:17+00:00"
    },
    {
      "id": "03566cc9238249f2ad9b7fe281a8fc70",
      "sender": "jonasschnelli",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:01:31+00:00"
    },
    {
      "id": "4fa9ce1ba530413ab6df4c5bff747964",
      "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",
      "action": false,
      "timestamp": "2019-06-20T19:01:45+00:00"
    },
    {
      "id": "8ab8e3dc40c74ba78237e10030c1691c",
      "sender": "achow101",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:01:53+00:00"
    },
    {
      "id": "4e1d5866b2544e388dd6485da1b84a4f",
      "sender": "meshcollider",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:01:57+00:00"
    },
    {
      "id": "578b84c341f8448a8924d140a02de4c3",
      "sender": "wumpus",
      "payload": "two topics proposed in https://gist.github.com/moneyball/071d608fdae217c2a6d7c35955881d8a : Bitcoin core PR review club, ASN blob discussion",
      "action": false,
      "timestamp": "2019-06-20T19:02:20+00:00"
    },
    {
      "id": "8a90cfd3287140ada432533bcca81d1a",
      "sender": "kanzure",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:02:44+00:00"
    },
    {
      "id": "15daebc854ef46069492ab88cdcbed72",
      "sender": "wumpus",
      "payload": "also maybe we want to discuss the travis issue again",
      "action": false,
      "timestamp": "2019-06-20T19:02:46+00:00"
    },
    {
      "id": "c1071fdbcd9840909cba7ed32f972e78",
      "sender": "meshcollider",
      "payload": "Also 2FA discussion from fanquake",
      "action": false,
      "timestamp": "2019-06-20T19:04:03+00:00"
    },
    {
      "id": "2f50b10498454694b1509fe845c98620",
      "sender": "moneyball",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:04:08+00:00"
    },
    {
      "id": "56cb52de0fb24cf7992d1efb259e889e",
      "sender": "wumpus",
      "payload": "#topic High priority for review",
      "action": false,
      "timestamp": "2019-06-20T19:04:09+00:00"
    },
    {
      "id": "23a2de0365fc47499e80b714d8565e57",
      "sender": "wumpus",
      "payload": "https://github.com/bitcoin/bitcoin/projects/8   5 blockers, 2 bugfixes and 6(!) things chasing concept ack",
      "action": false,
      "timestamp": "2019-06-20T19:04:51+00:00"
    },
    {
      "id": "e2a7e7b27cbf455eb4a7fea8e2003d7b",
      "sender": "wumpus",
      "payload": "anything to add/remove this week ?",
      "action": false,
      "timestamp": "2019-06-20T19:05:13+00:00"
    },
    {
      "id": "bc64db7a4c024537bac736207a738872",
      "sender": "jnewbery",
      "payload": "hi",
      "action": false,
      "timestamp": "2019-06-20T19:05:34+00:00"
    },
    {
      "id": "35e82a64842d4dba870fd749f98e9980",
      "sender": "wumpus",
      "payload": "ok, apparently nothing to discuss in regard to that",
      "action": false,
      "timestamp": "2019-06-20T19:07:21+00:00"
    },
    {
      "id": "eddac4a0151e46a88cb099e32b539970",
      "sender": "wumpus",
      "payload": "#topic Bitcoin Core PR review club (jnewbery)",
      "action": false,
      "timestamp": "2019-06-20T19:07:50+00:00"
    },
    {
      "id": "c2df9311655f48209ba3253186b9c89d",
      "sender": "jnewbery",
      "payload": "Thanks wumpus",
      "action": false,
      "timestamp": "2019-06-20T19:08:03+00:00"
    },
    {
      "id": "25fdc37aa2f84de3881bd20b38c68ec0",
      "sender": "wumpus",
      "payload": "https://bitcoin-core-review-club.github.io/",
      "action": false,
      "timestamp": "2019-06-20T19:08:07+00:00"
    },
    {
      "id": "3df99125f2e04b1c9af47cdfceb5c8bd",
      "sender": "jnewbery",
      "payload": "I just wanted to give an update on the Bitcoin Core Review Club (https://bitcoin-core-review-club.github.io/) that we've been doing for the last couple of months.",
      "action": false,
      "timestamp": "2019-06-20T19:08:09+00:00"
    },
    {
      "id": "7808d12ec67f46cdbc232cb9909298b0",
      "sender": "jnewbery",
      "payload": "We've got a solid group of attendees every week, and some of them are commenting on and reviewing PRs in github, so I think it's been reasonably successful so far.",
      "action": false,
      "timestamp": "2019-06-20T19:08:18+00:00"
    },
    {
      "id": "0de809127e234b19ba76836f763aa378",
      "sender": "jnewbery",
      "payload": "If anyone wants to get involved, we have IRC meetings at 17:00 UTC on Wednesdays. Appearances from established contributors are always appreciated.",
      "action": false,
      "timestamp": "2019-06-20T19:08:39+00:00"
    },
    {
      "id": "9d3f4b271172400b884b3966091950e8",
      "sender": "jonasschnelli",
      "payload": "thanks for doing this jnewbery!",
      "action": false,
      "timestamp": "2019-06-20T19:08:45+00:00"
    },
    {
      "id": "3ce2f5b43eff4d938706054fdefcde07",
      "sender": "jnewbery",
      "payload": "If you have any friends who are less experienced and want to get into Bitcoin Core development, you should send them along",
      "action": false,
      "timestamp": "2019-06-20T19:09:01+00:00"
    },
    {
      "id": "59a84a02332c42828cab4c1d6a0d86e5",
      "sender": "wumpus",
      "payload": "yes, great!",
      "action": false,
      "timestamp": "2019-06-20T19:09:15+00:00"
    },
    {
      "id": "44a6409804904efcaa24223a52d9c411",
      "sender": "jnewbery",
      "payload": "I'm away for the next couple of weeks and I'm looking for one or two volunteer hosts, so please message me if you're interested",
      "action": false,
      "timestamp": "2019-06-20T19:09:31+00:00"
    },
    {
      "id": "fb1cb232c3314e4096c6d2daf3681fe9",
      "sender": "meshcollider",
      "payload": "Very cool, I would definitely come if it wasn't at 5am haha",
      "action": false,
      "timestamp": "2019-06-20T19:09:38+00:00"
    },
    {
      "id": "4629e3a5fec94b5f86bb7cb662e85b7a",
      "sender": "jnewbery",
      "payload": "oh, and finally, if you have any suggested PRs for us to cover, please message me also. We're looking for stuff that doesn't require too much esoteric knowledge and is a reasonable size (perhaps ~100 LOC)",
      "action": false,
      "timestamp": "2019-06-20T19:10:21+00:00"
    },
    {
      "id": "e90a0ba5a83b40da8952f0d45487f8af",
      "sender": "jnewbery",
      "payload": "that's all. Thanks!",
      "action": false,
      "timestamp": "2019-06-20T19:10:26+00:00"
    },
    {
      "id": "9297d718b1cd4e37b03bace7df614efa",
      "sender": "BlueMatt",
      "payload": "can we do asns? I want to take a nap",
      "action": false,
      "timestamp": "2019-06-20T19:10:36+00:00"
    },
    {
      "id": "dab793536aa84cf4b515f74bb829491d",
      "sender": "wumpus",
      "payload": "thanks jnewbery",
      "action": false,
      "timestamp": "2019-06-20T19:10:37+00:00"
    },
    {
      "id": "29c7fc9c54af4209916e298a8436715b",
      "sender": "BlueMatt",
      "payload": "also, +1 thanks jnewbery",
      "action": false,
      "timestamp": "2019-06-20T19:10:43+00:00"
    },
    {
      "id": "c5f367b5d1044c309a2c1653abd34ebf",
      "sender": "wumpus",
      "payload": "#topic ASN blobs (BlueMatt)",
      "action": false,
      "timestamp": "2019-06-20T19:10:53+00:00"
    },
    {
      "id": "975a80901f13446f8e276c534ea31115",
      "sender": "BlueMatt",
      "payload": "well maybe sipa can introduce",
      "action": false,
      "timestamp": "2019-06-20T19:11:00+00:00"
    },
    {
      "id": "7e9683eff5c14197bf5c848cbba41b20",
      "sender": "BlueMatt",
      "payload": "but the idea is, basically, why are we bucketing by /16s",
      "action": false,
      "timestamp": "2019-06-20T19:11:09+00:00"
    },
    {
      "id": "52c01fd395e44e34aa692924b0b54677",
      "sender": "BlueMatt",
      "payload": "its an easy hack, but there's lots of isps with way more than /16s and lots with way less",
      "action": false,
      "timestamp": "2019-06-20T19:11:25+00:00"
    },
    {
      "id": "e5db842db4d149b8a1248dd5dd105b8e",
      "sender": "sipa",
      "payload": "to give some context",
      "action": false,
      "timestamp": "2019-06-20T19:11:33+00:00"
    },
    {
      "id": "16ddedf963b34fa28b0b6f605156b6b3",
      "sender": "BlueMatt",
      "payload": "our goal, really, is to capture diversity of isps/hosting providers",
      "action": false,
      "timestamp": "2019-06-20T19:11:35+00:00"
    },
    {
      "id": "9d864aae64ef4b84a519fd5dcca562c3",
      "sender": "BlueMatt",
      "payload": "we also have seen several groups of spy nodes/large-connection-farms from several different places, but, all together, they originate from < 10 isps",
      "action": false,
      "timestamp": "2019-06-20T19:12:09+00:00"
    },
    {
      "id": "9bdad37a4804426984c814a173c18764",
      "sender": "BlueMatt",
      "payload": "despite being a *ton* of ips",
      "action": false,
      "timestamp": "2019-06-20T19:12:15+00:00"
    },
    {
      "id": "d011820ee3034a9393f7d336d2d3e07d",
      "sender": "sipa",
      "payload": "we're currently \"grouping\" certain IP ranges into groups, to make decisions such as whether to make multiple connections to the same range or not, prioritize incoming connections from distinct groups, and control which addrman buckets IPs go into (under the theory that an attacker has a hard time controlling many groups, sybil resistance is improved)",
      "action": false,
      "timestamp": "2019-06-20T19:12:33+00:00"
    },
    {
      "id": "8028c2862a654a34bc983de48d12650a",
      "sender": "sipa",
      "payload": "right now, those are just /16 groups",
      "action": false,
      "timestamp": "2019-06-20T19:12:41+00:00"
    },
    {
      "id": "aab5cfdd263448e9a008d1a726410712",
      "sender": "sipa",
      "payload": "for most things",
      "action": false,
      "timestamp": "2019-06-20T19:12:45+00:00"
    },
    {
      "id": "3ba61c8f8aa34ca699c926f3d135a714",
      "sender": "sipa",
      "payload": "but /16 is a really naive choice; some ISPs control very large ranges, some very small ones",
      "action": false,
      "timestamp": "2019-06-20T19:13:13+00:00"
    },
    {
      "id": "ab896e4b193d4e4b83458a8796349795",
      "sender": "sipa",
      "payload": "an obvious improvement is to have a map built-in to bitcoin core that tells what the actual independent network ranges are",
      "action": false,
      "timestamp": "2019-06-20T19:13:54+00:00"
    },
    {
      "id": "f188aa1920c44d848c9152d90682a377",
      "sender": "wumpus",
      "payload": "so the practical problem would be how to include enough of this data to be useful, but without adding too much data to the executable size",
      "action": false,
      "timestamp": "2019-06-20T19:14:33+00:00"
    },
    {
      "id": "c3b041b1e9ea447eb9bfce5e1bb89c29",
      "sender": "luke-jr",
      "payload": "BlueMatt: don't ASNs change?",
      "action": false,
      "timestamp": "2019-06-20T19:14:37+00:00"
    },
    {
      "id": "944ba9a9fd5a43528b6fdfbadb5b912d",
      "sender": "sipa",
      "payload": "so i've been working on seeing how large such a map for real internet data would be, and it turns out we can pack it in around 1 MB, and still efficiently look things up in it",
      "action": false,
      "timestamp": "2019-06-20T19:14:41+00:00"
    },
    {
      "id": "d9a790cb1a744491afc2bef6262c543b",
      "sender": "BlueMatt",
      "payload": "luke-jr: sure, but not a *lot*",
      "action": false,
      "timestamp": "2019-06-20T19:14:49+00:00"
    },
    {
      "id": "9143fdd0591149ff95357499899c826a",
      "sender": "wumpus",
      "payload": "yes, they change, it'd be at most an approximation at the time of release",
      "action": false,
      "timestamp": "2019-06-20T19:14:50+00:00"
    },
    {
      "id": "545eae6a60cb4c1cbb7aea9137afc5aa",
      "sender": "luke-jr",
      "payload": "and even if the same ISP owns a big range, that range may be very diverse?",
      "action": false,
      "timestamp": "2019-06-20T19:14:56+00:00"
    },
    {
      "id": "f54e5489e9f94b7cb2536df1cf33b94c",
      "sender": "wumpus",
      "payload": "but that's good enough",
      "action": false,
      "timestamp": "2019-06-20T19:15:09+00:00"
    },
    {
      "id": "6b84f6bad72245009ff2fd7427ff147b",
      "sender": "BlueMatt",
      "payload": "diverse how? against any practical attacks that grouping helps prevent, not diverse at all (mitms, sybils, etc)",
      "action": false,
      "timestamp": "2019-06-20T19:15:27+00:00"
    },
    {
      "id": "a7001527964f4fa292d59f70c8bac671",
      "sender": "wumpus",
      "payload": "we don't really want to include all the data in our github repo though",
      "action": false,
      "timestamp": "2019-06-20T19:15:37+00:00"
    },
    {
      "id": "4c0a48a87d16497799e1c42a54e45e65",
      "sender": "luke-jr",
      "payload": "BlueMatt: depends on the attack I guess",
      "action": false,
      "timestamp": "2019-06-20T19:16:04+00:00"
    },
    {
      "id": "ba1b799aae384676923ca4b924f16b3c",
      "sender": "wumpus",
      "payload": "so I guess this is some kind of challenge for the deterministic builds",
      "action": false,
      "timestamp": "2019-06-20T19:16:06+00:00"
    },
    {
      "id": "02a413adae074e589287a9c335a37914",
      "sender": "BlueMatt",
      "payload": "well we could incoporate a text file dump of a routing table into the build process",
      "action": false,
      "timestamp": "2019-06-20T19:16:12+00:00"
    },
    {
      "id": "a9bce2bbe7d940f787d5772e15162404",
      "sender": "BlueMatt",
      "payload": "thats not too hard",
      "action": false,
      "timestamp": "2019-06-20T19:16:13+00:00"
    },
    {
      "id": "8b652089b84d44d7ad6e6c3780bd9a09",
      "sender": "sipa",
      "payload": "so i've used a dump from BGP (which is... a gigabyte or so) to extract a mapping from prefixes to ASNs, and then developed a custom packed format to store just the mapping",
      "action": false,
      "timestamp": "2019-06-20T19:16:24+00:00"
    },
    {
      "id": "149d8f1887554c149f294c3d92e42db2",
      "sender": "wumpus",
      "payload": "yes, but it should be determinstic per version, without including it into the repo itself",
      "action": false,
      "timestamp": "2019-06-20T19:16:33+00:00"
    },
    {
      "id": "9cf00b8b4ed0432fb6477affb38d9824",
      "sender": "luke-jr",
      "payload": "we don't actually need the ASNs though, right? just some logic to decide whether to group by /16, /24, /8, etc",
      "action": false,
      "timestamp": "2019-06-20T19:16:54+00:00"
    },
    {
      "id": "09175296e5a44b3db6f574363f5080e0",
      "sender": "BlueMatt",
      "payload": "indeed, we'd have to agree on a source (we could use my dumps, or get them from one of several others who provide dumps, or get output from anyone's bird router)",
      "action": false,
      "timestamp": "2019-06-20T19:17:10+00:00"
    },
    {
      "id": "96bde2570c0c4a258e9b4141fcc672d5",
      "sender": "sipa",
      "payload": "luke-jr: correct; though consistency matters for things like addrman",
      "action": false,
      "timestamp": "2019-06-20T19:17:12+00:00"
    },
    {
      "id": "da524ba2549d48aaa13189dba841b685",
      "sender": "wumpus",
      "payload": "that does add some requirements, maybe it's not hard, but it's also not something we've done before",
      "action": false,
      "timestamp": "2019-06-20T19:17:13+00:00"
    },
    {
      "id": "854e763bf75048afb65a07a9ac95061e",
      "sender": "sipa",
      "payload": "as we don't want to change what number each range maps to too frequently",
      "action": false,
      "timestamp": "2019-06-20T19:17:24+00:00"
    },
    {
      "id": "b178a458d4184fa4b42d083455c0ee18",
      "sender": "luke-jr",
      "payload": "although maybe some ISPs have multiple subnets",
      "action": false,
      "timestamp": "2019-06-20T19:17:27+00:00"
    },
    {
      "id": "6acb6ab50ea94656b458e8aa9f4ef708",
      "sender": "sipa",
      "payload": "and ASN numbers are small",
      "action": false,
      "timestamp": "2019-06-20T19:17:32+00:00"
    },
    {
      "id": "1300aeffb5db46e7ac12800109ceaa23",
      "sender": "sipa",
      "payload": "(most are below 2^16, all are below 350000 or so)",
      "action": false,
      "timestamp": "2019-06-20T19:17:44+00:00"
    },
    {
      "id": "ab5f2a0d3f094d25bdf31176ea65ae1b",
      "sender": "wumpus",
      "payload": "luke-jr:yes, quite a few ISPs have non-consecutive subnets",
      "action": false,
      "timestamp": "2019-06-20T19:17:50+00:00"
    },
    {
      "id": "82331e292fb442cab4f9eb1a77a4e2f8",
      "sender": "sipa",
      "payload": "luke-jr: indeed, and that's actually by design",
      "action": false,
      "timestamp": "2019-06-20T19:18:02+00:00"
    },
    {
      "id": "8ac905ab2bfa4ddf904985805cdf09de",
      "sender": "sipa",
      "payload": "this would give most of AWS one number",
      "action": false,
      "timestamp": "2019-06-20T19:18:08+00:00"
    },
    {
      "id": "ba6532ec3c4e4edbaba163bdabc9a73b",
      "sender": "BlueMatt",
      "payload": "hmm, is there some attack whereby someone just flips their asn every 6 months per release and gets into several buckets? I mean at most you'd get one per six months",
      "action": false,
      "timestamp": "2019-06-20T19:18:21+00:00"
    },
    {
      "id": "5fc338346040444d903c797f3eef4be8",
      "sender": "sipa",
      "payload": "yeah, it's not terrible",
      "action": false,
      "timestamp": "2019-06-20T19:18:32+00:00"
    },
    {
      "id": "14c285f64ccc435fbbf09bfbdab248bf",
      "sender": "sipa",
      "payload": "just better to be consistent when possible",
      "action": false,
      "timestamp": "2019-06-20T19:18:37+00:00"
    },
    {
      "id": "d1bf84b759564e57bc9e03efe1d404d7",
      "sender": "BlueMatt",
      "payload": "which i guess is also plenty of time to register a new asn, buy some ips, and sell the old ones",
      "action": false,
      "timestamp": "2019-06-20T19:18:41+00:00"
    },
    {
      "id": "2f21f759a1b849e0a12aaa42ac068393",
      "sender": "sipa",
      "payload": "so i think a question for here is, what binary size increase is acceptable and/or is it a separate file with the map that can be replaced?",
      "action": false,
      "timestamp": "2019-06-20T19:19:05+00:00"
    },
    {
      "id": "e3e0dbcca67f445fba550c1251c1273c",
      "sender": "BlueMatt",
      "payload": "separate file seems ideal to me, but that has deployment concerns",
      "action": false,
      "timestamp": "2019-06-20T19:19:26+00:00"
    },
    {
      "id": "911be13dc3b642ed829f368ba62f8f31",
      "sender": "BlueMatt",
      "payload": "I dont think we could realistically say \"take this file that shipped with bitcoin core and copy it to your datadir on first run\"",
      "action": false,
      "timestamp": "2019-06-20T19:19:43+00:00"
    },
    {
      "id": "244eb36051e148b790b9cb38f60a51ed",
      "sender": "sipa",
      "payload": "and what kind of auditing is necessary for it... not everyone is able to extract a BGP dump and compare the result (and it wouldn't be consistent across dumps anyway)",
      "action": false,
      "timestamp": "2019-06-20T19:19:46+00:00"
    },
    {
      "id": "ee4f0153bbd5423684b1dcee13ac3be3",
      "sender": "BlueMatt",
      "payload": "we could get my dump, and a few other dumps and have a tool to compare them?",
      "action": false,
      "timestamp": "2019-06-20T19:20:09+00:00"
    },
    {
      "id": "a6ddb845b3484321b56f1d17f1174ac9",
      "sender": "BlueMatt",
      "payload": "there's several providers, so it should be doable",
      "action": false,
      "timestamp": "2019-06-20T19:20:18+00:00"
    },
    {
      "id": "cadd680ef2ce467eaa23b69d09ed5213",
      "sender": "sipa",
      "payload": "just a text list of prefix -> ASN mappings is just a few MB",
      "action": false,
      "timestamp": "2019-06-20T19:20:20+00:00"
    },
    {
      "id": "01ba0acdf0dc4def83708f8079a3a861",
      "sender": "sipa",
      "payload": "when gzipped",
      "action": false,
      "timestamp": "2019-06-20T19:20:27+00:00"
    },
    {
      "id": "683f600e1ada4f1e98b7b157a691fbcf",
      "sender": "BlueMatt",
      "payload": "eg you could get a bunch of dumps from https://rt-bgp.he.net/",
      "action": false,
      "timestamp": "2019-06-20T19:20:31+00:00"
    },
    {
      "id": "f843708a43164cfab7da6cb45ff046d6",
      "sender": "BlueMatt",
      "payload": "(including mine, indirectly)",
      "action": false,
      "timestamp": "2019-06-20T19:20:45+00:00"
    },
    {
      "id": "62decb55c46541238427312349579c58",
      "sender": "sipa",
      "payload": "so opinions?",
      "action": false,
      "timestamp": "2019-06-20T19:21:18+00:00"
    },
    {
      "id": "03fde3f3dcd54c0a8d077f4706376d27",
      "sender": "luke-jr",
      "payload": "maybe we should only do it for 4 of the 8 peers?",
      "action": false,
      "timestamp": "2019-06-20T19:21:36+00:00"
    },
    {
      "id": "32f3acccb4774c35a6b92bb60ada0ceb",
      "sender": "BlueMatt",
      "payload": "well I guess two hard proposals, pick one:",
      "action": false,
      "timestamp": "2019-06-20T19:21:36+00:00"
    },
    {
      "id": "9cf4888e44ea4ef884755bd08d86d012",
      "sender": "BlueMatt",
      "payload": "a) build it into the binary",
      "action": false,
      "timestamp": "2019-06-20T19:21:40+00:00"
    },
    {
      "id": "5d139c2cb7814be3ab378e84f7c6d779",
      "sender": "luke-jr",
      "payload": "in case ther'es a way to game it",
      "action": false,
      "timestamp": "2019-06-20T19:21:41+00:00"
    },
    {
      "id": "54a1c8b938e8477eb8080506d2b8ee84",
      "sender": "BlueMatt",
      "payload": "b) ship a file and (1) look in datadir, (2) if not there, look in the folder where bitcoind is being run from.",
      "action": false,
      "timestamp": "2019-06-20T19:21:59+00:00"
    },
    {
      "id": "4681932d7c25440bad3c0b16dd6a2270",
      "sender": "BlueMatt",
      "payload": "b) (3) if not, print warning and fall back to /16s",
      "action": false,
      "timestamp": "2019-06-20T19:22:10+00:00"
    },
    {
      "id": "925935a6a48c4ed89192798f6bf59cd9",
      "sender": "achow101",
      "payload": "is it possible to do both? i.e. build it in and have a separate file in datador",
      "action": false,
      "timestamp": "2019-06-20T19:22:15+00:00"
    },
    {
      "id": "cdadce9ca4b3402aa0c7cb064d1ecced",
      "sender": "sipa",
      "payload": "yeah",
      "action": false,
      "timestamp": "2019-06-20T19:22:22+00:00"
    },
    {
      "id": "e093ac4cd5cf49ef9f94944c7a5bfef2",
      "sender": "jnewbery",
      "payload": "I'd say not (a). We don't want to add a MB of data to the repo",
      "action": false,
      "timestamp": "2019-06-20T19:22:26+00:00"
    },
    {
      "id": "ac2af6a63b68441b828bfab3c1a5bf2a",
      "sender": "achow101",
      "payload": "so datadir file overrides built in",
      "action": false,
      "timestamp": "2019-06-20T19:22:26+00:00"
    },
    {
      "id": "80a5e1f8ed114962a8127575b949b0fd",
      "sender": "jnewbery",
      "payload": "do we want people to be able to override?",
      "action": false,
      "timestamp": "2019-06-20T19:22:41+00:00"
    },
    {
      "id": "a5811834f44448b2bdf13ea4c0e12672",
      "sender": "BlueMatt",
      "payload": "right, but its mostly a binary size question",
      "action": false,
      "timestamp": "2019-06-20T19:22:42+00:00"
    },
    {
      "id": "2ec8784b558c4483a2d5dd718f18260c",
      "sender": "sipa",
      "payload": "jnewbery: but the distribution should still include it",
      "action": false,
      "timestamp": "2019-06-20T19:22:44+00:00"
    },
    {
      "id": "27675072f50741598824a2f5764e4836",
      "sender": "wumpus",
      "payload": "well the build could fetch it somewhere else, it doesn't need to be in the repo",
      "action": false,
      "timestamp": "2019-06-20T19:22:49+00:00"
    },
    {
      "id": "38d9de5cc5b843159ec0665234404515",
      "sender": "jb55",
      "payload": "why does it have to be in-tree? couldn't it be a dependency?",
      "action": false,
      "timestamp": "2019-06-20T19:22:56+00:00"
    },
    {
      "id": "b481710137a44ba193885738a5f3a2f2",
      "sender": "jnewbery",
      "payload": "yes, i think the distribution should include it",
      "action": false,
      "timestamp": "2019-06-20T19:22:58+00:00"
    },
    {
      "id": "5c435fe020de4ff585d9bd3dd7df5deb",
      "sender": "jb55",
      "payload": "yeah",
      "action": false,
      "timestamp": "2019-06-20T19:22:58+00:00"
    },
    {
      "id": "ad93e2e5dad34be8a9f41d9739f1a2ab",
      "sender": "wumpus",
      "payload": "it definitely shouldn't be *",
      "action": false,
      "timestamp": "2019-06-20T19:22:59+00:00"
    },
    {
      "id": "62d7bb85326c46abbad53cff7a7d5d36",
      "sender": "BlueMatt",
      "payload": "jnewbery: doesnt *technically* have to be in the repo",
      "action": false,
      "timestamp": "2019-06-20T19:23:01+00:00"
    },
    {
      "id": "ded2e77fee5d4c029ddcb27b02fe9074",
      "sender": "luke-jr",
      "payload": "BlueMatt: data files shouldn't be in bin/",
      "action": false,
      "timestamp": "2019-06-20T19:23:13+00:00"
    },
    {
      "id": "1a088853532645f9a8507df21ef2dc16",
      "sender": "BlueMatt",
      "payload": "it could be in the binary without that, as a separate input to gitian",
      "action": false,
      "timestamp": "2019-06-20T19:23:14+00:00"
    },
    {
      "id": "7659115113ba4393ba1b2d943736bbeb",
      "sender": "BlueMatt",
      "payload": "luke-jr: if you're using a distribution, it should install it appropriately, if you're downloading the targz, then it can be wherever",
      "action": false,
      "timestamp": "2019-06-20T19:23:43+00:00"
    },
    {
      "id": "1911448af92c48559558e3c185865603",
      "sender": "luke-jr",
      "payload": "BlueMatt: datadir is per-user, so can't install there",
      "action": false,
      "timestamp": "2019-06-20T19:24:00+00:00"
    },
    {
      "id": "5e8a976061be4dce91fd0bab9687e73a",
      "sender": "BlueMatt",
      "payload": "further opinions?",
      "action": false,
      "timestamp": "2019-06-20T19:24:44+00:00"
    },
    {
      "id": "ed8eb69eb50f42b2969b546f468d2ca8",
      "sender": "jnewbery",
      "payload": "Do we want people to be able to supply their own. I think no",
      "action": false,
      "timestamp": "2019-06-20T19:25:11+00:00"
    },
    {
      "id": "3c9d91df3d3345b68d092b1ab89d2673",
      "sender": "BlueMatt",
      "payload": "luke-jr: sure, that doesnt mean its not allowed to be there? there's also a copy of the chain there, which is not per-user :p",
      "action": false,
      "timestamp": "2019-06-20T19:25:21+00:00"
    },
    {
      "id": "3924846dc43d4ffdb79df883d9763b8b",
      "sender": "sipa",
      "payload": "jnewbery: i see no reason not to allow that",
      "action": false,
      "timestamp": "2019-06-20T19:25:21+00:00"
    },
    {
      "id": "584b6ab2fa144be490b16895b32702d6",
      "sender": "luke-jr",
      "payload": "BlueMatt: it means the distro can't install it there",
      "action": false,
      "timestamp": "2019-06-20T19:25:41+00:00"
    },
    {
      "id": "cf6e9f8cd71b4f71896163cdb2b0b36c",
      "sender": "sipa",
      "payload": "we'd have the scripts to build the blob from a list of mappings in contrib/ i guess",
      "action": false,
      "timestamp": "2019-06-20T19:25:54+00:00"
    },
    {
      "id": "36399e30ded34a67a8df0b75b8a0ecc1",
      "sender": "wumpus",
      "payload": "could have an argument to point to where it is",
      "action": false,
      "timestamp": "2019-06-20T19:26:06+00:00"
    },
    {
      "id": "114add5a19a946f3af70e62047807b5f",
      "sender": "BlueMatt",
      "payload": "yes, definitely have to make it possible to generate your own, given the input is otherwise hard to audit",
      "action": false,
      "timestamp": "2019-06-20T19:26:19+00:00"
    },
    {
      "id": "84932761099e40229b5b75041c851d51",
      "sender": "BlueMatt",
      "payload": "luke-jr: yes, hence an option like -look-in-var",
      "action": false,
      "timestamp": "2019-06-20T19:26:32+00:00"
    },
    {
      "id": "bf3254e21a9e45feae026a545340fd61",
      "sender": "wumpus",
      "payload": "datadir would only be the default, like it is for other things too unless overridden",
      "action": false,
      "timestamp": "2019-06-20T19:26:51+00:00"
    },
    {
      "id": "f6ebd2fa21384607a81ade60ae9e2365",
      "sender": "luke-jr",
      "payload": "so force distros to patch it?",
      "action": false,
      "timestamp": "2019-06-20T19:27:55+00:00"
    },
    {
      "id": "d994c6550b2a4131ba1dd8d4b34f64ed",
      "sender": "wumpus",
      "payload": "but I think we're very much getting into specific implementation details now",
      "action": false,
      "timestamp": "2019-06-20T19:27:59+00:00"
    },
    {
      "id": "51b548f80d9f49c9ab1edccb91227866",
      "sender": "jnewbery",
      "payload": "because then bad people might supply a bogus network.dat (or whatever) file and tell people to use it",
      "action": false,
      "timestamp": "2019-06-20T19:28:00+00:00"
    },
    {
      "id": "b7f4ba09e38545db9bb05b739d1bd355",
      "sender": "wumpus",
      "payload": "well that's true for any file, like peers.dat too",
      "action": false,
      "timestamp": "2019-06-20T19:28:28+00:00"
    },
    {
      "id": "6c3fd699df4846218f46a8c90ee88284",
      "sender": "gwillen",
      "payload": "I think you could limit the damage a bad network.dat could do by putting sanity checks on it",
      "action": false,
      "timestamp": "2019-06-20T19:28:39+00:00"
    },
    {
      "id": "0a69215dc394407c9b254c9b9730fe04",
      "sender": "wumpus",
      "payload": "or like a malicious wallet",
      "action": false,
      "timestamp": "2019-06-20T19:28:40+00:00"
    },
    {
      "id": "230221339ebb41abb0b43e67cc3866e4",
      "sender": "gwillen",
      "payload": "e.g. no aggregating the entire internet into a single \"ASN\", that sort of thing",
      "action": false,
      "timestamp": "2019-06-20T19:28:52+00:00"
    },
    {
      "id": "7aa9e935e0524f56bd447706b5304a83",
      "sender": "sipa",
      "payload": "wumpus: are you talking about having it always as a separate file (which may be sourced from several locations), or having it built into the binary (with the option to source it from elsewhere)",
      "action": false,
      "timestamp": "2019-06-20T19:28:53+00:00"
    },
    {
      "id": "c754ae9ae63347ba9d89807d24cd6396",
      "sender": "wumpus",
      "payload": "if you get people to install bogus files into their datadir it's kind of bad",
      "action": false,
      "timestamp": "2019-06-20T19:28:55+00:00"
    },
    {
      "id": "ab39601b0cda42d0b888e261167eec49",
      "sender": "BlueMatt",
      "payload": "(hopefully, many of these classes of attacks can be further limited by better peer eviction logic, so hopefully thats not *that* easy)",
      "action": false,
      "timestamp": "2019-06-20T19:29:24+00:00"
    },
    {
      "id": "67ea4d18061e4e8b9e0ee8f43a69abfa",
      "sender": "wumpus",
      "payload": "sipa: the latter, I think",
      "action": false,
      "timestamp": "2019-06-20T19:29:33+00:00"
    },
    {
      "id": "11455477a01f49f4995fcb75b6159d92",
      "sender": "harding",
      "payload": "Perhaps it should start as a separate file and then, later, if it's working well it can be considered for direct inclusion in the binary.",
      "action": false,
      "timestamp": "2019-06-20T19:29:43+00:00"
    },
    {
      "id": "ef3dfeac0404453eaeb7917f32159be8",
      "sender": "wumpus",
      "payload": "sipa: I'm ok with including the data in the distributed binary, I just don't want it in the repository",
      "action": false,
      "timestamp": "2019-06-20T19:29:55+00:00"
    },
    {
      "id": "d1b0468f8de042ea90ab049a21538e3f",
      "sender": "sipa",
      "payload": "ok fair",
      "action": false,
      "timestamp": "2019-06-20T19:30:00+00:00"
    },
    {
      "id": "849a61d699fa45ed95ad0c9719bf490a",
      "sender": "wumpus",
      "payload": "harding: good point too",
      "action": false,
      "timestamp": "2019-06-20T19:30:02+00:00"
    },
    {
      "id": "0444be62925b4c2eb2af05de1c467742",
      "sender": "wumpus",
      "payload": "first add support for this",
      "action": false,
      "timestamp": "2019-06-20T19:30:13+00:00"
    },
    {
      "id": "e3685b68e2e4489eb92b9dcc39f04b81",
      "sender": "wumpus",
      "payload": "then the rest later",
      "action": false,
      "timestamp": "2019-06-20T19:30:16+00:00"
    },
    {
      "id": "87a1fda19a96407fa024d1fa10475bac",
      "sender": "sipa",
      "payload": "yeah",
      "action": false,
      "timestamp": "2019-06-20T19:31:53+00:00"
    },
    {
      "id": "370c6d78c2a84f8a8c7c2791d3ffb9cf",
      "sender": "wumpus",
      "payload": "#topic Requiring 2FA for bitcoin orgs on GH (fanquake)",
      "action": false,
      "timestamp": "2019-06-20T19:33:02+00:00"
    },
    {
      "id": "b810c480dce74b8d8b6167d2c7b5470d",
      "sender": "jonasschnelli",
      "payload": "I guess I we should disable sms 2fa recovery...",
      "action": false,
      "timestamp": "2019-06-20T19:33:35+00:00"
    },
    {
      "id": "84b12b0bf8a24a4da94a4cf8f43a03b7",
      "sender": "luke-jr",
      "payload": "eh, maybe for people with push? it doesn't really matter for most of us",
      "action": false,
      "timestamp": "2019-06-20T19:33:49+00:00"
    },
    {
      "id": "520226f93dbe45658279f5042bfa5c83",
      "sender": "luke-jr",
      "payload": "GH doesn't even check 2FA all that often either",
      "action": false,
      "timestamp": "2019-06-20T19:34:13+00:00"
    },
    {
      "id": "abff3b43a4b34da9b546486f263c89ae",
      "sender": "BlueMatt",
      "payload": "i mean push is pgp-signed (at least in theory)",
      "action": false,
      "timestamp": "2019-06-20T19:34:15+00:00"
    },
    {
      "id": "c3fce494590741f0a13b66d2354df41f",
      "sender": "BlueMatt",
      "payload": "matters most for acks",
      "action": false,
      "timestamp": "2019-06-20T19:34:19+00:00"
    },
    {
      "id": "e60be5a23e0b45829a93a430434ef6bc",
      "sender": "wumpus",
      "payload": "jonasschnelli: so is that possible on an organization?",
      "action": false,
      "timestamp": "2019-06-20T19:34:22+00:00"
    },
    {
      "id": "a06b98a5170141e98989f408004d7eaa",
      "sender": "BlueMatt",
      "payload": "but, yea, I think I've not had to re-login to github in...years?",
      "action": false,
      "timestamp": "2019-06-20T19:34:37+00:00"
    },
    {
      "id": "55556886d0714f37bb3ad47b691e6992",
      "sender": "jonasschnelli",
      "payload": "no... I think need to be done on an individual level",
      "action": false,
      "timestamp": "2019-06-20T19:34:42+00:00"
    },
    {
      "id": "47eb7a2b17de49a5b81ff3978f695d2c",
      "sender": "luke-jr",
      "payload": "BlueMatt: GitHub being trusted with ACKs is a problem in itself :x",
      "action": false,
      "timestamp": "2019-06-20T19:34:45+00:00"
    },
    {
      "id": "07de1c7a8ece44eda76d65a0b3839f5c",
      "sender": "BlueMatt",
      "payload": "indeed",
      "action": false,
      "timestamp": "2019-06-20T19:34:57+00:00"
    },
    {
      "id": "e86e26bc575d4c23a7cec6528df71090",
      "sender": "jeremyrubin",
      "payload": "acks on the blockchain",
      "action": true,
      "timestamp": "2019-06-20T19:36:02+00:00"
    },
    {
      "id": "faade255fd114b94965a107ed9a1a7bc",
      "sender": "luke-jr",
      "payload": "(why nobody sees it)",
      "action": false,
      "timestamp": "2019-06-20T19:36:13+00:00"
    },
    {
      "id": "1d4783f2336d4aad93109d6efb8544d7",
      "sender": "BlueMatt",
      "payload": "-> nap",
      "action": true,
      "timestamp": "2019-06-20T19:36:59+00:00"
    },
    {
      "id": "4b1fe4e7096f4d019c5c10cd241cc295",
      "sender": "wumpus",
      "payload": "I don't think there's actually much to discuss here: in any case, if you read this and haven't enabled 2FA please do so if possible",
      "action": false,
      "timestamp": "2019-06-20T19:37:00+00:00"
    },
    {
      "id": "5778a95258f44a7a8294e33f7c56cf54",
      "sender": "jonasschnelli",
      "payload": "Yes. And disable phone 2fa recovery",
      "action": false,
      "timestamp": "2019-06-20T19:37:21+00:00"
    },
    {
      "id": "bc52302ad2a3459facdf1e22d4b4cd22",
      "sender": "jonasschnelli",
      "payload": "(probably use FIDO key and recovery code for backup)",
      "action": false,
      "timestamp": "2019-06-20T19:37:45+00:00"
    },
    {
      "id": "87ce4417d8c0434f94f4092ebea4cf32",
      "sender": "wumpus",
      "payload": "ok, any other topics? I think we're through",
      "action": false,
      "timestamp": "2019-06-20T19:38:32+00:00"
    },
    {
      "id": "0c7008de579a4d898890740cc980770f",
      "sender": "phantomcircuit",
      "payload": "jonasschnelli, at an organization level you can only enforce that some form of 2fa is enabled, not which type",
      "action": false,
      "timestamp": "2019-06-20T19:39:30+00:00"
    },
    {
      "id": "b02e9f7ff96c4fbe9fab69172101962c",
      "sender": "sipa",
      "payload": "oh also short reminder we're going to meet with github tomorrow, if there are any things we should bring up, see https://github.com/bitcoin/bitcoin/issues/15847",
      "action": false,
      "timestamp": "2019-06-20T19:41:15+00:00"
    },
    {
      "id": "32ef3c5213cf42b5a77f74780f5354ee",
      "sender": "wumpus",
      "payload": "good to know sipa",
      "action": false,
      "timestamp": "2019-06-20T19:44:08+00:00"
    },
    {
      "id": "6cd5a36f448f4aaaaddd92306bf1ea9d",
      "sender": "wumpus",
      "payload": "thanks everyone",
      "action": false,
      "timestamp": "2019-06-20T19:44:20+00:00"
    },
    {
      "id": "a17ae8a200934c85af9f8af1b109d642",
      "sender": "wumpus",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2019-06-20T19:44:21+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "77d70cee2d384db880f4061256922d27",
        "sender": "wumpus",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2019-06-20T19:01:09+00:00"
      },
      "operand": null,
      "id": "77d70cee2d384db880f4061256922d27",
      "timestamp": "2019-06-20T19:01:09+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "56cb52de0fb24cf7992d1efb259e889e",
        "sender": "wumpus",
        "payload": "#topic High priority for review",
        "action": false,
        "timestamp": "2019-06-20T19:04:09+00:00"
      },
      "operand": "High priority for review",
      "id": "56cb52de0fb24cf7992d1efb259e889e",
      "timestamp": "2019-06-20T19:04:09+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "23a2de0365fc47499e80b714d8565e57",
        "sender": "wumpus",
        "payload": "https://github.com/bitcoin/bitcoin/projects/8   5 blockers, 2 bugfixes and 6(!) things chasing concept ack",
        "action": false,
        "timestamp": "2019-06-20T19:04:51+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/projects/8",
      "id": "23a2de0365fc47499e80b714d8565e57",
      "timestamp": "2019-06-20T19:04:51+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "eddac4a0151e46a88cb099e32b539970",
        "sender": "wumpus",
        "payload": "#topic Bitcoin Core PR review club (jnewbery)",
        "action": false,
        "timestamp": "2019-06-20T19:07:50+00:00"
      },
      "operand": "Bitcoin Core PR review club (jnewbery)",
      "id": "eddac4a0151e46a88cb099e32b539970",
      "timestamp": "2019-06-20T19:07:50+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "25fdc37aa2f84de3881bd20b38c68ec0",
        "sender": "wumpus",
        "payload": "https://bitcoin-core-review-club.github.io/",
        "action": false,
        "timestamp": "2019-06-20T19:08:07+00:00"
      },
      "operand": "https://bitcoin-core-review-club.github.io/",
      "id": "25fdc37aa2f84de3881bd20b38c68ec0",
      "timestamp": "2019-06-20T19:08:07+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "c5f367b5d1044c309a2c1653abd34ebf",
        "sender": "wumpus",
        "payload": "#topic ASN blobs (BlueMatt)",
        "action": false,
        "timestamp": "2019-06-20T19:10:53+00:00"
      },
      "operand": "ASN blobs (BlueMatt)",
      "id": "c5f367b5d1044c309a2c1653abd34ebf",
      "timestamp": "2019-06-20T19:10:53+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "370c6d78c2a84f8a8c7c2791d3ffb9cf",
        "sender": "wumpus",
        "payload": "#topic Requiring 2FA for bitcoin orgs on GH (fanquake)",
        "action": false,
        "timestamp": "2019-06-20T19:33:02+00:00"
      },
      "operand": "Requiring 2FA for bitcoin orgs on GH (fanquake)",
      "id": "370c6d78c2a84f8a8c7c2791d3ffb9cf",
      "timestamp": "2019-06-20T19:33:02+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "a17ae8a200934c85af9f8af1b109d642",
        "sender": "wumpus",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2019-06-20T19:44:21+00:00"
      },
      "operand": null,
      "id": "a17ae8a200934c85af9f8af1b109d642",
      "timestamp": "2019-06-20T19:44:21+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}