From 14de34a19bedfff17a5c8443860244b019e0ce47 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Sun, 30 Jul 2023 14:12:44 -0400 Subject: [PATCH 01/48] handle pull responses --- src/gossip/gossip_service.zig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 8b328cd5e..a678d9148 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -206,7 +206,12 @@ pub const GossipService = struct { .PushMessage => |*push| { logger.debugf("got a push message: {any}", .{protocol_message}); const values = push[1]; - handle_push_message(crds_table, values, logger); + insert_crds_values(crds_table, values, logger); + }, + .PullResponse => |*pull| { + logger.debugf("got a pull message: {any}", .{protocol_message}); + const values = pull[1]; + insert_crds_values(crds_table, values, logger); }, else => { logger.debugf("got a protocol message: {any}", .{protocol_message}); @@ -215,7 +220,7 @@ pub const GossipService = struct { } } - pub fn handle_push_message(crds_table: *CrdsTable, values: []crds.CrdsValue, logger: *Logger) void { + pub fn insert_crds_values(crds_table: *CrdsTable, values: []crds.CrdsValue, logger: *Logger) void { var now = get_wallclock(); for (values) |value| { @@ -274,7 +279,6 @@ test "gossip.gossip_service: process contact_info push packet" { var buf = [_]u8{0} ** PACKET_DATA_SIZE; var bytes = try bincode.writeToSlice(buf[0..], msg, bincode.Params.standard); const packet = Packet.init(peer, buf, bytes.len); - packet_channel.send(packet); // correct insertion into table From d183587c931399920634a4f761008b71135204ad Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 31 Jul 2023 11:38:53 -0400 Subject: [PATCH 02/48] add bloom helper fcns --- src/bloom/bloom.zig | 84 +++++++++++++++++++++++++++++++++++++++-- src/gossip/crds.zig | 30 --------------- src/gossip/protocol.zig | 4 +- src/gossip/pull.zig | 45 ++++++++++++++++++++++ src/gossip/readme.md | 5 +++ 5 files changed, 133 insertions(+), 35 deletions(-) create mode 100644 src/gossip/pull.zig diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index 62563dda7..f6d80ad86 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -9,6 +9,8 @@ const bincode = @import("../bincode/bincode.zig"); const FnvHasher = @import("../crypto/fnv.zig").FnvHasher; const testing = std.testing; +const RndGen = std.rand.DefaultPrng; + /// A bloom filter whose bitset is made up of u64 blocks pub const Bloom = struct { keys: ArrayList(u64), @@ -23,14 +25,40 @@ pub const Bloom = struct { const Self = @This(); - pub fn init(allocator: std.mem.Allocator, num_bits: u64) Self { + pub fn init(allocator: std.mem.Allocator, n_bits: u64) Self { // need to be power of 2 for serialization to match rust - if (num_bits != 0) { - std.debug.assert((num_bits & (num_bits - 1) == 0)); + var bits = n_bits; + if (n_bits != 0) { + if (n_bits & (n_bits - 1) != 0) { + // nearest power of two + const _n_bits = std.math.pow(u64, 2, std.math.log2(n_bits)); + std.debug.print("rounding n_bits of bloom from {any} to {any}\n", .{ n_bits, _n_bits }); + bits = _n_bits; + } } + return Self{ .keys = ArrayList(u64).init(allocator), - .bits = DynamicBitSet.initEmpty(allocator, num_bits) catch unreachable, + .bits = DynamicBitSet.initEmpty(allocator, bits) catch unreachable, + .num_bits_set = 0, + }; + } + + pub fn new(alloc: std.mem.Allocator, keys: ArrayList(u64), n_bits: u64) Self { + // need to be power of 2 for serialization to match rust + var bits = n_bits; + if (n_bits != 0) { + if (n_bits & (n_bits - 1) != 0) { + // nearest power of two + const _n_bits = std.math.pow(u64, 2, std.math.log2(n_bits) + 1); + std.debug.print("rounding n_bits of bloom from {any} to {any}\n", .{ n_bits, _n_bits }); + bits = _n_bits; + } + } + + return Self{ + .keys = keys, + .bits = DynamicBitSet.initEmpty(alloc, n_bits) catch unreachable, .num_bits_set = 0, }; } @@ -63,6 +91,43 @@ pub const Bloom = struct { hasher.update(bytes); return hasher.final(); } + + pub fn random(alloc: std.mem.Allocator, num_items: usize, false_rate: f64, max_bits: usize) !Self { + const n_items_f: f64 = @floatFromInt(num_items); + const m = Bloom.num_bits(n_items_f, false_rate); + const n_bits = @max(1, @min(@as(usize, @intFromFloat(m)), max_bits)); + const n_keys = Bloom.num_keys(@floatFromInt(n_bits), n_items_f); + + var rnd = RndGen.init(0); + var keys = try ArrayList(u64).initCapacity(alloc, n_keys); + for (0..n_keys) |_| { + const v = rnd.random().int(u64); + try keys.append(v); + } + + return Bloom.new(alloc, keys, n_bits); + } + + fn num_bits(num_items: f64, false_rate: f64) f64 { + const n = num_items; + const p = false_rate; + const two: f64 = 2; + + // const d: f64 = -4.804530139182015e-01 + const d: f64 = std.math.ln(@as(f64, 1) / (std.math.pow(f64, two, std.math.ln(two)))); + return std.math.ceil((n * std.math.ln(p)) / d); + } + + fn num_keys(n_bits: f64, num_items: f64) usize { + const n = num_items; + const m = n_bits; + + if (n == 0) { + return 0; + } else { + return @intFromFloat(@max(@as(f64, 1), std.math.round((m / n) * std.math.ln(@as(f64, 2))))); + } + } }; fn bincode_serialize_bit_vec(writer: anytype, data: anytype, params: bincode.Params) !void { @@ -81,6 +146,17 @@ fn bincode_deserialize_bit_vec(allocator: ?std.mem.Allocator, comptime T: type, return dynamic_bitset; } +test "bloom: helper fcns match rust" { + const n_bits = Bloom.num_bits(100.2, 1e-5); + try testing.expectEqual(@as(f64, 2402), n_bits); + + const n_keys = Bloom.num_keys(100.2, 10); + try testing.expectEqual(@as(usize, 7), n_keys); + + var bloom = try Bloom.random(std.testing.allocator, 100, 0.1, 10000); + defer bloom.deinit(); +} + test "bloom: serializes/deserializes correctly" { var bloom = Bloom.init(testing.allocator, 0); diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index f3dd081ac..ad55605e4 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -18,26 +18,6 @@ pub fn get_wallclock() u64 { return @intCast(std.time.milliTimestamp()); } -pub const CrdsFilter = struct { - filter: Bloom, - mask: u64, - mask_bits: u32, - - const Self = @This(); - - pub fn init(allocator: std.mem.Allocator) Self { - return Self{ - .filter = Bloom.init(allocator, 0), - .mask = 18_446_744_073_709_551_615, - .mask_bits = 0, - }; - } - - pub fn deinit(self: *Self) void { - self.filter.deinit(); - } -}; - pub const CrdsVersionedValue = struct { ordinal: u64, value: CrdsValue, @@ -494,16 +474,6 @@ test "gossip.crds: test CrdsValue label() and id() methods" { try std.testing.expect(crds_value.label().LegacyContactInfo.equals(&id)); } -test "gossip.crds: default crds filter matches rust bytes" { - const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; - var filter = CrdsFilter.init(std.testing.allocator); - defer filter.deinit(); - - var buf = [_]u8{0} ** 1024; - var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); - try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); -} - test "gossip.crds: pubkey matches rust" { var kp_bytes = [_]u8{1} ** 32; const kp = try KeyPair.create(kp_bytes); diff --git a/src/gossip/protocol.zig b/src/gossip/protocol.zig index c26e84adc..68bbc5ddc 100644 --- a/src/gossip/protocol.zig +++ b/src/gossip/protocol.zig @@ -9,11 +9,13 @@ const SocketAddr = @import("net.zig").SocketAddr; const crds = @import("crds.zig"); const CrdsValue = crds.CrdsValue; const CrdsData = crds.CrdsData; -const CrdsFilter = crds.CrdsFilter; const Version = crds.Version; const LegacyVersion2 = crds.LegacyVersion2; const LegacyContactInfo = crds.LegacyContactInfo; +const pull_import = @import("pull.zig"); +const CrdsFilter = pull_import.CrdsFilter; + const Option = @import("../option.zig").Option; const DefaultPrng = std.rand.DefaultPrng; const KeyPair = std.crypto.sign.Ed25519.KeyPair; diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig new file mode 100644 index 000000000..7c467f3fe --- /dev/null +++ b/src/gossip/pull.zig @@ -0,0 +1,45 @@ +const std = @import("std"); +const SocketAddr = @import("net.zig").SocketAddr; +const Tuple = std.meta.Tuple; +const Hash = @import("../core/hash.zig").Hash; +const Signature = @import("../core/signature.zig").Signature; +const Transaction = @import("../core/transaction.zig").Transaction; +const Slot = @import("../core/slot.zig").Slot; +const Option = @import("../option.zig").Option; +const ContactInfo = @import("node.zig").ContactInfo; +const bincode = @import("../bincode/bincode.zig"); +const ArrayList = std.ArrayList; +const ArrayListConfig = @import("../utils/arraylist.zig").ArrayListConfig; +const Bloom = @import("../bloom/bloom.zig").Bloom; +const KeyPair = std.crypto.sign.Ed25519.KeyPair; +const Pubkey = @import("../core/pubkey.zig").Pubkey; + +pub const CrdsFilter = struct { + filter: Bloom, + mask: u64, + mask_bits: u32, + + const Self = @This(); + + pub fn init(allocator: std.mem.Allocator) Self { + return Self{ + .filter = Bloom.init(allocator, 0), + .mask = 18_446_744_073_709_551_615, + .mask_bits = 0, + }; + } + + pub fn deinit(self: *Self) void { + self.filter.deinit(); + } +}; + +test "gossip.crds: default crds filter matches rust bytes" { + const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; + var filter = CrdsFilter.init(std.testing.allocator); + defer filter.deinit(); + + var buf = [_]u8{0} ** 1024; + var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); + try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); +} diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 63f10a0db..75d43de41 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -9,3 +9,8 @@ This function is called and `spawn`ed and is a long running process. It's where ### `ClusterInfo::run_listen` - Listens for Packet's to process This function `spawn`ed and is a long running process. It listens to the packet receiver channel and then processes packets as they're pushed. + +## File outline + +- `crds_table.zig`: where gossip data is stored +- `crds.zig`: various gossip data structure definitions \ No newline at end of file From e9162be7461bf7f9782b2514851e854005b01c4d Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 31 Jul 2023 21:50:52 -0400 Subject: [PATCH 03/48] add CrdsFilterSet functionality + more tests --- src/bloom/bloom.zig | 35 ++++++----------------- src/gossip/pull.zig | 69 +++++++++++++++++++++++++++++++++++++++++++-- src/lib.zig | 1 + 3 files changed, 76 insertions(+), 29 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index f6d80ad86..3e93998a4 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -25,26 +25,7 @@ pub const Bloom = struct { const Self = @This(); - pub fn init(allocator: std.mem.Allocator, n_bits: u64) Self { - // need to be power of 2 for serialization to match rust - var bits = n_bits; - if (n_bits != 0) { - if (n_bits & (n_bits - 1) != 0) { - // nearest power of two - const _n_bits = std.math.pow(u64, 2, std.math.log2(n_bits)); - std.debug.print("rounding n_bits of bloom from {any} to {any}\n", .{ n_bits, _n_bits }); - bits = _n_bits; - } - } - - return Self{ - .keys = ArrayList(u64).init(allocator), - .bits = DynamicBitSet.initEmpty(allocator, bits) catch unreachable, - .num_bits_set = 0, - }; - } - - pub fn new(alloc: std.mem.Allocator, keys: ArrayList(u64), n_bits: u64) Self { + pub fn init(alloc: std.mem.Allocator, n_bits: u64, keys: ?ArrayList(u64)) Self { // need to be power of 2 for serialization to match rust var bits = n_bits; if (n_bits != 0) { @@ -57,7 +38,7 @@ pub const Bloom = struct { } return Self{ - .keys = keys, + .keys = keys orelse ArrayList(u64).init(alloc), .bits = DynamicBitSet.initEmpty(alloc, n_bits) catch unreachable, .num_bits_set = 0, }; @@ -102,10 +83,10 @@ pub const Bloom = struct { var keys = try ArrayList(u64).initCapacity(alloc, n_keys); for (0..n_keys) |_| { const v = rnd.random().int(u64); - try keys.append(v); + keys.appendAssumeCapacity(v); } - return Bloom.new(alloc, keys, n_bits); + return Bloom.init(alloc, n_bits, keys); } fn num_bits(num_items: f64, false_rate: f64) f64 { @@ -158,7 +139,7 @@ test "bloom: helper fcns match rust" { } test "bloom: serializes/deserializes correctly" { - var bloom = Bloom.init(testing.allocator, 0); + var bloom = Bloom.init(testing.allocator, 0, null); var buf: [10000]u8 = undefined; var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); @@ -168,7 +149,7 @@ test "bloom: serializes/deserializes correctly" { } test "bloom: serializes/deserializes correctly with set bits" { - var bloom = Bloom.init(testing.allocator, 128); + var bloom = Bloom.init(testing.allocator, 128, null); try bloom.add_key(10); // required for memory leaks defer bloom.deinit(); @@ -184,7 +165,7 @@ test "bloom: serializes/deserializes correctly with set bits" { test "bloom: rust: serialized bytes equal rust (no keys)" { // note: need to init with len 2^i - var bloom = Bloom.init(testing.allocator, 128); + var bloom = Bloom.init(testing.allocator, 128, null); defer bloom.deinit(); try bloom.add_key(1); @@ -200,7 +181,7 @@ test "bloom: rust: serialized bytes equal rust (no keys)" { } test "bloom: rust: serialized bytes equal rust (multiple keys)" { - var bloom = Bloom.init(testing.allocator, 128); + var bloom = Bloom.init(testing.allocator, 128, null); defer bloom.deinit(); try bloom.add_key(1); diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 7c467f3fe..bfcb94188 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -13,6 +13,43 @@ const ArrayListConfig = @import("../utils/arraylist.zig").ArrayListConfig; const Bloom = @import("../bloom/bloom.zig").Bloom; const KeyPair = std.crypto.sign.Ed25519.KeyPair; const Pubkey = @import("../core/pubkey.zig").Pubkey; +const ln = std.math.ln; +const exp = std.math.exp; + +pub const FALSE_RATE: f64 = 0.1; +pub const KEYS: f64 = 8; + +pub const CrdsFilterSet = struct { + filters: ArrayList(Bloom), + mask_bits: u32, + + const Self = @This(); + + pub fn init(alloc: std.mem.Allocator, num_items: usize, max_bytes: usize) !Self { + var max_bits: f64 = @floatFromInt(max_bytes * 8); + var max_items = CrdsFilter.compute_max_items(max_bits, FALSE_RATE, KEYS); + var mask_bits = CrdsFilter.compute_mask_bits(@floatFromInt(num_items), max_bits); + + const n_filters = mask_bits << 1; + var filters = try ArrayList(Bloom).initCapacity(alloc, n_filters); + for (0..n_filters) |_| { + var filter = try Bloom.random(alloc, @intFromFloat(max_items), FALSE_RATE, @intFromFloat(max_bits)); + filters.appendAssumeCapacity(filter); + } + + return Self{ + .filters = filters, + .mask_bits = mask_bits, + }; + } + + pub fn deinit(self: *Self) void { + for (self.filters.items) |*f| { + f.deinit(); + } + self.filters.deinit(); + } +}; pub const CrdsFilter = struct { filter: Bloom, @@ -23,18 +60,46 @@ pub const CrdsFilter = struct { pub fn init(allocator: std.mem.Allocator) Self { return Self{ - .filter = Bloom.init(allocator, 0), + .filter = Bloom.init(allocator, 0, null), .mask = 18_446_744_073_709_551_615, .mask_bits = 0, }; } + pub fn compute_mask_bits(num_items: f64, max: f64) u32 { + return @intFromFloat(@max(0, (std.math.ceil(std.math.log2(num_items / max))))); + } + + pub fn compute_max_items(max_bits: f64, false_rate: f64, num_keys: f64) f64 { + const m = max_bits; + const p = false_rate; + const k = num_keys; + return std.math.ceil(m / (-k / ln(@as(f64, 1) - exp(ln(p) / k)))); + } + pub fn deinit(self: *Self) void { self.filter.deinit(); } }; -test "gossip.crds: default crds filter matches rust bytes" { +test "gossip.pull: CrdsFilterSet deinits correct" { + var filter_set = try CrdsFilterSet.init(std.testing.allocator, 100, 200); + defer filter_set.deinit(); +} + +test "gossip.pull: helper functions are correct" { + { + const v = CrdsFilter.compute_max_items(100.5, 0.1, 10.0); + try std.testing.expectEqual(@as(f64, 16), v); + } + + { + const v = CrdsFilter.compute_mask_bits(800, 100); + try std.testing.expectEqual(@as(usize, 3), v); + } +} + +test "gossip.pull: crds filter matches rust bytes" { const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; var filter = CrdsFilter.init(std.testing.allocator); defer filter.deinit(); diff --git a/src/lib.zig b/src/lib.zig index 62415294e..57fc99079 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -24,6 +24,7 @@ pub const gossip = struct { pub usingnamespace @import("gossip/node.zig"); pub usingnamespace @import("gossip/packet.zig"); pub usingnamespace @import("gossip/protocol.zig"); + pub usingnamespace @import("gossip/pull.zig"); }; pub const bloom = struct { From 730881c921c3346503eed1933f0b2630308eef51 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 31 Jul 2023 22:08:20 -0400 Subject: [PATCH 04/48] fix dangling pointer in crds parsing --- src/gossip/crds_table.zig | 45 +++++++++++++++++++---------------- src/gossip/gossip_service.zig | 3 ++- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 2b37f7fcf..3b87f51ec 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -46,11 +46,15 @@ pub const CrdsError = error{ /// are found, the entry with the largest wallclock time (newest) is stored. pub const CrdsTable = struct { store: AutoArrayHashMap(CrdsValueLabel, CrdsVersionedValue), + + // special types tracked with their index contact_infos: AutoArrayHashMap(usize, void), // hashset for O(1) insertion/removal - shred_versions: AutoHashMap(Pubkey, u16), votes: AutoArrayHashMap(usize, usize), epoch_slots: AutoArrayHashMap(usize, usize), duplicate_shreds: AutoArrayHashMap(usize, usize), + shred_versions: AutoHashMap(Pubkey, u16), + + // head of the store cursor: usize, const Self = @This(); @@ -149,10 +153,8 @@ pub const CrdsTable = struct { } } - pub fn get_votes_with_cursor(self: *Self, caller_cursor: *usize) ![]*CrdsVersionedValue { + pub fn get_votes_with_cursor(self: *Self, buf: []*CrdsVersionedValue, caller_cursor: *usize) ![]*CrdsVersionedValue { const keys = self.votes.keys(); - // initialize this buffer once in struct and re-use on each call? - var buf: [MAX_N_VOTES]*CrdsVersionedValue = undefined; // max N votes per query (20) var index: usize = 0; for (keys) |key| { if (key < caller_cursor.*) { @@ -163,7 +165,7 @@ pub const CrdsTable = struct { buf[index] = &entry; index += 1; - if (index == MAX_N_VOTES) { + if (index == buf.len) { break; } } @@ -172,9 +174,8 @@ pub const CrdsTable = struct { return buf[0..index]; } - pub fn get_epoch_slots_with_cursor(self: *Self, caller_cursor: *usize) ![]*CrdsVersionedValue { + pub fn get_epoch_slots_with_cursor(self: *Self, buf: []*CrdsVersionedValue, caller_cursor: *usize) ![]*CrdsVersionedValue { const keys = self.epoch_slots.keys(); - var buf: [MAX_N_EPOCH_SLOTS]*CrdsVersionedValue = undefined; var index: usize = 0; for (keys) |key| { if (key < caller_cursor.*) { @@ -185,7 +186,7 @@ pub const CrdsTable = struct { buf[index] = &entry; index += 1; - if (index == MAX_N_EPOCH_SLOTS) { + if (index == buf.len) { break; } } @@ -194,9 +195,8 @@ pub const CrdsTable = struct { return buf[0..index]; } - pub fn get_duplicate_shreds_with_cursor(self: *Self, caller_cursor: *usize) ![]*CrdsVersionedValue { + pub fn get_duplicate_shreds_with_cursor(self: *Self, buf: []*CrdsVersionedValue, caller_cursor: *usize) ![]*CrdsVersionedValue { const keys = self.duplicate_shreds.keys(); - var buf: [MAX_N_DUP_SHREDS]*CrdsVersionedValue = undefined; var index: usize = 0; for (keys) |key| { if (key < caller_cursor.*) { @@ -207,7 +207,7 @@ pub const CrdsTable = struct { buf[index] = &entry; index += 1; - if (index == MAX_N_DUP_SHREDS) { + if (index == buf.len) { break; } } @@ -216,17 +216,18 @@ pub const CrdsTable = struct { return buf[0..index]; } - pub fn get_contact_infos(self: *const Self) ![]*CrdsVersionedValue { - var entry_ptrs: [MAX_N_CONTACT_INFOS]*CrdsVersionedValue = undefined; - const size = @min(self.contact_infos.count(), MAX_N_CONTACT_INFOS); + pub fn get_contact_infos(self: *const Self, buf: []*CrdsVersionedValue) ![]*CrdsVersionedValue { const store_values = self.store.iterator().values; const contact_indexs = self.contact_infos.iterator().keys; + + const size = @min(self.contact_infos.count(), buf.len); + for (0..size) |i| { const index = contact_indexs[i]; - const entry = &store_values[index]; - entry_ptrs[i] = entry; + const entry = &store_values[index]; // does this dangle? + buf[i] = entry; } - return entry_ptrs[0..size]; + return buf[0..size]; } }; @@ -262,7 +263,8 @@ test "gossip.crds_table: insert and get votes" { try crds_table.insert(crds_value, 0); var cursor: usize = 0; - var votes = try crds_table.get_votes_with_cursor(&cursor); + var buf: [100]*CrdsVersionedValue = undefined; + var votes = try crds_table.get_votes_with_cursor(&buf, &cursor); try std.testing.expect(votes.len == 1); try std.testing.expect(cursor == 1); @@ -275,7 +277,7 @@ test "gossip.crds_table: insert and get votes" { }, kp); try crds_table.insert(crds_value, 1); - votes = try crds_table.get_votes_with_cursor(&cursor); + votes = try crds_table.get_votes_with_cursor(&buf, &cursor); try std.testing.expect(votes.len == 1); try std.testing.expect(cursor == 2); } @@ -312,7 +314,8 @@ test "gossip.crds_table: insert and get contact_info" { try crds_table.insert(crds_value, 0); // test retrieval - var nodes = try crds_table.get_contact_infos(); + var buf: [100]*CrdsVersionedValue = undefined; + var nodes = try crds_table.get_contact_infos(&buf); try std.testing.expect(nodes.len == 1); try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); @@ -325,7 +328,7 @@ test "gossip.crds_table: insert and get contact_info" { try crds_table.insert(crds_value, 0); // check retrieval - nodes = try crds_table.get_contact_infos(); + nodes = try crds_table.get_contact_infos(&buf); try std.testing.expect(nodes.len == 1); try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == 2); } diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index a678d9148..1dc68f1e7 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -282,8 +282,9 @@ test "gossip.gossip_service: process contact_info push packet" { packet_channel.send(packet); // correct insertion into table + var buf2: [100]*crds.CrdsVersionedValue = undefined; std.time.sleep(std.time.ns_per_s); - var res = try crds_table.get_contact_infos(); + var res = try crds_table.get_contact_infos(&buf2); try std.testing.expect(res.len == 1); packet_channel.close(); From 7c1fd058c7540528d658d9c47647860063e55695 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 1 Aug 2023 09:54:14 -0400 Subject: [PATCH 05/48] add filter set export to filters --- src/bloom/bloom.zig | 13 ++++++- src/gossip/crds_table.zig | 2 +- src/gossip/pull.zig | 81 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 92 insertions(+), 4 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index 3e93998a4..f25086650 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -63,7 +63,18 @@ pub const Bloom = struct { } } - pub fn pos(self: *Self, bytes: []const u8, hash_index: u64) u64 { + pub fn contains(self: *const Self, key: []const u8) bool { + for (self.keys.items) |hash_index| { + var i = self.pos(key, hash_index); + if (self.bits.isSet(i)) { + continue; + } + return false; + } + return true; + } + + pub fn pos(self: *const Self, bytes: []const u8, hash_index: u64) u64 { return hash_at_index(bytes, hash_index) % @as(u64, self.bits.capacity()); } diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 3b87f51ec..70273e5df 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -82,7 +82,7 @@ pub const CrdsTable = struct { pub fn insert(self: *Self, value: CrdsValue, now: u64) !void { // TODO: check to make sure this sizing is correct or use heap - var buf = [_]u8{0} ** 2048; + var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); const value_hash = Hash.generateSha256Hash(bytes); const versioned_value = CrdsVersionedValue{ diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index bfcb94188..56524c67f 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -21,14 +21,16 @@ pub const KEYS: f64 = 8; pub const CrdsFilterSet = struct { filters: ArrayList(Bloom), - mask_bits: u32, + mask_bits: u32, // todo: make this a u6 const Self = @This(); pub fn init(alloc: std.mem.Allocator, num_items: usize, max_bytes: usize) !Self { var max_bits: f64 = @floatFromInt(max_bytes * 8); var max_items = CrdsFilter.compute_max_items(max_bits, FALSE_RATE, KEYS); + // mask_bits = log2(..) number of filters var mask_bits = CrdsFilter.compute_mask_bits(@floatFromInt(num_items), max_bits); + std.debug.assert(mask_bits > 0); const n_filters = mask_bits << 1; var filters = try ArrayList(Bloom).initCapacity(alloc, n_filters); @@ -49,6 +51,32 @@ pub const CrdsFilterSet = struct { } self.filters.deinit(); } + + pub fn add(self: *Self, hash: Hash) void { + // 64 = u64 bits + const shift_bits: u6 = @intCast(64 - self.mask_bits); + // only look at the first `mask_bits` bits + // which represents `n_filters` number of indexs + const index = @as(usize, CrdsFilter.hash_to_u64(&hash) >> shift_bits); + self.filters.items[index].add(&hash.data); + } + + pub fn len(self: Self) usize { + // return self.filters.items.len; + return self.mask_bits << 1; + } + + pub fn toCrdsFilters(self: Self, buf: []CrdsFilter) []CrdsFilter { + const size = @min(buf.len, self.filters.capacity); + for (0..size) |i| { + var f = &buf[i]; + f.filter = self.filters.items[i]; + f.mask = CrdsFilter.compute_mask(i, self.mask_bits); + f.mask_bits = self.mask_bits; + } + + return buf[0..size]; + } }; pub const CrdsFilter = struct { @@ -66,6 +94,21 @@ pub const CrdsFilter = struct { }; } + pub fn compute_mask(index: u64, mask_bits: u32) u64 { + std.debug.assert(mask_bits > 0); + std.debug.assert(index <= std.math.pow(u64, 2, mask_bits)); + // eg, with index = 2 and mask_bits = 3 + // shift_bits = 61 (ie, only look at first 2 bits) + const shift_bits: u6 = @intCast(64 - mask_bits); + // 2 << 61 = 100...000 + const shifted_index = index << shift_bits; + // OR with all the other zeros + // 10 111111..11111 + // ^ ^ + // index (mask_bits length) | rest + return shifted_index | (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); + } + pub fn compute_mask_bits(num_items: f64, max: f64) u32 { return @intFromFloat(@max(0, (std.math.ceil(std.math.log2(num_items / max))))); } @@ -77,14 +120,37 @@ pub const CrdsFilter = struct { return std.math.ceil(m / (-k / ln(@as(f64, 1) - exp(ln(p) / k)))); } + pub fn hash_to_u64(hash: *const Hash) u64 { + const buf = hash.data[0..8]; + return std.mem.readIntLittle(u64, buf); + } + pub fn deinit(self: *Self) void { self.filter.deinit(); } }; test "gossip.pull: CrdsFilterSet deinits correct" { - var filter_set = try CrdsFilterSet.init(std.testing.allocator, 100, 200); + var filter_set = try CrdsFilterSet.init(std.testing.allocator, 10000, 200); defer filter_set.deinit(); + + std.debug.print("mask bits: {any}", .{filter_set.mask_bits}); + + const hash = Hash{ .data = .{ 1, 2, 3, 4 } ++ .{0} ** 28 }; + + filter_set.add(hash); + + const shift_bits: u6 = @intCast(64 - filter_set.mask_bits); + const index = @as(usize, CrdsFilter.hash_to_u64(&hash) >> shift_bits); + var bloom = filter_set.filters.items[index]; + const v = bloom.contains(&hash.data); + try std.testing.expect(v); + + var filters: [10]CrdsFilter = undefined; + const f = filter_set.toCrdsFilters(&filters); + try std.testing.expect(f.len == filter_set.len()); + const x = f[index]; + try std.testing.expect(x.filter.contains(&hash.data)); } test "gossip.pull: helper functions are correct" { @@ -97,6 +163,17 @@ test "gossip.pull: helper functions are correct" { const v = CrdsFilter.compute_mask_bits(800, 100); try std.testing.expectEqual(@as(usize, 3), v); } + + { + const v = Hash{ .data = .{1} ++ .{0} ** 31 }; + try std.testing.expectEqual(@as(u64, 1), CrdsFilter.hash_to_u64(&v)); + } + + { + const v = CrdsFilter.compute_mask(2, 3); + // 101111111111111111111111111111111111111111111111111111111111111 + try std.testing.expectEqual(@as(u64, 6917529027641081855), v); + } } test "gossip.pull: crds filter matches rust bytes" { From b42ce03fe730c48ae0526101f401869183f9ab2b Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 1 Aug 2023 11:47:43 -0400 Subject: [PATCH 06/48] make crds table threadsafe + construct pull filters --- src/gossip/crds_table.zig | 27 +++++++++++++++++++++-- src/gossip/gossip_service.zig | 3 +++ src/gossip/pull.zig | 40 ++++++++++++++++++++++++++++++----- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 70273e5df..ddb889e15 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -20,6 +20,7 @@ const LegacyContactInfo = crds.LegacyContactInfo; const Transaction = @import("../core/transaction.zig").Transaction; const Pubkey = @import("../core/pubkey.zig").Pubkey; const KeyPair = std.crypto.sign.Ed25519.KeyPair; +const RwLock = std.Thread.RwLock; // tmp upperbound on number for `get_nodes`/`get_votes`/... // enables stack allocations for buffers in the getter functions @@ -55,7 +56,10 @@ pub const CrdsTable = struct { shred_versions: AutoHashMap(Pubkey, u16), // head of the store - cursor: usize, + cursor: usize = 0, + + // thread safe + lock: RwLock = .{}, const Self = @This(); @@ -67,7 +71,6 @@ pub const CrdsTable = struct { .votes = AutoArrayHashMap(usize, usize).init(allocator), .epoch_slots = AutoArrayHashMap(usize, usize).init(allocator), .duplicate_shreds = AutoArrayHashMap(usize, usize).init(allocator), - .cursor = 0, }; } @@ -80,6 +83,26 @@ pub const CrdsTable = struct { self.duplicate_shreds.deinit(); } + pub fn write(self: *Self) void { + self.lock.lock(); + } + + pub fn release_write(self: *Self) void { + self.lock.unlock(); + } + + pub fn read(self: *Self) void { + self.lock.lockShared(); + } + + pub fn release_read(self: *Self) void { + self.lock.unlockShared(); + } + + pub fn len(self: *Self) usize { + return self.store.count(); + } + pub fn insert(self: *Self, value: CrdsValue, now: u64) !void { // TODO: check to make sure this sizing is correct or use heap var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 1dc68f1e7..980dbcd0a 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -223,6 +223,9 @@ pub const GossipService = struct { pub fn insert_crds_values(crds_table: *CrdsTable, values: []crds.CrdsValue, logger: *Logger) void { var now = get_wallclock(); + crds_table.write(); + defer crds_table.release_write(); + for (values) |value| { const value_time = value.wallclock(); const is_too_new = value_time > now +| CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS; diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 56524c67f..6435006c4 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -16,11 +16,41 @@ const Pubkey = @import("../core/pubkey.zig").Pubkey; const ln = std.math.ln; const exp = std.math.exp; +const CrdsTable = @import("crds_table.zig").CrdsTable; + +pub const MAX_NUM_PULL_REQUESTS: usize = 20; // labs - 1024; pub const FALSE_RATE: f64 = 0.1; pub const KEYS: f64 = 8; +pub fn build_crds_filters( + alloc: std.mem.Allocator, + crds_table: *CrdsTable, + bloom_size: usize, +) []CrdsFilter { + crds_table.read(); + defer crds_table.release_read(); + + const num_items = crds_table.len(); + // TODO: purged + failed inserts + + var filter_set = try CrdsFilterSet.init(alloc, num_items, bloom_size); + for (crds_table.store.iterator().values) |*versioned_value| { + const hash = versioned_value.value_hash; + filter_set.add(&hash); + } + + // todo: better number than MAX_NUM_PULL_REQUESTS ? + var buf: [MAX_NUM_PULL_REQUESTS]CrdsFilter = undefined; + var filters = filter_set.getCrdsFilters(&buf); + + return filters; +} + pub const CrdsFilterSet = struct { filters: ArrayList(Bloom), + + // mask bits represents the number of bits required to represent the number of + // filters. mask_bits: u32, // todo: make this a u6 const Self = @This(); @@ -66,7 +96,7 @@ pub const CrdsFilterSet = struct { return self.mask_bits << 1; } - pub fn toCrdsFilters(self: Self, buf: []CrdsFilter) []CrdsFilter { + pub fn getCrdsFilters(self: Self, buf: []CrdsFilter) []CrdsFilter { const size = @min(buf.len, self.filters.capacity); for (0..size) |i| { var f = &buf[i]; @@ -86,6 +116,7 @@ pub const CrdsFilter = struct { const Self = @This(); + // only used in tests pub fn init(allocator: std.mem.Allocator) Self { return Self{ .filter = Bloom.init(allocator, 0, null), @@ -134,10 +165,7 @@ test "gossip.pull: CrdsFilterSet deinits correct" { var filter_set = try CrdsFilterSet.init(std.testing.allocator, 10000, 200); defer filter_set.deinit(); - std.debug.print("mask bits: {any}", .{filter_set.mask_bits}); - const hash = Hash{ .data = .{ 1, 2, 3, 4 } ++ .{0} ** 28 }; - filter_set.add(hash); const shift_bits: u6 = @intCast(64 - filter_set.mask_bits); @@ -147,8 +175,10 @@ test "gossip.pull: CrdsFilterSet deinits correct" { try std.testing.expect(v); var filters: [10]CrdsFilter = undefined; - const f = filter_set.toCrdsFilters(&filters); + + const f = filter_set.getCrdsFilters(&filters); try std.testing.expect(f.len == filter_set.len()); + const x = f[index]; try std.testing.expect(x.filter.contains(&hash.data)); } From fc554e32fa5cdec2db421861a62896e20a7b2cc0 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 1 Aug 2023 13:44:08 -0400 Subject: [PATCH 07/48] add crds filter tests --- src/bloom/bloom.zig | 4 +- src/gossip/crds_table.zig | 25 ++----- src/gossip/pull.zig | 150 ++++++++++++++++++++++++++++++-------- 3 files changed, 126 insertions(+), 53 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index f25086650..ba0dd4384 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -90,7 +90,9 @@ pub const Bloom = struct { const n_bits = @max(1, @min(@as(usize, @intFromFloat(m)), max_bits)); const n_keys = Bloom.num_keys(@floatFromInt(n_bits), n_items_f); - var rnd = RndGen.init(0); + var seed = @as(u64, @intCast(std.time.milliTimestamp())); + var rnd = RndGen.init(seed); + var keys = try ArrayList(u64).initCapacity(alloc, n_keys); for (0..n_keys) |_| { const v = rnd.random().int(u64); diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index ddb889e15..bc1a79b7c 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -306,26 +306,11 @@ test "gossip.crds_table: insert and get votes" { } test "gossip.crds_table: insert and get contact_info" { - var kp_bytes = [_]u8{1} ** 32; - const kp = try KeyPair.create(kp_bytes); - const pk = kp.public_key; - var id = Pubkey.fromPublicKey(&pk, true); - const unspecified_addr = SocketAddr.unspecified(); - var legacy_contact_info = crds.LegacyContactInfo{ - .id = id, - .gossip = unspecified_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; + const kp = try KeyPair.create([_]u8{1} ** 32); + var id = Pubkey.fromPublicKey(&kp.public_key, true); + + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; var crds_value = try CrdsValue.initSigned(CrdsData{ .LegacyContactInfo = legacy_contact_info, }, kp); diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 6435006c4..e5cdf611e 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -22,11 +22,18 @@ pub const MAX_NUM_PULL_REQUESTS: usize = 20; // labs - 1024; pub const FALSE_RATE: f64 = 0.1; pub const KEYS: f64 = 8; +pub fn deinit_crds_filters(filters: *ArrayList(CrdsFilter)) void { + for (filters.items) |*filter| { + filter.deinit(); + } + filters.deinit(); +} + pub fn build_crds_filters( alloc: std.mem.Allocator, crds_table: *CrdsTable, bloom_size: usize, -) []CrdsFilter { +) !ArrayList(CrdsFilter) { crds_table.read(); defer crds_table.release_read(); @@ -34,15 +41,15 @@ pub fn build_crds_filters( // TODO: purged + failed inserts var filter_set = try CrdsFilterSet.init(alloc, num_items, bloom_size); - for (crds_table.store.iterator().values) |*versioned_value| { - const hash = versioned_value.value_hash; + + const crds_values = crds_table.store.iterator().values; + for (0..num_items) |i| { + const hash = crds_values[i].value_hash; filter_set.add(&hash); } - // todo: better number than MAX_NUM_PULL_REQUESTS ? - var buf: [MAX_NUM_PULL_REQUESTS]CrdsFilter = undefined; - var filters = filter_set.getCrdsFilters(&buf); - + // note: filter set is deinit() in this fcn + const filters = try filter_set.consumeForCrdsFilters(alloc, MAX_NUM_PULL_REQUESTS); return filters; } @@ -62,7 +69,9 @@ pub const CrdsFilterSet = struct { var mask_bits = CrdsFilter.compute_mask_bits(@floatFromInt(num_items), max_bits); std.debug.assert(mask_bits > 0); - const n_filters = mask_bits << 1; + const n_filters: usize = @intCast(@as(u64, 1) << @as(u6, @intCast(mask_bits))); + std.debug.assert(n_filters > 0); + var filters = try ArrayList(Bloom).initCapacity(alloc, n_filters); for (0..n_filters) |_| { var filter = try Bloom.random(alloc, @intFromFloat(max_items), FALSE_RATE, @intFromFloat(max_bits)); @@ -75,37 +84,74 @@ pub const CrdsFilterSet = struct { }; } + /// note: does not free filter values bc we take ownership of them in + /// getCrdsFilters pub fn deinit(self: *Self) void { - for (self.filters.items) |*f| { - f.deinit(); - } self.filters.deinit(); } - pub fn add(self: *Self, hash: Hash) void { + pub fn hash_index(mask_bits: u32, hash: *const Hash) usize { // 64 = u64 bits - const shift_bits: u6 = @intCast(64 - self.mask_bits); + const shift_bits: u6 = @intCast(64 - mask_bits); // only look at the first `mask_bits` bits // which represents `n_filters` number of indexs - const index = @as(usize, CrdsFilter.hash_to_u64(&hash) >> shift_bits); + const index = @as(usize, CrdsFilter.hash_to_u64(hash) >> shift_bits); + return index; + } + + pub fn add(self: *Self, hash: *const Hash) void { + const index = CrdsFilterSet.hash_index(self.mask_bits, hash); self.filters.items[index].add(&hash.data); } pub fn len(self: Self) usize { - // return self.filters.items.len; - return self.mask_bits << 1; + return self.filters.items.len; } - pub fn getCrdsFilters(self: Self, buf: []CrdsFilter) []CrdsFilter { - const size = @min(buf.len, self.filters.capacity); - for (0..size) |i| { - var f = &buf[i]; - f.filter = self.filters.items[i]; - f.mask = CrdsFilter.compute_mask(i, self.mask_bits); - f.mask_bits = self.mask_bits; + /// note: this function deinit() self + pub fn consumeForCrdsFilters(self: *Self, alloc: std.mem.Allocator, max_size: usize) !ArrayList(CrdsFilter) { + defer self.deinit(); + + const set_size = self.len(); + var indexs = try ArrayList(usize).initCapacity(alloc, set_size); + defer indexs.deinit(); + + for (0..set_size) |i| { + indexs.appendAssumeCapacity(i); + } + + const output_size = @min(set_size, max_size); + const can_consume_all = max_size >= set_size; + + if (!can_consume_all) { + // shuffle the indexs + var seed = @as(u64, @intCast(std.time.milliTimestamp())); + var rand = std.rand.DefaultPrng.init(seed); + for (0..output_size) |i| { + const j = @min(set_size, @max(0, rand.random().int(usize))); + std.mem.swap(usize, &indexs.items[i], &indexs.items[j]); + } + + // release others + for (output_size..set_size) |i| { + const index = indexs.items[i]; + self.filters.items[index].deinit(); + } + } + + var output = try ArrayList(CrdsFilter).initCapacity(alloc, output_size); + for (0..output_size) |i| { + const index = indexs.items[i]; + + var output_item = CrdsFilter{ + .filter = self.filters.items[index], // take ownership of filter + .mask = CrdsFilter.compute_mask(index, self.mask_bits), + .mask_bits = self.mask_bits, + }; + output.appendAssumeCapacity(output_item); } - return buf[0..size]; + return output; } }; @@ -161,25 +207,65 @@ pub const CrdsFilter = struct { } }; +test "gossip.pull: test build_crds_filters" { + const crds = @import("./crds.zig"); + + var crds_table = CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + // insert a some value + const kp = try KeyPair.create([_]u8{1} ** 32); + + for (0..64) |i| { + var id = Pubkey.random(.{ .seed = i }); + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; + var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }, kp); + + try crds_table.insert(crds_value, 0); + } + + const max_bytes = 2; + const num_items = crds_table.len(); + + // build filters + var filters = try build_crds_filters(std.testing.allocator, &crds_table, max_bytes); + defer deinit_crds_filters(&filters); + + const mask_bits = filters.items[0].mask_bits; + + // assert value is in the filter + const crds_values = crds_table.store.iterator().values; + for (0..num_items) |i| { + const versioned_value = crds_values[i]; + const hash = versioned_value.value_hash; + + const index = CrdsFilterSet.hash_index(mask_bits, &hash); + const filter = filters.items[index].filter; + try std.testing.expect(filter.contains(&hash.data)); + } +} + test "gossip.pull: CrdsFilterSet deinits correct" { var filter_set = try CrdsFilterSet.init(std.testing.allocator, 10000, 200); - defer filter_set.deinit(); const hash = Hash{ .data = .{ 1, 2, 3, 4 } ++ .{0} ** 28 }; - filter_set.add(hash); + filter_set.add(&hash); - const shift_bits: u6 = @intCast(64 - filter_set.mask_bits); - const index = @as(usize, CrdsFilter.hash_to_u64(&hash) >> shift_bits); + const index = CrdsFilterSet.hash_index(filter_set.mask_bits, &hash); var bloom = filter_set.filters.items[index]; + const v = bloom.contains(&hash.data); try std.testing.expect(v); - var filters: [10]CrdsFilter = undefined; + var f = try filter_set.consumeForCrdsFilters(std.testing.allocator, 10); + defer deinit_crds_filters(&f); - const f = filter_set.getCrdsFilters(&filters); - try std.testing.expect(f.len == filter_set.len()); + try std.testing.expect(f.capacity == filter_set.len()); - const x = f[index]; + const x = f.items[index]; try std.testing.expect(x.filter.contains(&hash.data)); } From 26ea7a25c017525d3af1826610f46d5625990dfe Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 1 Aug 2023 15:51:43 -0400 Subject: [PATCH 08/48] fix tests --- src/gossip/crds_table.zig | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index bc1a79b7c..ff970766b 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -22,13 +22,6 @@ const Pubkey = @import("../core/pubkey.zig").Pubkey; const KeyPair = std.crypto.sign.Ed25519.KeyPair; const RwLock = std.Thread.RwLock; -// tmp upperbound on number for `get_nodes`/`get_votes`/... -// enables stack allocations for buffers in the getter functions -const MAX_N_CONTACT_INFOS = 100; -const MAX_N_VOTES = 20; -const MAX_N_EPOCH_SLOTS = 20; -const MAX_N_DUP_SHREDS = 20; - pub const CrdsError = error{ OldValue, }; @@ -332,11 +325,12 @@ test "gossip.crds_table: insert and get contact_info" { try std.testing.expectError(CrdsError.OldValue, result); // test re-insertion with greater wallclock - crds_value.data.LegacyContactInfo.wallclock = 2; + crds_value.data.LegacyContactInfo.wallclock += 2; + const v = crds_value.data.LegacyContactInfo.wallclock; try crds_table.insert(crds_value, 0); // check retrieval nodes = try crds_table.get_contact_infos(&buf); try std.testing.expect(nodes.len == 1); - try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == 2); + try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == v); } From e07b5393d2e90ee955df8fbfe95a2599d985aad2 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 1 Aug 2023 16:37:18 -0400 Subject: [PATCH 09/48] init pull responses - add crds_shards --- src/core/hash.zig | 14 +++++++ src/gossip/crds_shards.zig | 83 ++++++++++++++++++++++++++++++++++++++ src/gossip/pull.zig | 23 ++++++----- src/lib.zig | 1 + 4 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 src/gossip/crds_shards.zig diff --git a/src/core/hash.zig b/src/core/hash.zig index c33b65c97..744e94cf2 100644 --- a/src/core/hash.zig +++ b/src/core/hash.zig @@ -14,6 +14,20 @@ pub const Hash = struct { const Self = @This(); + // used in tests + pub fn random() Self { + var seed = @as(u64, @intCast(std.time.milliTimestamp())); + var rand = std.rand.DefaultPrng.init(seed); + var data: [HASH_SIZE]u8 = undefined; + + for (0..HASH_SIZE) |i| { + data[i] = rand.random().int(u8); + } + return Self{ + .data = data, + }; + } + pub fn generateSha256Hash(bytes: []const u8) Self { var hash = Hash{ .data = undefined, diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig new file mode 100644 index 000000000..470d246f4 --- /dev/null +++ b/src/gossip/crds_shards.zig @@ -0,0 +1,83 @@ +const std = @import("std"); +const AutoArrayHashMap = std.AutoArrayHashMap; +const AutoHashMap = std.AutoHashMap; + +const bincode = @import("../bincode/bincode.zig"); + +const Hash = @import("../core/hash.zig").Hash; + +const SocketAddr = @import("net.zig").SocketAddr; + +const crds = @import("./crds.zig"); +const CrdsValue = crds.CrdsValue; +const CrdsData = crds.CrdsData; +const CrdsVersionedValue = crds.CrdsVersionedValue; +const CrdsValueLabel = crds.CrdsValueLabel; +const LegacyContactInfo = crds.LegacyContactInfo; + +const Transaction = @import("../core/transaction.zig").Transaction; +const Pubkey = @import("../core/pubkey.zig").Pubkey; +const KeyPair = std.crypto.sign.Ed25519.KeyPair; +const RwLock = std.Thread.RwLock; + +const CrdsPull = @import("./pull.zig"); + +pub const CrdsShards = struct { + shards: std.ArrayList(AutoArrayHashMap(usize, u64)), + shard_bits: u32, + + const Self = @This(); + + pub fn init(alloc: std.mem.Allocator, shard_bits: u32) !Self { + const n_shards: usize = @intCast(@as(u64, 1) << @as(u6, @intCast(shard_bits))); + var shards = try std.ArrayList(AutoArrayHashMap(usize, u64)).initCapacity(alloc, n_shards); + for (0..n_shards) |_| { + var shard = AutoArrayHashMap(usize, u64).init(alloc); + shards.appendAssumeCapacity(shard); + } + + return Self{ + .shards = shards, + .shard_bits = shard_bits, + }; + } + + pub fn insert(self: *Self, crds_index: usize, hash: *const Hash) !void { + const uhash = CrdsPull.hash_to_u64(hash); + var shard = self.get_shard(uhash); + try shard.put(crds_index, uhash); + } + + pub fn remove(self: *Self, crds_index: usize, hash: *const Hash) !void { + const uhash = CrdsPull.hash_to_u64(hash); + var shard = self.get_shard(uhash); + _ = shard.swapRemove(crds_index); + } + + pub fn get_shard(self: *Self, uhash: u64) *AutoArrayHashMap(usize, u64) { + const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); + var shard = &self.shards.items[shard_index]; + return shard; + } + + pub fn compute_shard_index(shard_bits: u32, hash: u64) usize { + const shift_bits: u6 = @intCast(64 - shard_bits); + return @intCast(hash >> shift_bits); + } + + pub fn deinit(self: *Self) void { + for (0..self.shards.capacity) |i| { + self.shards.items[i].deinit(); + } + self.shards.deinit(); + } +}; + +test "gossip.crds_shards: tests CrdsShards" { + var shards = try CrdsShards.init(std.testing.allocator, 10); + defer shards.deinit(); + + const v = Hash.random(); + try shards.insert(10, &v); + try shards.remove(10, &v); +} diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index e5cdf611e..942b4bdf1 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -29,6 +29,8 @@ pub fn deinit_crds_filters(filters: *ArrayList(CrdsFilter)) void { filters.deinit(); } +/// parses all the values in the crds table and returns a list of +/// corresponding filters. Note: make sure to call deinit_crds_filters. pub fn build_crds_filters( alloc: std.mem.Allocator, crds_table: *CrdsTable, @@ -72,6 +74,7 @@ pub const CrdsFilterSet = struct { const n_filters: usize = @intCast(@as(u64, 1) << @as(u6, @intCast(mask_bits))); std.debug.assert(n_filters > 0); + // TODO; add errdefer handling here var filters = try ArrayList(Bloom).initCapacity(alloc, n_filters); for (0..n_filters) |_| { var filter = try Bloom.random(alloc, @intFromFloat(max_items), FALSE_RATE, @intFromFloat(max_bits)); @@ -95,7 +98,7 @@ pub const CrdsFilterSet = struct { const shift_bits: u6 = @intCast(64 - mask_bits); // only look at the first `mask_bits` bits // which represents `n_filters` number of indexs - const index = @as(usize, CrdsFilter.hash_to_u64(hash) >> shift_bits); + const index = @as(usize, hash_to_u64(hash) >> shift_bits); return index; } @@ -108,9 +111,9 @@ pub const CrdsFilterSet = struct { return self.filters.items.len; } - /// note: this function deinit() self + /// returns a list of CrdsFilters and consumes Self by calling deinit. pub fn consumeForCrdsFilters(self: *Self, alloc: std.mem.Allocator, max_size: usize) !ArrayList(CrdsFilter) { - defer self.deinit(); + defer self.deinit(); // ! const set_size = self.len(); var indexs = try ArrayList(usize).initCapacity(alloc, set_size); @@ -197,16 +200,16 @@ pub const CrdsFilter = struct { return std.math.ceil(m / (-k / ln(@as(f64, 1) - exp(ln(p) / k)))); } - pub fn hash_to_u64(hash: *const Hash) u64 { - const buf = hash.data[0..8]; - return std.mem.readIntLittle(u64, buf); - } - pub fn deinit(self: *Self) void { self.filter.deinit(); } }; +pub fn hash_to_u64(hash: *const Hash) u64 { + const buf = hash.data[0..8]; + return std.mem.readIntLittle(u64, buf); +} + test "gossip.pull: test build_crds_filters" { const crds = @import("./crds.zig"); @@ -251,7 +254,7 @@ test "gossip.pull: test build_crds_filters" { test "gossip.pull: CrdsFilterSet deinits correct" { var filter_set = try CrdsFilterSet.init(std.testing.allocator, 10000, 200); - const hash = Hash{ .data = .{ 1, 2, 3, 4 } ++ .{0} ** 28 }; + const hash = Hash.random(); filter_set.add(&hash); const index = CrdsFilterSet.hash_index(filter_set.mask_bits, &hash); @@ -282,7 +285,7 @@ test "gossip.pull: helper functions are correct" { { const v = Hash{ .data = .{1} ++ .{0} ** 31 }; - try std.testing.expectEqual(@as(u64, 1), CrdsFilter.hash_to_u64(&v)); + try std.testing.expectEqual(@as(u64, 1), hash_to_u64(&v)); } { diff --git a/src/lib.zig b/src/lib.zig index 57fc99079..7d8f528ce 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -25,6 +25,7 @@ pub const gossip = struct { pub usingnamespace @import("gossip/packet.zig"); pub usingnamespace @import("gossip/protocol.zig"); pub usingnamespace @import("gossip/pull.zig"); + pub usingnamespace @import("gossip/crds_shards.zig"); }; pub const bloom = struct { From fb795d70ba54aed2d4a9eda9cb67cc4dd80bea67 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 12:05:58 -0400 Subject: [PATCH 10/48] add shards to crds table --- src/gossip/cmd.zig | 2 +- src/gossip/crds_shards.zig | 52 ++++++++++++++++++++++++++--- src/gossip/crds_table.zig | 62 ++++++++++++++++++++++++++++------- src/gossip/gossip_service.zig | 6 ++-- src/gossip/pull.zig | 2 +- 5 files changed, 102 insertions(+), 22 deletions(-) diff --git a/src/gossip/cmd.zig b/src/gossip/cmd.zig index d46115f6f..e116ea756 100644 --- a/src/gossip/cmd.zig +++ b/src/gossip/cmd.zig @@ -60,7 +60,7 @@ pub fn runGossipService(gossip_port: u16, entrypoints: ArrayList(LegacyContactIn var spy = try ClusterInfo.initSpy(gpa_allocator, gossip_socket_addr, entrypoints, logger); - var gossip_service = GossipService.init(gpa_allocator, &spy.cluster_info, spy.gossip_socket, exit); + var gossip_service = try GossipService.init(gpa_allocator, &spy.cluster_info, spy.gossip_socket, exit); var handle = try std.Thread.spawn(.{}, GossipService.run, .{ &gossip_service, logger }); diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 470d246f4..37f2e8c66 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -42,6 +42,13 @@ pub const CrdsShards = struct { }; } + pub fn deinit(self: *Self) void { + for (0..self.shards.capacity) |i| { + self.shards.items[i].deinit(); + } + self.shards.deinit(); + } + pub fn insert(self: *Self, crds_index: usize, hash: *const Hash) !void { const uhash = CrdsPull.hash_to_u64(hash); var shard = self.get_shard(uhash); @@ -54,7 +61,7 @@ pub const CrdsShards = struct { _ = shard.swapRemove(crds_index); } - pub fn get_shard(self: *Self, uhash: u64) *AutoArrayHashMap(usize, u64) { + pub fn get_shard(self: *const Self, uhash: u64) *AutoArrayHashMap(usize, u64) { const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); var shard = &self.shards.items[shard_index]; return shard; @@ -65,11 +72,43 @@ pub const CrdsShards = struct { return @intCast(hash >> shift_bits); } - pub fn deinit(self: *Self) void { - for (0..self.shards.capacity) |i| { - self.shards.items[i].deinit(); + pub fn find(self: *const Self, alloc: std.mem.Allocator, mask: u64, mask_bits: u32) !std.ArrayList(usize) { + const ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); + const match_mask = mask | ones; + + if (self.shard_bits < mask_bits) { + const shard = self.get_shard(match_mask); + var result = std.ArrayList(usize).init(alloc); + var shard_iter = shard.iterator(); + while (shard_iter.next()) |entry| { + const hash = entry.value_ptr.*; + + if (hash | ones == match_mask) { + const index = entry.key_ptr.*; + try result.append(index); + } + } + return result; + } else if (self.shard_bits == mask_bits) { + const shard = self.get_shard(match_mask); + var result = try std.ArrayList(usize).initCapacity(alloc, shard.count()); + try result.insertSlice(0, shard.keys()); + return result; + } else { + // shardbits > maskbits + const shift_bits: u6 = @intCast(self.shard_bits - mask_bits); + const count: usize = @intCast(@as(u64, 1) << shift_bits); + const end = CrdsShards.compute_shard_index(self.shard_bits, match_mask) + 1; + + var result = std.ArrayList(usize).init(alloc); + var insert_index: usize = 0; + for ((end - count)..end) |shard_index| { + const shard = self.get_shard(shard_index); + try result.insertSlice(insert_index, shard.keys()); + insert_index += shard.count(); + } + return result; } - self.shards.deinit(); } }; @@ -80,4 +119,7 @@ test "gossip.crds_shards: tests CrdsShards" { const v = Hash.random(); try shards.insert(10, &v); try shards.remove(10, &v); + + const result = try shards.find(std.testing.allocator, 20, 10); + defer result.deinit(); } diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index ff970766b..d3067480a 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -10,6 +10,8 @@ const CompareResult = hash.CompareResult; const SocketAddr = @import("net.zig").SocketAddr; +const CrdsShards = @import("./crds_shards.zig").CrdsShards; + const crds = @import("./crds.zig"); const CrdsValue = crds.CrdsValue; const CrdsData = crds.CrdsData; @@ -26,6 +28,8 @@ pub const CrdsError = error{ OldValue, }; +const CRDS_SHARDS_BITS: u32 = 12; + /// Cluster Replicated Data Store: stores gossip data /// the self.store uses an AutoArrayHashMap which is a HashMap that also allows for /// indexing values (value = arrayhashmap[0]). This allows us to insert data @@ -48,6 +52,9 @@ pub const CrdsTable = struct { duplicate_shreds: AutoArrayHashMap(usize, usize), shred_versions: AutoHashMap(Pubkey, u16), + // used to build pull responses efficiently + shards: CrdsShards, + // head of the store cursor: usize = 0, @@ -56,7 +63,7 @@ pub const CrdsTable = struct { const Self = @This(); - pub fn init(allocator: std.mem.Allocator) Self { + pub fn init(allocator: std.mem.Allocator) !Self { return Self{ .store = AutoArrayHashMap(CrdsValueLabel, CrdsVersionedValue).init(allocator), .contact_infos = AutoArrayHashMap(usize, void).init(allocator), @@ -64,6 +71,7 @@ pub const CrdsTable = struct { .votes = AutoArrayHashMap(usize, usize).init(allocator), .epoch_slots = AutoArrayHashMap(usize, usize).init(allocator), .duplicate_shreds = AutoArrayHashMap(usize, usize).init(allocator), + .shards = try CrdsShards.init(allocator, CRDS_SHARDS_BITS), }; } @@ -74,6 +82,7 @@ pub const CrdsTable = struct { self.votes.deinit(); self.epoch_slots.deinit(); self.duplicate_shreds.deinit(); + self.shards.deinit(); } pub fn write(self: *Self) void { @@ -111,29 +120,33 @@ pub const CrdsTable = struct { const label = value.label(); var result = try self.store.getOrPut(label); + const entry_index = result.index; // entry doesnt exist if (!result.found_existing) { switch (value.data) { .LegacyContactInfo => |*info| { - try self.contact_infos.put(result.index, {}); + try self.contact_infos.put(entry_index, {}); try self.shred_versions.put(info.id, info.shred_version); }, .Vote => { - try self.votes.put(self.cursor, result.index); + try self.votes.put(self.cursor, entry_index); }, .EpochSlots => { - try self.epoch_slots.put(self.cursor, result.index); + try self.epoch_slots.put(self.cursor, entry_index); }, .DuplicateShred => { - try self.duplicate_shreds.put(self.cursor, result.index); + try self.duplicate_shreds.put(self.cursor, entry_index); }, else => {}, } - self.cursor += 1; + try self.shards.insert(entry_index, &versioned_value.value_hash); + result.value_ptr.* = versioned_value; + self.cursor += 1; + // should overwrite existing entry } else if (crds_overwrites(&versioned_value, result.value_ptr)) { const old_entry = result.value_ptr.*; @@ -145,24 +158,30 @@ pub const CrdsTable = struct { .Vote => { var did_remove = self.votes.swapRemove(old_entry.ordinal); std.debug.assert(did_remove); - try self.votes.put(self.cursor, result.index); + try self.votes.put(self.cursor, entry_index); }, .EpochSlots => { var did_remove = self.epoch_slots.swapRemove(old_entry.ordinal); std.debug.assert(did_remove); - try self.epoch_slots.put(self.cursor, result.index); + try self.epoch_slots.put(self.cursor, entry_index); }, .DuplicateShred => { var did_remove = self.duplicate_shreds.swapRemove(old_entry.ordinal); std.debug.assert(did_remove); - try self.duplicate_shreds.put(self.cursor, result.index); + try self.duplicate_shreds.put(self.cursor, entry_index); }, else => {}, } - self.cursor += 1; + // remove and insert to make sure the shard ordering is oldest-to-newest + // NOTE: do we need the ordering to be oldest-to-newest? + try self.shards.remove(entry_index, &old_entry.value_hash); + try self.shards.insert(entry_index, &versioned_value.value_hash); + result.value_ptr.* = versioned_value; + self.cursor += 1; + // do nothing } else { return CrdsError.OldValue; @@ -245,6 +264,22 @@ pub const CrdsTable = struct { } return buf[0..size]; } + + pub fn get_bitmask_matches( + self: *const Self, + alloc: std.mem.Allocator, + mask: u64, + mask_bits: u64, + ) !std.ArrayList(CrdsVersionedValue) { + const indexs = try self.shards.find(alloc, mask, @intCast(mask_bits)); + var result = try std.ArrayList(CrdsVersionedValue).initCapacity(alloc, indexs.items.len); + + for (indexs.items) |index| { + var entry = self.store.iterator().values[index]; + result.append(entry) catch unreachable; + } + return result; + } }; pub fn crds_overwrites(new_value: *const CrdsVersionedValue, old_value: *const CrdsVersionedValue) bool { @@ -274,7 +309,7 @@ test "gossip.crds_table: insert and get votes" { .Vote = .{ 0, vote }, }, kp); - var crds_table = CrdsTable.init(std.testing.allocator); + var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); try crds_table.insert(crds_value, 0); @@ -296,6 +331,9 @@ test "gossip.crds_table: insert and get votes" { votes = try crds_table.get_votes_with_cursor(&buf, &cursor); try std.testing.expect(votes.len == 1); try std.testing.expect(cursor == 2); + + const v = try crds_table.get_bitmask_matches(std.testing.allocator, 10, 1); + defer v.deinit(); } test "gossip.crds_table: insert and get contact_info" { @@ -308,7 +346,7 @@ test "gossip.crds_table: insert and get contact_info" { .LegacyContactInfo = legacy_contact_info, }, kp); - var crds_table = CrdsTable.init(std.testing.allocator); + var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); // test insertion diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 980dbcd0a..a6afe13fc 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -46,10 +46,10 @@ pub const GossipService = struct { cluster_info: *ClusterInfo, gossip_socket: UdpSocket, exit: AtomicBool, - ) Self { + ) !Self { var packet_channel = PacketChannel.init(allocator, 10000); var responder_channel = PacketChannel.init(allocator, 10000); - var crds_table = CrdsTable.init(allocator); + var crds_table = try CrdsTable.init(allocator); return Self{ .cluster_info = cluster_info, @@ -248,7 +248,7 @@ pub const GossipService = struct { test "gossip.gossip_service: process contact_info push packet" { const allocator = std.testing.allocator; - var crds_table = CrdsTable.init(allocator); + var crds_table = try CrdsTable.init(allocator); defer crds_table.deinit(); var packet_channel = PacketChannel.init(allocator, 100); diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 942b4bdf1..72cd17b0a 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -213,7 +213,7 @@ pub fn hash_to_u64(hash: *const Hash) u64 { test "gossip.pull: test build_crds_filters" { const crds = @import("./crds.zig"); - var crds_table = CrdsTable.init(std.testing.allocator); + var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); // insert a some value From ed1d05aee12a91939b766a9ed8786414cefce914 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 12:36:57 -0400 Subject: [PATCH 11/48] update pubkey random API to use std.Randon --- src/core/pubkey.zig | 7 +++---- src/gossip/crds.zig | 9 ++++++++- src/gossip/crds_table.zig | 5 ++++- src/gossip/node.zig | 12 ++++++++++-- src/gossip/pull.zig | 8 ++++++-- src/rpc/client.zig | 8 ++++++-- todo.md | 7 ------- 7 files changed, 37 insertions(+), 19 deletions(-) delete mode 100644 todo.md diff --git a/src/core/pubkey.zig b/src/core/pubkey.zig index fcb968f5c..c432ab716 100644 --- a/src/core/pubkey.zig +++ b/src/core/pubkey.zig @@ -66,11 +66,10 @@ pub const Pubkey = struct { } /// ***random*** generates a random pubkey. Optionally set `skip_encoding` to skip expensive base58 encoding. - pub fn random(options: struct { skip_encoding: bool = false, seed: ?u64 = null }) Self { + pub fn random(rng: std.rand.Random, options: struct { skip_encoding: bool = false }) Self { var bytes: [32]u8 = undefined; - var seed = options.seed orelse @as(u64, @intCast(std.time.milliTimestamp())); - var rand = std.rand.DefaultPrng.init(seed); - rand.fill(&bytes); + rng.bytes(&bytes); + var dest: [44]u8 = .{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index ad55605e4..5edcc50a0 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -217,8 +217,12 @@ pub const LegacyContactInfo = struct { const unspecified_addr = SocketAddr.init_ipv4(.{ 0, 0, 0, 0 }, 0); const wallclock = get_wallclock(); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + return LegacyContactInfo{ - .id = Pubkey.random(.{ .skip_encoding = true }), + .id = Pubkey.random(rng, .{ .skip_encoding = true }), .gossip = unspecified_addr, .tvu = unspecified_addr, .tvu_forwards = unspecified_addr, @@ -233,6 +237,9 @@ pub const LegacyContactInfo = struct { .shred_version = 0, }; } + + // pub fn random() LegacyContactInfo { + // } }; pub const CrdsValueLabel = union(enum) { diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index d3067480a..81fd37667 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -321,7 +321,10 @@ test "gossip.crds_table: insert and get votes" { try std.testing.expect(cursor == 1); // try inserting another vote - id = Pubkey.random(.{}); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + id = Pubkey.random(rng, .{}); vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; crds_value = try CrdsValue.initSigned(CrdsData{ .Vote = .{ 0, vote }, diff --git a/src/gossip/node.zig b/src/gossip/node.zig index 9b384d4c0..44107578f 100644 --- a/src/gossip/node.zig +++ b/src/gossip/node.zig @@ -282,7 +282,11 @@ fn socket_addrs_unspecified() [13]SocketAddr { const logger = std.log.scoped(.node_tests); test "new contact info" { - var ci = ContactInfo.init(testing.allocator, Pubkey.random(.{}), @as(u64, @intCast(std.time.microTimestamp())), 1000); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + var ci = ContactInfo.init(testing.allocator, Pubkey.random(rng, .{}), @as(u64, @intCast(std.time.microTimestamp())), 1000); defer ci.deinit(); } @@ -307,7 +311,11 @@ test "socketaddr bincode serialize matches rust" { } test "set & get socket on contact info" { - var ci = ContactInfo.init(testing.allocator, Pubkey.random(.{}), @as(u64, @intCast(std.time.microTimestamp())), 1000); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + var ci = ContactInfo.init(testing.allocator, Pubkey.random(rng, .{}), @as(u64, @intCast(std.time.microTimestamp())), 1000); defer ci.deinit(); try ci.setSocket(SOCKET_TAG_RPC, SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 8899)); diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 72cd17b0a..0d8c61a1d 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -219,8 +219,12 @@ test "gossip.pull: test build_crds_filters" { // insert a some value const kp = try KeyPair.create([_]u8{1} ** 32); - for (0..64) |i| { - var id = Pubkey.random(.{ .seed = i }); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + for (0..64) |_| { + var id = Pubkey.random(rng, .{}); var legacy_contact_info = crds.LegacyContactInfo.default(); legacy_contact_info.id = id; var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ diff --git a/src/rpc/client.zig b/src/rpc/client.zig index 1c20797b6..824ce6829 100644 --- a/src/rpc/client.zig +++ b/src/rpc/client.zig @@ -1328,8 +1328,12 @@ test "pubkey equality works" { } test "pubkey randome works" { - var pubkey = Pubkey.random(.{ .seed = 20 }); - var pubkey_2 = Pubkey.random(.{ .seed = 19 }); + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + var pubkey = Pubkey.random(rng, .{}); + var pubkey_2 = Pubkey.random(rng, .{}); try testing.expect(!pubkey_2.equals(&pubkey)); } diff --git a/todo.md b/todo.md deleted file mode 100644 index 731ef6f63..000000000 --- a/todo.md +++ /dev/null @@ -1,7 +0,0 @@ -## Todos / known issues: - -- [] look into `Pubkey.random()` panicing: - -``` -run test: error: thread 4706882 panic: written is not 44, written: 43, dest: { 117, 53, 76, 103, 105, 78, 111, 65, 77, 80, 88, 85, 52, 72, 77, 84, 68, 57, 75, 70, 57, 51, 86, 68, 110, 102, 111, 70, 53, 51, 111, 54, 119, 74, 84, 70, 86, 67, 49, 105, 69, 104, 86, 0 }, bytes: { 13, 87, 27, 207, 173, 29, 155, 207, 223, 224, 42, 52, 95, 175, 3, 2, 104, 111, 218, 33, 99, 90, 163, 24, 102, 43, 120, 128, 237, 218, 136, 72 } -``` From 01a86ffbed600635e551175bb3f4721e9a57704a Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 13:21:23 -0400 Subject: [PATCH 12/48] add more rnd fcns --- src/gossip/crds.zig | 173 +++++++++++++++++++++++++++++++------------- src/gossip/net.zig | 27 +++++++ 2 files changed, 149 insertions(+), 51 deletions(-) diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index 5edcc50a0..44c93f981 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -49,6 +49,10 @@ pub const CrdsValue = struct { return self; } + pub fn random(rng: std.rand.Random, keypair: Keypair) !Self { + return try Self.initSigned(CrdsData.random(rng), keypair); + } + pub fn sign(self: *Self, keypair: KeyPair) !void { var buf = [_]u8{0} ** 1500; var bytes = try bincode.writeToSlice(&buf, self.data, bincode.Params.standard); @@ -238,8 +242,23 @@ pub const LegacyContactInfo = struct { }; } - // pub fn random() LegacyContactInfo { - // } + pub fn random(rng: std.rand.Random) LegacyContactInfo { + return LegacyContactInfo{ + .id = Pubkey.random(rng, .{ .skip_encoding = true }), + .gossip = SocketAddr.random(rng), + .tvu = SocketAddr.random(rng), + .tvu_forwards = SocketAddr.random(rng), + .repair = SocketAddr.random(rng), + .tpu = SocketAddr.random(rng), + .tpu_forwards = SocketAddr.random(rng), + .tpu_vote = SocketAddr.random(rng), + .rpc = SocketAddr.random(rng), + .rpc_pubsub = SocketAddr.random(rng), + .serve_repair = SocketAddr.random(rng), + .wallclock = rng.int(u64), + .shred_version = rng.int(u16), + }; + } }; pub const CrdsValueLabel = union(enum) { @@ -270,6 +289,37 @@ pub const CrdsData = union(enum(u32)) { DuplicateShred: struct { u16, DuplicateShred }, SnapshotHashes: SnapshotHashes, ContactInfo: ContactInfo, + + pub fn random(rng: std.rand.Random) CrdsData { + const v = rng.intRangeAtMost(u16, 0, 3); + return switch (v) { + 0 => blk: { + const x = LegacyContactInfo.random(rng); + break :blk CrdsData { + .LegacyContactInfo = x + }; + }, + 1 => blk: { + const x = EpochSlots.random(rng); + break :blk CrdsData { + .EpochSlots = .{ rng.int(u8), x } + }; + }, + 2 => blk: { + const x = Vote.random(rng); + break :blk CrdsData { + .Vote = .{ rng.int(u8), x } + }; + }, + else => blk: { + const x = DuplicateShred.random(rng); + break :blk CrdsData { + .DuplicateShred = .{ rng.int(u16), x } + }; + }, + }; + } + }; pub const Vote = struct { @@ -279,6 +329,15 @@ pub const Vote = struct { slot: Slot = Slot.default(), pub const @"!bincode-config:slot" = bincode.FieldConfig{ .skip = true }; + + pub fn random(rng: std.rand.Random) Vote { + return Vote{ + .from = Pubkey.random(rng, .{ .skip_encoding = true }), + .transaction = Transaction.default(), + .wallclock = rng.int(u64), + .slot = Slot.init(rng.int(u64)), + }; + } }; pub const LowestSlot = struct { @@ -314,6 +373,14 @@ pub const EpochSlots = struct { from: Pubkey, slots: []CompressedSlots, wallclock: u64, + + pub fn random(rng: std.rand.Random) EpochSlots { + return EpochSlots{ + .from = Pubkey.random(rng, .{ .skip_encoding = true }), + .slots = undefined, + .wallclock = rng.int(u64), + }; + } }; pub const CompressedSlots = union(enum(u32)) { @@ -442,6 +509,19 @@ pub const DuplicateShred = struct { num_chunks: u8, chunk_index: u8, chunk: []u8, + + pub fn random(rng: std.rand.Random) DuplicateShred { + return DuplicateShred{ + .from = Pubkey.random(rng, .{ .skip_encoding = true }), + .wallclock = rng.int(u64), + .slot = Slot.init(rng.int(u64)), + .shred_index = rng.int(u32), + .shred_type = ShredType.Data, + .num_chunks = rng.int(u8), + .chunk_index = rng.int(u8), + .chunk = undefined, + }; + } }; pub const SnapshotHashes = struct { @@ -456,22 +536,10 @@ test "gossip.crds: test CrdsValue label() and id() methods" { var kp = try KeyPair.create(kp_bytes); const pk = kp.public_key; var id = Pubkey.fromPublicKey(&pk, true); - const unspecified_addr = SocketAddr.unspecified(); - var legacy_contact_info = LegacyContactInfo{ - .id = id, - .gossip = unspecified_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; + + var legacy_contact_info = LegacyContactInfo.default(); + legacy_contact_info.id = id; + legacy_contact_info.wallclock = 0; var crds_value = try CrdsValue.initSigned(CrdsData{ .LegacyContactInfo = legacy_contact_info, @@ -503,25 +571,14 @@ test "gossip.crds: contact info serialization matches rust" { const id = Pubkey.fromPublicKey(&pk, true); const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - const unspecified_addr = SocketAddr.unspecified(); var buf = [_]u8{0} ** 1024; - var legacy_contact_info = LegacyContactInfo{ - .id = id, - .gossip = gossip_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; + var legacy_contact_info = LegacyContactInfo.default(); + legacy_contact_info.gossip = gossip_addr; + legacy_contact_info.id = id; + legacy_contact_info.wallclock = 0; + var contact_info_rust = [_]u8{ 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // var bytes = try bincode.writeToSlice(buf[0..], legacy_contact_info, bincode.Params.standard); @@ -537,25 +594,12 @@ test "gossip.crds: crds data serialization matches rust" { const id = Pubkey.fromPublicKey(&pk, true); const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - const unspecified_addr = SocketAddr.unspecified(); - var buf = [_]u8{0} ** 1024; - var legacy_contact_info = LegacyContactInfo{ - .id = id, - .gossip = gossip_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; + var legacy_contact_info = LegacyContactInfo.default(); + legacy_contact_info.gossip = gossip_addr; + legacy_contact_info.id = id; + legacy_contact_info.wallclock = 0; var crds_data = CrdsData{ .LegacyContactInfo = legacy_contact_info, @@ -565,3 +609,30 @@ test "gossip.crds: crds data serialization matches rust" { var bytes = try bincode.writeToSlice(buf[0..], crds_data, bincode.Params.standard); try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); } + +test "gossip.crds: random crds data" { + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + { + const data = LegacyContactInfo.random(rng); + _ = data; + } + { + const data = EpochSlots.random(rng); + _ = data; + } + { + const data = Vote.random(rng); + _ = data; + } + { + const data = DuplicateShred.random(rng); + _ = data; + } + { + const data = CrdsData.random(rng); + _ = data; + } +} diff --git a/src/gossip/net.zig b/src/gossip/net.zig index bc4581f79..a3e6df0c6 100644 --- a/src/gossip/net.zig +++ b/src/gossip/net.zig @@ -16,6 +16,27 @@ pub const SocketAddr = union(enum(u8)) { }, }; + pub fn random(rng: std.rand.Random) Self { + const pport = rng.int(u16); + + var version = rng.int(u8); + if (version % 2 == 0) { + var octets: [4]u8 = undefined; + rng.bytes(&octets); + + return Self{ + .V4 = .{ .ip = Ipv4Addr.init(octets[0], octets[1], octets[2], octets[3]), .port = pport }, + }; + } else { + var octets: [16]u8 = undefined; + rng.bytes(&octets); + + return Self{ + .V6 = .{ .ip = Ipv6Addr.init(octets), .port = pport, .flowinfo = 0, .scope_id = 0 }, + }; + } + } + pub fn init_ipv4(octets: [4]u8, portt: u16) Self { return Self{ .V4 = .{ .ip = Ipv4Addr.init(octets[0], octets[1], octets[2], octets[3]), .port = portt }, @@ -177,3 +198,9 @@ pub const IpAddr = union(enum(u32)) { } } }; + +test "gossip.net: test random" { + var rng = std.rand.DefaultPrng.init(@intCast(std.time.milliTimestamp())); + var addr = SocketAddr.random(rng.random()); + _ = addr; +} \ No newline at end of file From ba2124980b54511827a0c7731d2a8d4f9952d055 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 14:13:24 -0400 Subject: [PATCH 13/48] fix undefined seg fault bug --- src/gossip/crds.zig | 81 +++++++++++++++++++------------------- src/gossip/crds_shards.zig | 19 +++++++++ src/gossip/crds_table.zig | 23 +++++++++++ src/gossip/net.zig | 10 ++--- 4 files changed, 87 insertions(+), 46 deletions(-) diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index 44c93f981..5a7730cbd 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -49,7 +49,7 @@ pub const CrdsValue = struct { return self; } - pub fn random(rng: std.rand.Random, keypair: Keypair) !Self { + pub fn random(rng: std.rand.Random, keypair: KeyPair) !Self { return try Self.initSigned(CrdsData.random(rng), keypair); } @@ -292,34 +292,25 @@ pub const CrdsData = union(enum(u32)) { pub fn random(rng: std.rand.Random) CrdsData { const v = rng.intRangeAtMost(u16, 0, 3); - return switch (v) { - 0 => blk: { - const x = LegacyContactInfo.random(rng); - break :blk CrdsData { - .LegacyContactInfo = x - }; - }, - 1 => blk: { - const x = EpochSlots.random(rng); - break :blk CrdsData { - .EpochSlots = .{ rng.int(u8), x } - }; - }, - 2 => blk: { - const x = Vote.random(rng); - break :blk CrdsData { - .Vote = .{ rng.int(u8), x } - }; - }, - else => blk: { - const x = DuplicateShred.random(rng); - break :blk CrdsData { - .DuplicateShred = .{ rng.int(u16), x } - }; - }, + return switch (v) { + 0 => blk: { + const x = LegacyContactInfo.random(rng); + break :blk CrdsData{ .LegacyContactInfo = x }; + }, + 1 => blk: { + const x = EpochSlots.random(rng); + break :blk CrdsData{ .EpochSlots = .{ rng.int(u8), x } }; + }, + 2 => blk: { + const x = Vote.random(rng); + break :blk CrdsData{ .Vote = .{ rng.int(u8), x } }; + }, + else => blk: { + const x = DuplicateShred.random(rng); + break :blk CrdsData{ .DuplicateShred = .{ rng.int(u16), x } }; + }, }; } - }; pub const Vote = struct { @@ -375,9 +366,10 @@ pub const EpochSlots = struct { wallclock: u64, pub fn random(rng: std.rand.Random) EpochSlots { + var slice: [0]CompressedSlots = .{}; return EpochSlots{ .from = Pubkey.random(rng, .{ .skip_encoding = true }), - .slots = undefined, + .slots = &slice, .wallclock = rng.int(u64), }; } @@ -511,6 +503,7 @@ pub const DuplicateShred = struct { chunk: []u8, pub fn random(rng: std.rand.Random) DuplicateShred { + var slice = [_]u8{0} ** 32; return DuplicateShred{ .from = Pubkey.random(rng, .{ .skip_encoding = true }), .wallclock = rng.int(u64), @@ -519,7 +512,7 @@ pub const DuplicateShred = struct { .shred_type = ShredType.Data, .num_chunks = rng.int(u8), .chunk_index = rng.int(u8), - .chunk = undefined, + .chunk = &slice, }; } }; @@ -579,7 +572,6 @@ test "gossip.crds: contact info serialization matches rust" { legacy_contact_info.id = id; legacy_contact_info.wallclock = 0; - var contact_info_rust = [_]u8{ 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // var bytes = try bincode.writeToSlice(buf[0..], legacy_contact_info, bincode.Params.standard); @@ -610,29 +602,36 @@ test "gossip.crds: crds data serialization matches rust" { try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); } -test "gossip.crds: random crds data" { +test "gossip.crds: random crds data" { var seed: u64 = @intCast(std.time.milliTimestamp()); var rand = std.rand.DefaultPrng.init(seed); const rng = rand.random(); - { + var buf: [1000]u8 = undefined; + + { const data = LegacyContactInfo.random(rng); - _ = data; + const result = try bincode.writeToSlice(&buf, data, bincode.Params.standard); + _ = result; } - { + { const data = EpochSlots.random(rng); - _ = data; + const result = try bincode.writeToSlice(&buf, data, bincode.Params.standard); + _ = result; } - { + { const data = Vote.random(rng); - _ = data; + const result = try bincode.writeToSlice(&buf, data, bincode.Params.standard); + _ = result; } - { + { const data = DuplicateShred.random(rng); - _ = data; + const result = try bincode.writeToSlice(&buf, data, bincode.Params.standard); + _ = result; } - { + { const data = CrdsData.random(rng); - _ = data; + const result = try bincode.writeToSlice(&buf, data, bincode.Params.standard); + _ = result; } } diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 37f2e8c66..cd63de884 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -112,6 +112,8 @@ pub const CrdsShards = struct { } }; +const CrdsTable = @import("crds_table.zig").CrdsTable; + test "gossip.crds_shards: tests CrdsShards" { var shards = try CrdsShards.init(std.testing.allocator, 10); defer shards.deinit(); @@ -123,3 +125,20 @@ test "gossip.crds_shards: tests CrdsShards" { const result = try shards.find(std.testing.allocator, 20, 10); defer result.deinit(); } + +test "gossip.crds_shards: mask matches" { + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + const keypair = try KeyPair.create([_]u8{1} ** 32); + var value = try CrdsValue.random(rng, keypair); + const label = value.label(); + + try crds_table.insert(value, 0); + const x = crds_table.get(label).?; + _ = x; +} diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 81fd37667..39a804988 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -188,6 +188,10 @@ pub const CrdsTable = struct { } } + pub fn get(self: *Self, label: CrdsValueLabel) ?CrdsVersionedValue { + return self.store.get(label); + } + pub fn get_votes_with_cursor(self: *Self, buf: []*CrdsVersionedValue, caller_cursor: *usize) ![]*CrdsVersionedValue { const keys = self.votes.keys(); var index: usize = 0; @@ -298,6 +302,25 @@ pub fn crds_overwrites(new_value: *const CrdsVersionedValue, old_value: *const C } } +test "gossip.crds_table: insert and get" { + const keypair = try KeyPair.create([_]u8{1} ** 32); + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + var value = try CrdsValue.random(rng, keypair); + + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + try crds_table.insert(value, 0); + + const label = value.label(); + const x = crds_table.get(label).?; + _ = x; +} + test "gossip.crds_table: insert and get votes" { var kp_bytes = [_]u8{1} ** 32; const kp = try KeyPair.create(kp_bytes); diff --git a/src/gossip/net.zig b/src/gossip/net.zig index a3e6df0c6..81e06ff0d 100644 --- a/src/gossip/net.zig +++ b/src/gossip/net.zig @@ -16,18 +16,18 @@ pub const SocketAddr = union(enum(u8)) { }, }; - pub fn random(rng: std.rand.Random) Self { + pub fn random(rng: std.rand.Random) Self { const pport = rng.int(u16); var version = rng.int(u8); - if (version % 2 == 0) { + if (version % 2 == 0) { var octets: [4]u8 = undefined; rng.bytes(&octets); return Self{ .V4 = .{ .ip = Ipv4Addr.init(octets[0], octets[1], octets[2], octets[3]), .port = pport }, }; - } else { + } else { var octets: [16]u8 = undefined; rng.bytes(&octets); @@ -199,8 +199,8 @@ pub const IpAddr = union(enum(u32)) { } }; -test "gossip.net: test random" { +test "gossip.net: test random" { var rng = std.rand.DefaultPrng.init(@intCast(std.time.milliTimestamp())); var addr = SocketAddr.random(rng.random()); _ = addr; -} \ No newline at end of file +} From fa2a74a0322874438683b52322113af06a77bfcb Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 14:42:24 -0400 Subject: [PATCH 14/48] add shard tests + fix bug --- src/gossip/crds_shards.zig | 67 ++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index cd63de884..a565a87ca 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -103,7 +103,7 @@ pub const CrdsShards = struct { var result = std.ArrayList(usize).init(alloc); var insert_index: usize = 0; for ((end - count)..end) |shard_index| { - const shard = self.get_shard(shard_index); + const shard = self.shards.items[shard_index]; try result.insertSlice(insert_index, shard.keys()); insert_index += shard.count(); } @@ -126,6 +126,37 @@ test "gossip.crds_shards: tests CrdsShards" { defer result.deinit(); } +fn new_test_crds_value(rng: std.rand.Random, crds_table: *CrdsTable) !CrdsVersionedValue { + const keypair = try KeyPair.create(null); + var value = try CrdsValue.random(rng, keypair); + const label = value.label(); + + try crds_table.insert(value, 0); + const x = crds_table.get(label).?; + return x; +} + +fn check_mask(value: *const CrdsVersionedValue, mask: u64, mask_bits: u32) bool { + const uhash = CrdsPull.hash_to_u64(&value.value_hash); + const ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); + return (uhash | ones) == (mask | ones); +} + +fn filter_crds_values( + alloc: std.mem.Allocator, + values: []CrdsVersionedValue, + mask: u64, + mask_bits: u32, +) !std.AutoHashMap(usize, void) { + var result = std.AutoHashMap(usize, void).init(alloc); + for (values, 0..) |value, i| { + if (check_mask(&value, mask, mask_bits)) { + try result.put(i, {}); + } + } + return result; +} + test "gossip.crds_shards: mask matches" { var seed: u64 = @intCast(std.time.milliTimestamp()); var rand = std.rand.DefaultPrng.init(seed); @@ -134,11 +165,33 @@ test "gossip.crds_shards: mask matches" { var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); - const keypair = try KeyPair.create([_]u8{1} ** 32); - var value = try CrdsValue.random(rng, keypair); - const label = value.label(); + var crds_shards = try CrdsShards.init(std.testing.allocator, 5); + defer crds_shards.deinit(); - try crds_table.insert(value, 0); - const x = crds_table.get(label).?; - _ = x; + // gen ranndom values + var values = try std.ArrayList(CrdsVersionedValue).initCapacity(std.testing.allocator, 1000); + defer values.deinit(); + while (values.items.len < 1000) { + const value = try new_test_crds_value(rng, &crds_table); + try values.append(value); + try crds_shards.insert(value.ordinal, &value.value_hash); + } + + for (0..10) |_| { + var mask = rng.int(u64); + for (0..12) |mask_bits| { + var set = try filter_crds_values(std.testing.allocator, values.items, mask, @intCast(mask_bits)); + defer set.deinit(); + + var indexs = try crds_shards.find(std.testing.allocator, mask, @intCast(mask_bits)); + defer indexs.deinit(); + + try std.testing.expectEqual(set.count(), @as(u32, @intCast(indexs.items.len))); + + for (indexs.items) |index| { + _ = set.remove(index); + } + try std.testing.expectEqual(set.count(), 0); + } + } } From 930a20da27f691dea3bf5cb9fad9d77bda7a9a0c Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 14:58:39 -0400 Subject: [PATCH 15/48] add comments on shard finding --- src/gossip/crds_shards.zig | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index a565a87ca..9bf591348 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -23,6 +23,9 @@ const RwLock = std.Thread.RwLock; const CrdsPull = @import("./pull.zig"); pub const CrdsShards = struct { + // shards[k] includes crds values which the first shard_bits of their hash + // value is equal to k. Each shard is a mapping from crds values indices to + // their hash value. shards: std.ArrayList(AutoArrayHashMap(usize, u64)), shard_bits: u32, @@ -72,17 +75,25 @@ pub const CrdsShards = struct { return @intCast(hash >> shift_bits); } + /// see filter_crds_values for more readable (but inefficient) version of what this fcn is doing pub fn find(self: *const Self, alloc: std.mem.Allocator, mask: u64, mask_bits: u32) !std.ArrayList(usize) { const ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); const match_mask = mask | ones; if (self.shard_bits < mask_bits) { + // shard_bits is smaller, all matches with mask will be in the same shard index + // eg, shard_bits = 3, shardvalues == XX + // mask_bits = 5, mask == ABCD + // all shard inserts will match mask AB + // still need to scan bc of the last two bits of the shards + const shard = self.get_shard(match_mask); - var result = std.ArrayList(usize).init(alloc); var shard_iter = shard.iterator(); + var result = std.ArrayList(usize).init(alloc); while (shard_iter.next()) |entry| { const hash = entry.value_ptr.*; + // see check_mask if (hash | ones == match_mask) { const index = entry.key_ptr.*; try result.append(index); @@ -90,12 +101,24 @@ pub const CrdsShards = struct { } return result; } else if (self.shard_bits == mask_bits) { + // when bits are equal we know the lookup will be exact + // eg, + // shard_bits == mask_bits == 3 + // mask = ABCD, shard = XYZ + // get_shard(ABC) == get_shard(XYZ) + const shard = self.get_shard(match_mask); var result = try std.ArrayList(usize).initCapacity(alloc, shard.count()); try result.insertSlice(0, shard.keys()); return result; } else { // shardbits > maskbits + // eg, shard_bits = 5, shardvalues == XYZ + // mask_bits = 3, mask == AB + // mask will match the mask + 2^(of the other bits) + // and since its ordered we can just take the values before it + // since AB will match XY and 2^1 (Z) + const shift_bits: u6 = @intCast(self.shard_bits - mask_bits); const count: usize = @intCast(@as(u64, 1) << shift_bits); const end = CrdsShards.compute_shard_index(self.shard_bits, match_mask) + 1; @@ -126,11 +149,11 @@ test "gossip.crds_shards: tests CrdsShards" { defer result.deinit(); } +// test helper fcns fn new_test_crds_value(rng: std.rand.Random, crds_table: *CrdsTable) !CrdsVersionedValue { const keypair = try KeyPair.create(null); var value = try CrdsValue.random(rng, keypair); const label = value.label(); - try crds_table.insert(value, 0); const x = crds_table.get(label).?; return x; @@ -142,6 +165,7 @@ fn check_mask(value: *const CrdsVersionedValue, mask: u64, mask_bits: u32) bool return (uhash | ones) == (mask | ones); } +// does the same thing as find() but a lot more inefficient fn filter_crds_values( alloc: std.mem.Allocator, values: []CrdsVersionedValue, @@ -157,7 +181,7 @@ fn filter_crds_values( return result; } -test "gossip.crds_shards: mask matches" { +test "gossip.crds_shards: test shard find" { var seed: u64 = @intCast(std.time.milliTimestamp()); var rand = std.rand.DefaultPrng.init(seed); const rng = rand.random(); @@ -177,6 +201,7 @@ test "gossip.crds_shards: mask matches" { try crds_shards.insert(value.ordinal, &value.value_hash); } + // test find with different mask bit sizes (< > == shard bits) for (0..10) |_| { var mask = rng.int(u64); for (0..12) |mask_bits| { From 162b776ac5556613ade09d4a0e3c32729eb93d56 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 19:50:04 -0400 Subject: [PATCH 16/48] add pull crds_filter tests --- src/gossip/crds.zig | 10 +-- src/gossip/crds_table.zig | 10 +-- src/gossip/pull.zig | 128 +++++++++++++++++++++++++++++++++++++- 3 files changed, 133 insertions(+), 15 deletions(-) diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index 5a7730cbd..5b58277e5 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -255,7 +255,7 @@ pub const LegacyContactInfo = struct { .rpc = SocketAddr.random(rng), .rpc_pubsub = SocketAddr.random(rng), .serve_repair = SocketAddr.random(rng), - .wallclock = rng.int(u64), + .wallclock = get_wallclock(), .shred_version = rng.int(u16), }; } @@ -325,7 +325,7 @@ pub const Vote = struct { return Vote{ .from = Pubkey.random(rng, .{ .skip_encoding = true }), .transaction = Transaction.default(), - .wallclock = rng.int(u64), + .wallclock = get_wallclock(), .slot = Slot.init(rng.int(u64)), }; } @@ -370,7 +370,7 @@ pub const EpochSlots = struct { return EpochSlots{ .from = Pubkey.random(rng, .{ .skip_encoding = true }), .slots = &slice, - .wallclock = rng.int(u64), + .wallclock = get_wallclock(), }; } }; @@ -430,7 +430,7 @@ pub const Version = struct { pub fn default(from: Pubkey) Self { return Self{ .from = from, - .wallclock = @intCast(std.time.milliTimestamp()), + .wallclock = get_wallclock(), .version = LegacyVersion2.CURRENT, }; } @@ -506,7 +506,7 @@ pub const DuplicateShred = struct { var slice = [_]u8{0} ** 32; return DuplicateShred{ .from = Pubkey.random(rng, .{ .skip_encoding = true }), - .wallclock = rng.int(u64), + .wallclock = get_wallclock(), .slot = Slot.init(rng.int(u64)), .shred_index = rng.int(u32), .shred_type = ShredType.Data, diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 39a804988..e455c9c52 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -274,15 +274,9 @@ pub const CrdsTable = struct { alloc: std.mem.Allocator, mask: u64, mask_bits: u64, - ) !std.ArrayList(CrdsVersionedValue) { + ) !std.ArrayList(usize) { const indexs = try self.shards.find(alloc, mask, @intCast(mask_bits)); - var result = try std.ArrayList(CrdsVersionedValue).initCapacity(alloc, indexs.items.len); - - for (indexs.items) |index| { - var entry = self.store.iterator().values[index]; - result.append(entry) catch unreachable; - } - return result; + return indexs; } }; diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 0d8c61a1d..ead62ed98 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -17,11 +17,77 @@ const ln = std.math.ln; const exp = std.math.exp; const CrdsTable = @import("crds_table.zig").CrdsTable; +const crds = @import("crds.zig"); +const CrdsValue = crds.CrdsValue; + +pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; pub const MAX_NUM_PULL_REQUESTS: usize = 20; // labs - 1024; pub const FALSE_RATE: f64 = 0.1; pub const KEYS: f64 = 8; +// TODO: make it batch +pub fn filter_crds_values( + alloc: std.mem.Allocator, + crds_table: *CrdsTable, + value: *CrdsValue, + filter: *CrdsFilter, + output_size_limit: usize, + now: u64, +) !?ArrayList(CrdsValue) { + crds_table.read(); + defer crds_table.release_read(); + + if (output_size_limit == 0) { + return null; + } + + var caller_wallclock = value.wallclock(); + const is_too_old = caller_wallclock < now -| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; + const is_too_new = caller_wallclock > now +| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; + if (is_too_old or is_too_new) { + return null; + } + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + const jitter = rng.intRangeAtMost(u64, 0, CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS / 4); + caller_wallclock = caller_wallclock + jitter; + + var output = ArrayList(CrdsValue).init(alloc); + var bloom = filter.filter; + + var match_indexs = try crds_table.get_bitmask_matches(alloc, filter.mask, filter.mask_bits); + defer match_indexs.deinit(); + + for (match_indexs.items) |entry_index| { + var entry = crds_table.store.iterator().values[entry_index]; + + // entry is too new + if (entry.value.wallclock() > caller_wallclock) { + continue; + } + // entry is already contained in the bloom + if (bloom.contains(&entry.value_hash.data)) { + continue; + } + // exclude contact info (? not sure why - labs does it) + if (entry.value.data == crds.CrdsData.ContactInfo) { + continue; + } + + // good + try output.append(entry.value); + if (output.items.len == output_size_limit) { + break; + } + } + + return output; +} + pub fn deinit_crds_filters(filters: *ArrayList(CrdsFilter)) void { for (filters.items) |*filter| { filter.deinit(); @@ -210,9 +276,67 @@ pub fn hash_to_u64(hash: *const Hash) u64 { return std.mem.readIntLittle(u64, buf); } -test "gossip.pull: test build_crds_filters" { - const crds = @import("./crds.zig"); +test "gossip.pull: test filter_crds_values" { + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + // insert a some value + const kp = try KeyPair.create([_]u8{1} ** 32); + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + for (0..100) |_| { + // var id = Pubkey.random(rng, .{}); + // var legacy_contact_info = crds.LegacyContactInfo.default(); + // legacy_contact_info.wallclock = 40; + // legacy_contact_info.id = id; + // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ + // .LegacyContactInfo = legacy_contact_info, + // }, kp); + var crds_value = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(crds_value, 0); + } + + const max_bytes = 10; + + // recver + var filters = try build_crds_filters(std.testing.allocator, &crds_table, max_bytes); + defer deinit_crds_filters(&filters); + var filter = filters.items[0]; + + // corresponding value + const pk = kp.public_key; + var id = Pubkey.fromPublicKey(&pk, true); + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; + legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); + var crds_value = try CrdsValue.initSigned(crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }, kp); + + // insert more values which the filters should be missing + for (0..64) |_| { + var v2 = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(v2, 0); + } + + var values = (try filter_crds_values( + std.testing.allocator, + &crds_table, + &crds_value, + &filter, + 100, + @intCast(std.time.milliTimestamp()), + )).?; + defer values.deinit(); + + try std.testing.expect(values.items.len > 0); +} + +test "gossip.pull: test build_crds_filters" { var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); From c9d293d0cd22caab30df1164523baf035cbcc3d4 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 20:04:15 -0400 Subject: [PATCH 17/48] add pull logic to gossip service --- src/gossip/gossip_service.zig | 28 ++++++++++++++++++++++++++++ src/gossip/pull.zig | 13 ++++++++----- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index a6afe13fc..8f7a5d05a 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -23,6 +23,8 @@ const CrdsTable = _crds_table.CrdsTable; const CrdsError = _crds_table.CrdsError; const Logger = @import("../trace/log.zig").Logger; +const crds_pull = @import("../gossip/pull.zig"); + var gpa_allocator = std.heap.GeneralPurposeAllocator(.{}){}; var gpa = gpa_allocator.allocator(); @@ -38,6 +40,7 @@ pub const GossipService = struct { packet_channel: PacketChannel, responder_channel: PacketChannel, crds_table: CrdsTable, + allocator: std.mem.Allocator, const Self = @This(); @@ -58,6 +61,7 @@ pub const GossipService = struct { .packet_channel = packet_channel, .responder_channel = responder_channel, .crds_table = crds_table, + .allocator = allocator, }; } @@ -98,6 +102,14 @@ pub const GossipService = struct { try self.send_ping(&peer, logger); try self.push_contact_info(&peer); + // generate pull requests + const filters = crds_pull.build_crds_filters(self.allocator, &self.crds_table, crds_pull.MAX_BLOOM_SIZE) catch { + // TODO: handle this -- crds store not enough data? + std.time.sleep(std.time.ns_per_s * 1); + continue; + }; + defer crds_pull.deinit_crds_filters(&filters); + std.time.sleep(std.time.ns_per_s * 1); } } @@ -213,6 +225,22 @@ pub const GossipService = struct { const values = pull[1]; insert_crds_values(crds_table, values, logger); }, + .PullRequest => |*pull| { + var filter = pull[0]; + var value = pull[1]; + const now = get_wallclock(); + + const crds_values = try crds_pull.filter_crds_values( + allocator, + crds_table, + &value, + &filter, + 100, + now, + ); + // TODO: send them out as a pull response + _ = crds_values; + }, else => { logger.debugf("got a protocol message: {any}", .{protocol_message}); }, diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index ead62ed98..067a31eda 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -20,6 +20,9 @@ const CrdsTable = @import("crds_table.zig").CrdsTable; const crds = @import("crds.zig"); const CrdsValue = crds.CrdsValue; +pub const MAX_CRDS_OBJECT_SIZE: usize = 928; +pub const MAX_BLOOM_SIZE: usize = MAX_CRDS_OBJECT_SIZE; + pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; pub const MAX_NUM_PULL_REQUESTS: usize = 20; // labs - 1024; @@ -34,19 +37,19 @@ pub fn filter_crds_values( filter: *CrdsFilter, output_size_limit: usize, now: u64, -) !?ArrayList(CrdsValue) { +) !ArrayList(CrdsValue) { crds_table.read(); defer crds_table.release_read(); if (output_size_limit == 0) { - return null; + return ArrayList(CrdsValue).init(alloc); } var caller_wallclock = value.wallclock(); const is_too_old = caller_wallclock < now -| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; const is_too_new = caller_wallclock > now +| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; if (is_too_old or is_too_new) { - return null; + return ArrayList(CrdsValue).init(alloc); } var seed: u64 = @intCast(std.time.milliTimestamp()); @@ -323,14 +326,14 @@ test "gossip.pull: test filter_crds_values" { try crds_table.insert(v2, 0); } - var values = (try filter_crds_values( + var values = try filter_crds_values( std.testing.allocator, &crds_table, &crds_value, &filter, 100, @intCast(std.time.milliTimestamp()), - )).?; + ); defer values.deinit(); try std.testing.expect(values.items.len > 0); From a253d2b1ec367b1d6da43bba748b3e4aa27e45f9 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 20:11:29 -0400 Subject: [PATCH 18/48] fix --- src/bloom/bloom.zig | 1 + src/gossip/crds_shards.zig | 2 +- src/gossip/gossip_service.zig | 2 +- src/gossip/pull.zig | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index ba0dd4384..eac9a831d 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -49,6 +49,7 @@ pub const Bloom = struct { self.keys.deinit(); } + // used in tests pub fn add_key(self: *Self, key: u64) !void { try self.keys.append(key); } diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 9bf591348..18e3d74ad 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -104,7 +104,7 @@ pub const CrdsShards = struct { // when bits are equal we know the lookup will be exact // eg, // shard_bits == mask_bits == 3 - // mask = ABCD, shard = XYZ + // mask = ABC, shard = XYZ // get_shard(ABC) == get_shard(XYZ) const shard = self.get_shard(match_mask); diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 8f7a5d05a..db62e6d5c 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -103,7 +103,7 @@ pub const GossipService = struct { try self.push_contact_info(&peer); // generate pull requests - const filters = crds_pull.build_crds_filters(self.allocator, &self.crds_table, crds_pull.MAX_BLOOM_SIZE) catch { + var filters = crds_pull.build_crds_filters(self.allocator, &self.crds_table, crds_pull.MAX_BLOOM_SIZE) catch { // TODO: handle this -- crds store not enough data? std.time.sleep(std.time.ns_per_s * 1); continue; diff --git a/src/gossip/pull.zig b/src/gossip/pull.zig index 067a31eda..fcffd0dd2 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull.zig @@ -234,7 +234,7 @@ pub const CrdsFilter = struct { const Self = @This(); - // only used in tests + /// only used in tests pub fn init(allocator: std.mem.Allocator) Self { return Self{ .filter = Bloom.init(allocator, 0, null), From 00acbaa5a1c5f27d58e5a89a1c2df8763ab67768 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 20:19:43 -0400 Subject: [PATCH 19/48] change file organization --- src/gossip/crds_shards.zig | 2 +- src/gossip/gossip_service.zig | 9 +- src/gossip/protocol.zig | 2 +- src/gossip/{pull.zig => pull_request.zig} | 138 +------------------- src/gossip/pull_response.zig | 148 ++++++++++++++++++++++ src/lib.zig | 3 +- 6 files changed, 164 insertions(+), 138 deletions(-) rename src/gossip/{pull.zig => pull_request.zig} (73%) create mode 100644 src/gossip/pull_response.zig diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 18e3d74ad..cf804f236 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -20,7 +20,7 @@ const Pubkey = @import("../core/pubkey.zig").Pubkey; const KeyPair = std.crypto.sign.Ed25519.KeyPair; const RwLock = std.Thread.RwLock; -const CrdsPull = @import("./pull.zig"); +const CrdsPull = @import("./pull_request.zig"); pub const CrdsShards = struct { // shards[k] includes crds values which the first shard_bits of their hash diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index db62e6d5c..5c0a1848a 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -23,7 +23,8 @@ const CrdsTable = _crds_table.CrdsTable; const CrdsError = _crds_table.CrdsError; const Logger = @import("../trace/log.zig").Logger; -const crds_pull = @import("../gossip/pull.zig"); +const crds_pull_request = @import("../gossip/pull_request.zig"); +const crds_pull_response = @import("../gossip/pull_response.zig"); var gpa_allocator = std.heap.GeneralPurposeAllocator(.{}){}; var gpa = gpa_allocator.allocator(); @@ -103,12 +104,12 @@ pub const GossipService = struct { try self.push_contact_info(&peer); // generate pull requests - var filters = crds_pull.build_crds_filters(self.allocator, &self.crds_table, crds_pull.MAX_BLOOM_SIZE) catch { + var filters = crds_pull_request.build_crds_filters(self.allocator, &self.crds_table, crds_pull_request.MAX_BLOOM_SIZE) catch { // TODO: handle this -- crds store not enough data? std.time.sleep(std.time.ns_per_s * 1); continue; }; - defer crds_pull.deinit_crds_filters(&filters); + defer crds_pull_request.deinit_crds_filters(&filters); std.time.sleep(std.time.ns_per_s * 1); } @@ -230,7 +231,7 @@ pub const GossipService = struct { var value = pull[1]; const now = get_wallclock(); - const crds_values = try crds_pull.filter_crds_values( + const crds_values = try crds_pull_response.filter_crds_values( allocator, crds_table, &value, diff --git a/src/gossip/protocol.zig b/src/gossip/protocol.zig index 68bbc5ddc..8be33efb2 100644 --- a/src/gossip/protocol.zig +++ b/src/gossip/protocol.zig @@ -13,7 +13,7 @@ const Version = crds.Version; const LegacyVersion2 = crds.LegacyVersion2; const LegacyContactInfo = crds.LegacyContactInfo; -const pull_import = @import("pull.zig"); +const pull_import = @import("pull_request.zig"); const CrdsFilter = pull_import.CrdsFilter; const Option = @import("../option.zig").Option; diff --git a/src/gossip/pull.zig b/src/gossip/pull_request.zig similarity index 73% rename from src/gossip/pull.zig rename to src/gossip/pull_request.zig index fcffd0dd2..7b9d19630 100644 --- a/src/gossip/pull.zig +++ b/src/gossip/pull_request.zig @@ -23,81 +23,10 @@ const CrdsValue = crds.CrdsValue; pub const MAX_CRDS_OBJECT_SIZE: usize = 928; pub const MAX_BLOOM_SIZE: usize = MAX_CRDS_OBJECT_SIZE; -pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; - pub const MAX_NUM_PULL_REQUESTS: usize = 20; // labs - 1024; pub const FALSE_RATE: f64 = 0.1; pub const KEYS: f64 = 8; -// TODO: make it batch -pub fn filter_crds_values( - alloc: std.mem.Allocator, - crds_table: *CrdsTable, - value: *CrdsValue, - filter: *CrdsFilter, - output_size_limit: usize, - now: u64, -) !ArrayList(CrdsValue) { - crds_table.read(); - defer crds_table.release_read(); - - if (output_size_limit == 0) { - return ArrayList(CrdsValue).init(alloc); - } - - var caller_wallclock = value.wallclock(); - const is_too_old = caller_wallclock < now -| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; - const is_too_new = caller_wallclock > now +| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; - if (is_too_old or is_too_new) { - return ArrayList(CrdsValue).init(alloc); - } - - var seed: u64 = @intCast(std.time.milliTimestamp()); - var rand = std.rand.DefaultPrng.init(seed); - const rng = rand.random(); - - const jitter = rng.intRangeAtMost(u64, 0, CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS / 4); - caller_wallclock = caller_wallclock + jitter; - - var output = ArrayList(CrdsValue).init(alloc); - var bloom = filter.filter; - - var match_indexs = try crds_table.get_bitmask_matches(alloc, filter.mask, filter.mask_bits); - defer match_indexs.deinit(); - - for (match_indexs.items) |entry_index| { - var entry = crds_table.store.iterator().values[entry_index]; - - // entry is too new - if (entry.value.wallclock() > caller_wallclock) { - continue; - } - // entry is already contained in the bloom - if (bloom.contains(&entry.value_hash.data)) { - continue; - } - // exclude contact info (? not sure why - labs does it) - if (entry.value.data == crds.CrdsData.ContactInfo) { - continue; - } - - // good - try output.append(entry.value); - if (output.items.len == output_size_limit) { - break; - } - } - - return output; -} - -pub fn deinit_crds_filters(filters: *ArrayList(CrdsFilter)) void { - for (filters.items) |*filter| { - filter.deinit(); - } - filters.deinit(); -} - /// parses all the values in the crds table and returns a list of /// corresponding filters. Note: make sure to call deinit_crds_filters. pub fn build_crds_filters( @@ -124,6 +53,13 @@ pub fn build_crds_filters( return filters; } +pub fn deinit_crds_filters(filters: *ArrayList(CrdsFilter)) void { + for (filters.items) |*filter| { + filter.deinit(); + } + filters.deinit(); +} + pub const CrdsFilterSet = struct { filters: ArrayList(Bloom), @@ -279,66 +215,6 @@ pub fn hash_to_u64(hash: *const Hash) u64 { return std.mem.readIntLittle(u64, buf); } -test "gossip.pull: test filter_crds_values" { - var crds_table = try CrdsTable.init(std.testing.allocator); - defer crds_table.deinit(); - - // insert a some value - const kp = try KeyPair.create([_]u8{1} ** 32); - - var seed: u64 = @intCast(std.time.milliTimestamp()); - var rand = std.rand.DefaultPrng.init(seed); - const rng = rand.random(); - - for (0..100) |_| { - // var id = Pubkey.random(rng, .{}); - // var legacy_contact_info = crds.LegacyContactInfo.default(); - // legacy_contact_info.wallclock = 40; - // legacy_contact_info.id = id; - // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ - // .LegacyContactInfo = legacy_contact_info, - // }, kp); - - var crds_value = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(crds_value, 0); - } - - const max_bytes = 10; - - // recver - var filters = try build_crds_filters(std.testing.allocator, &crds_table, max_bytes); - defer deinit_crds_filters(&filters); - var filter = filters.items[0]; - - // corresponding value - const pk = kp.public_key; - var id = Pubkey.fromPublicKey(&pk, true); - var legacy_contact_info = crds.LegacyContactInfo.default(); - legacy_contact_info.id = id; - legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); - var crds_value = try CrdsValue.initSigned(crds.CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }, kp); - - // insert more values which the filters should be missing - for (0..64) |_| { - var v2 = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(v2, 0); - } - - var values = try filter_crds_values( - std.testing.allocator, - &crds_table, - &crds_value, - &filter, - 100, - @intCast(std.time.milliTimestamp()), - ); - defer values.deinit(); - - try std.testing.expect(values.items.len > 0); -} - test "gossip.pull: test build_crds_filters" { var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig new file mode 100644 index 000000000..4fa7784af --- /dev/null +++ b/src/gossip/pull_response.zig @@ -0,0 +1,148 @@ +const std = @import("std"); +const SocketAddr = @import("net.zig").SocketAddr; +const Tuple = std.meta.Tuple; +const Hash = @import("../core/hash.zig").Hash; +const Signature = @import("../core/signature.zig").Signature; +const Transaction = @import("../core/transaction.zig").Transaction; +const Slot = @import("../core/slot.zig").Slot; +const Option = @import("../option.zig").Option; +const ContactInfo = @import("node.zig").ContactInfo; +const bincode = @import("../bincode/bincode.zig"); +const ArrayList = std.ArrayList; +const ArrayListConfig = @import("../utils/arraylist.zig").ArrayListConfig; +const Bloom = @import("../bloom/bloom.zig").Bloom; +const KeyPair = std.crypto.sign.Ed25519.KeyPair; +const Pubkey = @import("../core/pubkey.zig").Pubkey; +const ln = std.math.ln; +const exp = std.math.exp; + +const CrdsTable = @import("crds_table.zig").CrdsTable; +const crds = @import("crds.zig"); +const CrdsValue = crds.CrdsValue; + +const crds_pull_req = @import("./pull_request.zig"); +const CrdsFilter = crds_pull_req.CrdsFilter; + +pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; + +// TODO: make it batch +pub fn filter_crds_values( + alloc: std.mem.Allocator, + crds_table: *CrdsTable, + value: *CrdsValue, + filter: *CrdsFilter, + output_size_limit: usize, + now: u64, +) !ArrayList(CrdsValue) { + crds_table.read(); + defer crds_table.release_read(); + + if (output_size_limit == 0) { + return ArrayList(CrdsValue).init(alloc); + } + + var caller_wallclock = value.wallclock(); + const is_too_old = caller_wallclock < now -| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; + const is_too_new = caller_wallclock > now +| CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS; + if (is_too_old or is_too_new) { + return ArrayList(CrdsValue).init(alloc); + } + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + const jitter = rng.intRangeAtMost(u64, 0, CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS / 4); + caller_wallclock = caller_wallclock + jitter; + + var output = ArrayList(CrdsValue).init(alloc); + var bloom = filter.filter; + + var match_indexs = try crds_table.get_bitmask_matches(alloc, filter.mask, filter.mask_bits); + defer match_indexs.deinit(); + + for (match_indexs.items) |entry_index| { + var entry = crds_table.store.iterator().values[entry_index]; + + // entry is too new + if (entry.value.wallclock() > caller_wallclock) { + continue; + } + // entry is already contained in the bloom + if (bloom.contains(&entry.value_hash.data)) { + continue; + } + // exclude contact info (? not sure why - labs does it) + if (entry.value.data == crds.CrdsData.ContactInfo) { + continue; + } + + // good + try output.append(entry.value); + if (output.items.len == output_size_limit) { + break; + } + } + + return output; +} + +test "gossip.pull: test filter_crds_values" { + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + // insert a some value + const kp = try KeyPair.create([_]u8{1} ** 32); + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + for (0..100) |_| { + // var id = Pubkey.random(rng, .{}); + // var legacy_contact_info = crds.LegacyContactInfo.default(); + // legacy_contact_info.wallclock = 40; + // legacy_contact_info.id = id; + // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ + // .LegacyContactInfo = legacy_contact_info, + // }, kp); + + var crds_value = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(crds_value, 0); + } + + const max_bytes = 10; + + // recver + var filters = try crds_pull_req.build_crds_filters(std.testing.allocator, &crds_table, max_bytes); + defer crds_pull_req.deinit_crds_filters(&filters); + var filter = filters.items[0]; + + // corresponding value + const pk = kp.public_key; + var id = Pubkey.fromPublicKey(&pk, true); + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; + legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); + var crds_value = try CrdsValue.initSigned(crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }, kp); + + // insert more values which the filters should be missing + for (0..64) |_| { + var v2 = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(v2, 0); + } + + var values = try filter_crds_values( + std.testing.allocator, + &crds_table, + &crds_value, + &filter, + 100, + @intCast(std.time.milliTimestamp()), + ); + defer values.deinit(); + + try std.testing.expect(values.items.len > 0); +} diff --git a/src/lib.zig b/src/lib.zig index 7d8f528ce..b87c096b1 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -24,7 +24,8 @@ pub const gossip = struct { pub usingnamespace @import("gossip/node.zig"); pub usingnamespace @import("gossip/packet.zig"); pub usingnamespace @import("gossip/protocol.zig"); - pub usingnamespace @import("gossip/pull.zig"); + pub usingnamespace @import("gossip/pull_request.zig"); + pub usingnamespace @import("gossip/pull_response.zig"); pub usingnamespace @import("gossip/crds_shards.zig"); }; From 39ec1ae03868f96f24d6541e20aee7ff8d09c5ac Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 20:21:05 -0400 Subject: [PATCH 20/48] update readme --- src/gossip/readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 75d43de41..f4db6c9b4 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -13,4 +13,6 @@ This function `spawn`ed and is a long running process. It listens to the packet ## File outline - `crds_table.zig`: where gossip data is stored -- `crds.zig`: various gossip data structure definitions \ No newline at end of file +- `crds.zig`: various gossip data structure definitions +- `pull_request.zig`: logic for sending pull *requests* +- `pull_response.zig`: logic for sending pull *responses* (/handling incoming pull requests) \ No newline at end of file From 17e3f888b006692c7d5ce3d52b9256a57e87d3a6 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Wed, 2 Aug 2023 20:26:03 -0400 Subject: [PATCH 21/48] update --- src/gossip/gossip_service.zig | 1 + src/gossip/pull_request.zig | 1 + src/gossip/readme.md | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 5c0a1848a..d70ab5f5c 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -110,6 +110,7 @@ pub const GossipService = struct { continue; }; defer crds_pull_request.deinit_crds_filters(&filters); + // TODO: send em out std.time.sleep(std.time.ns_per_s * 1); } diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index 7b9d19630..3846f06e6 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -42,6 +42,7 @@ pub fn build_crds_filters( var filter_set = try CrdsFilterSet.init(alloc, num_items, bloom_size); + // add all crds values const crds_values = crds_table.store.iterator().values; for (0..num_items) |i| { const hash = crds_values[i].value_hash; diff --git a/src/gossip/readme.md b/src/gossip/readme.md index f4db6c9b4..01bd9afc0 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -15,4 +15,5 @@ This function `spawn`ed and is a long running process. It listens to the packet - `crds_table.zig`: where gossip data is stored - `crds.zig`: various gossip data structure definitions - `pull_request.zig`: logic for sending pull *requests* -- `pull_response.zig`: logic for sending pull *responses* (/handling incoming pull requests) \ No newline at end of file +- `pull_response.zig`: logic for sending pull *responses* (/handling incoming pull requests) +- `crds_shards.zig`: datastructure which stores gossip data hashes for quick lookup - used in `crds_table` and constructing pull responses \ No newline at end of file From 7597823cd858aa577923f4d09feba0310341997f Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Fri, 4 Aug 2023 15:14:03 -0400 Subject: [PATCH 22/48] add purged + failed insert values --- src/gossip/crds.zig | 24 +++---- src/gossip/crds_shards.zig | 15 ++-- src/gossip/crds_table.zig | 125 +++++++++++++++++++++++++++++++--- src/gossip/gossip_service.zig | 25 +++++-- src/gossip/pull_request.zig | 34 +++++---- src/gossip/pull_response.zig | 4 +- 6 files changed, 180 insertions(+), 47 deletions(-) diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index 5b58277e5..4138f0b17 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -292,24 +292,20 @@ pub const CrdsData = union(enum(u32)) { pub fn random(rng: std.rand.Random) CrdsData { const v = rng.intRangeAtMost(u16, 0, 3); - return switch (v) { - 0 => blk: { - const x = LegacyContactInfo.random(rng); - break :blk CrdsData{ .LegacyContactInfo = x }; + switch (v) { + 0 => { + return CrdsData{ .LegacyContactInfo = LegacyContactInfo.random(rng) }; }, - 1 => blk: { - const x = EpochSlots.random(rng); - break :blk CrdsData{ .EpochSlots = .{ rng.int(u8), x } }; + 1 => { + return CrdsData{ .EpochSlots = .{ rng.int(u8), EpochSlots.random(rng) } }; }, - 2 => blk: { - const x = Vote.random(rng); - break :blk CrdsData{ .Vote = .{ rng.int(u8), x } }; + 2 => { + return CrdsData{ .Vote = .{ rng.int(u8), Vote.random(rng) } }; }, - else => blk: { - const x = DuplicateShred.random(rng); - break :blk CrdsData{ .DuplicateShred = .{ rng.int(u16), x } }; + else => { + return CrdsData{ .DuplicateShred = .{ rng.int(u16), DuplicateShred.random(rng) } }; }, - }; + } } }; diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index cf804f236..4167f4a5c 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -80,10 +80,15 @@ pub const CrdsShards = struct { const ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); const match_mask = mask | ones; + // mask = hash request bits + // shard_bits = current organization of this datastructure + if (self.shard_bits < mask_bits) { // shard_bits is smaller, all matches with mask will be in the same shard index - // eg, shard_bits = 3, shardvalues == XX - // mask_bits = 5, mask == ABCD + // eg, + // shard_bits = 2, shardvalues == XX__ + // mask_bits = 4, mask == ABCD + // shards[AB] // all shard inserts will match mask AB // still need to scan bc of the last two bits of the shards @@ -113,8 +118,8 @@ pub const CrdsShards = struct { return result; } else { // shardbits > maskbits - // eg, shard_bits = 5, shardvalues == XYZ - // mask_bits = 3, mask == AB + // eg, shard_bits = 3, shardvalues == XYZ + // mask_bits = 2, mask == AB? 2 // mask will match the mask + 2^(of the other bits) // and since its ordered we can just take the values before it // since AB will match XY and 2^1 (Z) @@ -154,7 +159,7 @@ fn new_test_crds_value(rng: std.rand.Random, crds_table: *CrdsTable) !CrdsVersio const keypair = try KeyPair.create(null); var value = try CrdsValue.random(rng, keypair); const label = value.label(); - try crds_table.insert(value, 0); + try crds_table.insert(value, 0, null); const x = crds_table.get(label).?; return x; } diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index e455c9c52..97d92b8b4 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -26,8 +26,21 @@ const RwLock = std.Thread.RwLock; pub const CrdsError = error{ OldValue, + DuplicateValue, }; +pub const GossipRoute = enum { + LocalMessage, + PullRequest, + PullResponse, + PushMessage, +}; + +pub const HashAndTime = struct { hash: Hash, timestamp: u64 }; +// TODO: benchmark other structs? +const PurgedQ = std.TailQueue(HashAndTime); +const FailedInsertsQ = std.TailQueue(HashAndTime); + const CRDS_SHARDS_BITS: u32 = 12; /// Cluster Replicated Data Store: stores gossip data @@ -55,6 +68,10 @@ pub const CrdsTable = struct { // used to build pull responses efficiently shards: CrdsShards, + // used when sending pull requests + purged: PurgedQ, + failed_inserts: FailedInsertsQ, + // head of the store cursor: usize = 0, @@ -72,6 +89,8 @@ pub const CrdsTable = struct { .epoch_slots = AutoArrayHashMap(usize, usize).init(allocator), .duplicate_shreds = AutoArrayHashMap(usize, usize).init(allocator), .shards = try CrdsShards.init(allocator, CRDS_SHARDS_BITS), + .purged = PurgedQ{}, + .failed_inserts = FailedInsertsQ{}, }; } @@ -105,7 +124,7 @@ pub const CrdsTable = struct { return self.store.count(); } - pub fn insert(self: *Self, value: CrdsValue, now: u64) !void { + pub fn insert(self: *Self, value: CrdsValue, now: u64, maybe_route: ?GossipRoute) !void { // TODO: check to make sure this sizing is correct or use heap var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); @@ -178,16 +197,46 @@ pub const CrdsTable = struct { try self.shards.remove(entry_index, &old_entry.value_hash); try self.shards.insert(entry_index, &versioned_value.value_hash); + var node = PurgedQ.Node{ .data = HashAndTime{ + .hash = old_entry.value_hash, + .timestamp = now, + } }; + self.purged.append(&node); + result.value_ptr.* = versioned_value; self.cursor += 1; // do nothing } else { - return CrdsError.OldValue; + const old_entry = result.value_ptr.*; + + var node_data = HashAndTime{ + .hash = old_entry.value_hash, + .timestamp = now, + }; + + if (maybe_route) |route| { + if (route == GossipRoute.PullResponse) { + var failed_insert_node = FailedInsertsQ.Node{ .data = node_data }; + self.failed_inserts.append(&failed_insert_node); + } + } + + if (old_entry.value_hash.cmp(&versioned_value.value_hash) != CompareResult.Equal) { + // if hash isnt the same and override() is false then msg is old + var purged_node = PurgedQ.Node{ .data = node_data }; + self.purged.append(&purged_node); + + return CrdsError.OldValue; + } else { + // hash is the same then its a duplicate + return CrdsError.DuplicateValue; + } } } + // ** getter functions ** pub fn get(self: *Self, label: CrdsValueLabel) ?CrdsVersionedValue { return self.store.get(label); } @@ -269,6 +318,7 @@ pub const CrdsTable = struct { return buf[0..size]; } + // ** shard getter fcns ** pub fn get_bitmask_matches( self: *const Self, alloc: std.mem.Allocator, @@ -278,6 +328,63 @@ pub const CrdsTable = struct { const indexs = try self.shards.find(alloc, mask, @intCast(mask_bits)); return indexs; } + + // ** purged values fcns ** + pub fn purged_len(self: *Self) usize { + return self.purged.len; + } + + pub fn get_purged_values(self: *Self, alloc: std.mem.Allocator) !std.ArrayList(Hash) { + var values = try std.ArrayList(Hash).initCapacity(alloc, self.purged.len); + + // collect all the hash values + var curr_ptr = self.purged.first; + while (curr_ptr) |curr| : (curr_ptr = curr.next) { + values.appendAssumeCapacity(curr.data.hash); + } + + return values; + } + + pub fn trim_purged_values(self: *Self, oldest_timestamp: u64) !void { + var curr_ptr = self.purged.first; + while (curr_ptr) |curr| : (curr_ptr = curr.next) { + const data_timestamp = curr.data.timestamp; + if (data_timestamp < oldest_timestamp) { + try self.purged.remove(curr_ptr); + } else { + break; + } + } + } + + // ** failed insert values fcns ** + pub fn failed_inserts_len(self: *Self) usize { + return self.failed_inserts.len; + } + + pub fn get_failed_inserts_values(self: *Self, alloc: std.mem.Allocator) !std.ArrayList(Hash) { + var values = try std.ArrayList(Hash).initCapacity(alloc, self.failed_inserts.len); + + // collect all the hash values + var curr_ptr = self.failed_inserts.first; + while (curr_ptr) |curr| : (curr_ptr = curr.next) { + values.appendAssumeCapacity(curr.data.hash); + } + return values; + } + + pub fn trim_failed_inserts_values(self: *Self, oldest_timestamp: u64) !void { + var curr_ptr = self.failed_inserts.first; + while (curr_ptr) |curr| : (curr_ptr = curr.next) { + const data_timestamp = curr.data.timestamp; + if (data_timestamp < oldest_timestamp) { + try self.failed_inserts.remove(curr_ptr); + } else { + break; + } + } + } }; pub fn crds_overwrites(new_value: *const CrdsVersionedValue, old_value: *const CrdsVersionedValue) bool { @@ -308,7 +415,7 @@ test "gossip.crds_table: insert and get" { var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); - try crds_table.insert(value, 0); + try crds_table.insert(value, 0, null); const label = value.label(); const x = crds_table.get(label).?; @@ -328,7 +435,7 @@ test "gossip.crds_table: insert and get votes" { var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); - try crds_table.insert(crds_value, 0); + try crds_table.insert(crds_value, 0, null); var cursor: usize = 0; var buf: [100]*CrdsVersionedValue = undefined; @@ -346,7 +453,7 @@ test "gossip.crds_table: insert and get votes" { crds_value = try CrdsValue.initSigned(CrdsData{ .Vote = .{ 0, vote }, }, kp); - try crds_table.insert(crds_value, 1); + try crds_table.insert(crds_value, 1, null); votes = try crds_table.get_votes_with_cursor(&buf, &cursor); try std.testing.expect(votes.len == 1); @@ -370,7 +477,7 @@ test "gossip.crds_table: insert and get contact_info" { defer crds_table.deinit(); // test insertion - try crds_table.insert(crds_value, 0); + try crds_table.insert(crds_value, 0, null); // test retrieval var buf: [100]*CrdsVersionedValue = undefined; @@ -379,13 +486,13 @@ test "gossip.crds_table: insert and get contact_info" { try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); // test re-insertion - const result = crds_table.insert(crds_value, 0); - try std.testing.expectError(CrdsError.OldValue, result); + const result = crds_table.insert(crds_value, 0, null); + try std.testing.expectError(CrdsError.DuplicateValue, result); // test re-insertion with greater wallclock crds_value.data.LegacyContactInfo.wallclock += 2; const v = crds_value.data.LegacyContactInfo.wallclock; - try crds_table.insert(crds_value, 0); + try crds_table.insert(crds_value, 0, null); // check retrieval nodes = try crds_table.get_contact_infos(&buf); diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index d70ab5f5c..3b5160aca 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -22,6 +22,7 @@ const _crds_table = @import("../gossip/crds_table.zig"); const CrdsTable = _crds_table.CrdsTable; const CrdsError = _crds_table.CrdsError; const Logger = @import("../trace/log.zig").Logger; +const GossipRoute = _crds_table.GossipRoute; const crds_pull_request = @import("../gossip/pull_request.zig"); const crds_pull_response = @import("../gossip/pull_response.zig"); @@ -32,7 +33,9 @@ var gpa = gpa_allocator.allocator(); const PacketChannel = Channel(Packet); // const ProtocolChannel = Channel(Protocol); +const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; const CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS: u64 = 30000; +const FAILED_INSERTS_RETENTION_MS: u64 = 20_000; pub const GossipService = struct { cluster_info: *ClusterInfo, @@ -43,6 +46,9 @@ pub const GossipService = struct { crds_table: CrdsTable, allocator: std.mem.Allocator, + pull_timeout: u64 = CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS, + push_msg_timeout: u64 = CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS, + const Self = @This(); pub fn init( @@ -112,6 +118,15 @@ pub const GossipService = struct { defer crds_pull_request.deinit_crds_filters(&filters); // TODO: send em out + // trim CRDS values + const now = get_wallclock(); + // recently purged values + const purged_cutoff_timestamp = now -| (5 * self.pull_timeout); + self.crds_table.trim_purged_values(purged_cutoff_timestamp); + // failed insertions + const failed_insert_cutoff_timestamp = now -| FAILED_INSERTS_RETENTION_MS; + self.crds_table.trim_failed_inserts_values(failed_insert_cutoff_timestamp); + std.time.sleep(std.time.ns_per_s * 1); } } @@ -220,16 +235,16 @@ pub const GossipService = struct { .PushMessage => |*push| { logger.debugf("got a push message: {any}", .{protocol_message}); const values = push[1]; - insert_crds_values(crds_table, values, logger); + insert_crds_values(crds_table, values, logger, GossipRoute.PushMessage); }, .PullResponse => |*pull| { logger.debugf("got a pull message: {any}", .{protocol_message}); const values = pull[1]; - insert_crds_values(crds_table, values, logger); + insert_crds_values(crds_table, values, logger, GossipRoute.PullResponse); }, .PullRequest => |*pull| { var filter = pull[0]; - var value = pull[1]; + var value = pull[1]; // contact info const now = get_wallclock(); const crds_values = try crds_pull_response.filter_crds_values( @@ -250,7 +265,7 @@ pub const GossipService = struct { } } - pub fn insert_crds_values(crds_table: *CrdsTable, values: []crds.CrdsValue, logger: *Logger) void { + pub fn insert_crds_values(crds_table: *CrdsTable, values: []crds.CrdsValue, logger: *Logger, route: GossipRoute) void { var now = get_wallclock(); crds_table.write(); @@ -264,7 +279,7 @@ pub const GossipService = struct { continue; } - crds_table.insert(value, now) catch |err| switch (err) { + crds_table.insert(value, now, route) catch |err| switch (err) { CrdsError.OldValue => { logger.debugf("failed to insert into crds: {any}", .{value}); }, diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index 3846f06e6..761e794dc 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -37,20 +37,30 @@ pub fn build_crds_filters( crds_table.read(); defer crds_table.release_read(); - const num_items = crds_table.len(); - // TODO: purged + failed inserts + const num_items = crds_table.len() + crds_table.purged_len() + crds_table.failed_inserts_len(); + // TODO: failed inserts var filter_set = try CrdsFilterSet.init(alloc, num_items, bloom_size); // add all crds values const crds_values = crds_table.store.iterator().values; - for (0..num_items) |i| { + for (0..crds_table.len()) |i| { const hash = crds_values[i].value_hash; filter_set.add(&hash); } + // add purged values + const purged_values = try crds_table.get_purged_values(alloc); + for (purged_values.items) |hash| { + filter_set.add(&hash); + } + // add failed inserts + const failed_inserts = try crds_table.get_failed_inserts_values(alloc); + for (failed_inserts.items) |hash| { + filter_set.add(&hash); + } // note: filter set is deinit() in this fcn - const filters = try filter_set.consumeForCrdsFilters(alloc, MAX_NUM_PULL_REQUESTS); + const filters = try filter_set.consume_for_crds_filters(alloc, MAX_NUM_PULL_REQUESTS); return filters; } @@ -70,20 +80,20 @@ pub const CrdsFilterSet = struct { const Self = @This(); - pub fn init(alloc: std.mem.Allocator, num_items: usize, max_bytes: usize) !Self { - var max_bits: f64 = @floatFromInt(max_bytes * 8); - var max_items = CrdsFilter.compute_max_items(max_bits, FALSE_RATE, KEYS); + pub fn init(alloc: std.mem.Allocator, num_items: usize, bloom_size_bytes: usize) !Self { + var bloom_size_bits: f64 = @floatFromInt(bloom_size_bytes * 8); // mask_bits = log2(..) number of filters - var mask_bits = CrdsFilter.compute_mask_bits(@floatFromInt(num_items), max_bits); + var mask_bits = CrdsFilter.compute_mask_bits(@floatFromInt(num_items), bloom_size_bits); std.debug.assert(mask_bits > 0); const n_filters: usize = @intCast(@as(u64, 1) << @as(u6, @intCast(mask_bits))); std.debug.assert(n_filters > 0); // TODO; add errdefer handling here + var max_items = CrdsFilter.compute_max_items(bloom_size_bits, FALSE_RATE, KEYS); var filters = try ArrayList(Bloom).initCapacity(alloc, n_filters); for (0..n_filters) |_| { - var filter = try Bloom.random(alloc, @intFromFloat(max_items), FALSE_RATE, @intFromFloat(max_bits)); + var filter = try Bloom.random(alloc, @intFromFloat(max_items), FALSE_RATE, @intFromFloat(bloom_size_bits)); filters.appendAssumeCapacity(filter); } @@ -118,7 +128,7 @@ pub const CrdsFilterSet = struct { } /// returns a list of CrdsFilters and consumes Self by calling deinit. - pub fn consumeForCrdsFilters(self: *Self, alloc: std.mem.Allocator, max_size: usize) !ArrayList(CrdsFilter) { + pub fn consume_for_crds_filters(self: *Self, alloc: std.mem.Allocator, max_size: usize) !ArrayList(CrdsFilter) { defer self.deinit(); // ! const set_size = self.len(); @@ -235,7 +245,7 @@ test "gossip.pull: test build_crds_filters" { .LegacyContactInfo = legacy_contact_info, }, kp); - try crds_table.insert(crds_value, 0); + try crds_table.insert(crds_value, 0, null); } const max_bytes = 2; @@ -271,7 +281,7 @@ test "gossip.pull: CrdsFilterSet deinits correct" { const v = bloom.contains(&hash.data); try std.testing.expect(v); - var f = try filter_set.consumeForCrdsFilters(std.testing.allocator, 10); + var f = try filter_set.consume_for_crds_filters(std.testing.allocator, 10); defer deinit_crds_filters(&f); try std.testing.expect(f.capacity == filter_set.len()); diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig index 4fa7784af..93d788cd4 100644 --- a/src/gossip/pull_response.zig +++ b/src/gossip/pull_response.zig @@ -108,7 +108,7 @@ test "gossip.pull: test filter_crds_values" { // }, kp); var crds_value = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(crds_value, 0); + try crds_table.insert(crds_value, 0, null); } const max_bytes = 10; @@ -131,7 +131,7 @@ test "gossip.pull: test filter_crds_values" { // insert more values which the filters should be missing for (0..64) |_| { var v2 = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(v2, 0); + try crds_table.insert(v2, 0, null); } var values = try filter_crds_values( From 0c8c08e0b246f8d61cd87afba3503fd5cba5d422 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Sat, 5 Aug 2023 21:33:38 -0400 Subject: [PATCH 23/48] add more gossip docs --- src/gossip/readme.md | 303 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 302 insertions(+), 1 deletion(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 01bd9afc0..10ebd1f48 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -16,4 +16,305 @@ This function `spawn`ed and is a long running process. It listens to the packet - `crds.zig`: various gossip data structure definitions - `pull_request.zig`: logic for sending pull *requests* - `pull_response.zig`: logic for sending pull *responses* (/handling incoming pull requests) -- `crds_shards.zig`: datastructure which stores gossip data hashes for quick lookup - used in `crds_table` and constructing pull responses \ No newline at end of file +- `crds_shards.zig`: datastructure which stores gossip data hashes for quick lookup - used in `crds_table` and constructing pull responses + +## Technical Explainer + +- there are a few main components in solana's gossip protocol + - this includes communication protocols for sharing data + - and data structures for storing and retrieving data +- this post will explain key implementation details of solana's gossip protocol +- well use the Sig code as our main reference but also reference the solana-labs rust client sometimes too +- we use many of the same variable and structure naming as the labs client +- this post builds off of the technical portion of the [Sig anouncement post](https://blog.syndica.io/introducing-sig-by-syndica-an-rps-focused-solana-validator-client-written-in-zig/#sigs-first-component-gossip-protocol) + +### Gossip Data Structures: CrdsTable + +- gossip data is stored in a Conflict-free Replicated Data Store (CRDS) + +### Gossip Data Types + +- data that is propogated throughout gossip is refered to as a `CrdsData` and a `CrdsValue` + - a `CrdsData` is an enum over the possible gossip data types + - a `CrdsValue` contains a `CrdsData` struct and a signature of the `CrdsData` + +- there are many `CrdsData` types used throughout the codebase but the few were interested in right now include: + - `ContactInfo`/`LegacyContactInfo`: which includes node specific information such as the nodes public key and socket addresses for specific validator tasks (including gossip, tvu, tpu, repair, ...). This structure is critical for discovering the rest of the network. + - `Vote`: which includes a validators signature that a specific block is valid. Note, this data is slowly being phased out of the gossip protocol because its not required and takes up a lot of network bandwidth. + - `EpochSlots`: ?? + - `DuplicateShred`: ?? + +### Storing Gossip Data + +- to store gossip data we use an indexable HashMap + - the HashMap uses a `CrdsValueLabel` as its keys and a `CrdsVersionedValue` as its values + +#### CRDS ValueLabels + +- each `CrdsData` type has a corresponding `CrdsValueLabel` which defines how the data is stored/replaced +- for example a `LegacyContactInfo` struct includes many socket address fields, however, its corresponding label is only its pubkey + +```zig= +// the full contact info struct (including pubkeys, sockets, and more) +pub const LegacyContactInfo = struct { + id: Pubkey, + /// gossip address + gossip: SocketAddr, + /// address to connect to for replication + tvu: SocketAddr, + /// address to forward shreds to + tvu_forwards: SocketAddr, + /// address to send repair responses to + repair: SocketAddr, + /// transactions address + tpu: SocketAddr, + //... +} + +// the corresponding label (only the Pubkey) +pub const CrdsValueLabel = union(enum) { + LegacyContactInfo: Pubkey, + //... +} +``` + +- assuming each validator corresponds to one pubkey, this means we'll only store one `ContactInfo` per validator. +- when inserting a Crds datatype whos label already exist in the store, we keep the one with the largest wallclock time (ie, the newest) and discard the other. + +#### Storing Specific Data Types + +- were also interested in storing specific datatypes in the table efficiently +- for example, when broadcasting data throughout the network, it would be nice to have all the `ContactInfo` values which are stored in the CRDS table + +- this is why we use an **indexable** hash map implementation + +- for example, when inserting new values into the store (or updating existing values) we recieve its corresponding index from the insertion +- then, for specific data types were interseted in, we can then store these indexs in another array +- to retrieve these values, we can iterate over the indexs, index into the table, and retrieve the correspoinding types +- we follow this approach for all of the data types were interested in including: `ContactInfos`, `Votes`, `EpochSlots`, `DuplicateShreds`, and `ShredVersions` + +#### Retrieving Data with Getters + +- we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update +- to efficiently retrieve data from the store we use getter functions such as (eg, `get_votes_with_cursor`) which allows you to retrieve values which are past a certain cursor index +- a listener would track their own cursor and periodically call the getter functions to retrieve new values + +## Gossip Protocol: Pull Messages + +### Sending Pull *Requests* + +- pull request are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" + +#### Building Requests + +- the idea is to construct bloom filter over the hashes of stored Crds values +- the main struct to do this is called `CrdsFilters` + +- since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first N bits +- for example, if we are paritioning on the first 3 bits of hash values we would use, 2^3 = 8 bloom filters: + - the first bloom containing hash values whos bits start with 000 + - the second bloom containing hash values whos bits start with 001 + - ... + - and lastly, the eight bloom containing hash values whos bits start with 111 +- for example, if a hash had bits 00101110101, we would only consider its first 3 bits, 001, and would be added to the first bloom filter (`@cast(usize, 001) = 1`) +- you can think of this as a custom hash function for a hash map, where the keys are hashes, the values are bloom filters, and the function is to consider the first N bits of the hash +- the number of bits (called `mask_bits` in the code) we require depends on many factors including the desired false-positive rate of the bloom filters, the number of items in the crds store, and more +- after we construct this filter set (ie, compute the mask_bits and init the bloom filters), we then need to add all the crds values to it (psuedocode below) + +```python +## main function for building pull requests! +def build_crds_filters( + crds_store: *CrdsStore +) Vec: + + values = crds_store.values() + filter_set = CrdsFilterSet.init(len(value)) + + for value in values: + filter_set.add(value) + + # TODO: CrdsFilterSet => Vec + # return filter_set.consumeForCrdsFilters() + +class CrdsFilterSet(): + mask_bits: u64 + filters: Vec + + def init(self, num_items): + self.mask_bits = ... + n_filters = 1 << mask_bits # 2^mask_bits + + self.filters = [] + for i in 0..n_filters: + self.filters.append(Bloom.random()) + + def add(hash: Hash): + # compute the hash index + # eg: + # hash: 001010101010101..1 + # mask_bits = 3 + # shift_bits = 64 - 3 (note: u64 has 64 bits) + # hash >> shift_bits = 001 (first three bits) = index 1 + # == filters[1].add(hash) + shift_bits = 64 - mask_bits + index = @as(usize, hash >> shift_bits) + self.filters[index].add(hash) +``` + +- we then need to consume the filter set into a vector of filters +- each filter also requires a mask which identifies what filter it is (\what the first N bits of the hash values it contains) + +```python + def consumeForCrdsFilters(self: CrdsFilterSet) Vec: + for index in 0..len(self.filters): + crds_filter = CrdsFilter( + bloom=self.filters[index], + mask=CrdsFilter.compute_mask(index, self.mask_bits), + mask_bits=self.mask_bits, + ) +``` + +- the logic follows similar to the bit operations above, its computed in `CrdsFilter.compute_mask(index, self.mask_bits)` + +```python +fn compute_mask(index: u64, mask_bits: u64) u64: + # shift the index to the first `mask_bits` of the u64 + # eg, + # index = 1 + # mask_bits = 3 + # shift_bits = 64 - 3 (note: u64 has 64 bits) + shift_bits = 64 - mask_bits + # shifted_index = 1 << (64 - 3) = 001000000000000...0 + shifted_index = index << shift_bits + # ones = 000111111111111..1 + ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))) + # result = 001111111111111..1 + return shifted_index | ones; +``` +- notice how the result will be ones everywhere except for the first `mask_bits` bits, which represent the index +- after getting the vector of filters, we send each filter out to a random peer weighted by stake weight + +### Sending Pull *Responses* + +- sending a pull *response* requires you to parse the crds table values, and filter the values which match the filter's `mask`, and are also not included in the request's bloom filter +- the main function which we use is `filter_crds_values` which takes a `CrdsFilter` as input (which contains a `bloom_filter: Bloom`, a `mask: u64` which contains the hash index, and `mask_bits: u64` which is how many filters exist) + - first it calls `crds_table.get_bitmask_matches` which returns the entries in the crds table which match the filters `mask` + - to do this efficiently, we introduce a new data structure called `CrdsShards` which is located in `crds_shards.zig` + +#### `CrdsShards` + +- `CrdsShards` stores hash values efficiently based on the first `shard_bits` of a hash value +- the main structure is `shards = ArrayList(AutoArrayHashMap(usize, u64)),` where `shards[k]` includes crds values which the first `shard_bits` of their hash value is equal to k +- the insertion logic is straightforward + - take the first 8 bytes of a hash and cast it to a `u64` + - compute the first `shard_bits` bits of the `u64` by computing `shard_index = hash_u64 >> (64 - shard_bits)` + - get the shard: `self.shards[shard_index]` + - insert the crds store index along with the u64 hash + +```python +def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): + shard_index = @as(u64, hash[0..8]) >> (64 - shard_bits) + shard = self.shard[shard_index] + shard.put(crds_index, uhash); +``` + +- the logic follows very closely with what we did with `CrdsFilterSet` +- now we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) +- when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to `mask` and return its values + +```python +def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: + if (self.shard_bits == mask_bits) { + shard = self.shard[mask] + crds_indexs = shard.keys() + return crds_indexs + } else { + # TODO: + } +``` + +- when `shard_bits < mask_bits`, the mask is tracking more bits than the shard are, so we know if we truncate the mask up to `shard_bits`, we can grab the shard and iterate over those values and to find exact matches + - truncating and looking up the shard gives us hashes which have a matching first `shard_bits` + - we then need to check to make sure the last `shard_bits - mask_bits` match the mask which we do through iteration + +```python +def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: + # ones everywhere except for the first `mask_bits` + mask_ones = (~0 >> mask_bits) + + if (self.shard_bits == mask_bits) { + # ... + } else if (self.shard_bits < mask_bits) { + # truncate the mask + shard_index = mask << (64 - self.shard_bits) + shard = self.shards[shard_index] + + # scan for matches + crds_indexs = [] + for (indexs, hash_u64) in shard: + if ((hash_u64 | mask_ones) == (mask | mask_ones)): # match! + crds_indexs.append(indexs) + return crds_indexs + + } else { + # TODO + } +``` + +- when `shard_bits > mask_bits` the shards is tracking more information than the mask, so we'll need to lookup multiple shards to find all the values which match `mask` +- for example, + - if shard_bits = 4 and mask_bits = 2 and our mask is 01 + - the possible shards well need to lookup are: 0100, 0101, 0110, 0111 + - ie, there will be 4 shards that match the mask represented by the difference in bits + - so, we know we'll have to look up `2^(shard_bits - mask_bits)` number of shards which can be computed using `1 << (shard_bits - mask_bits)` + - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `(mask | mask_ones) >> shard_bits` + - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end` + +```python +def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: + # ones everywhere except for the first `mask_bits` + mask_ones = (~0 >> mask_bits) + + if (self.shard_bits == mask_bits) { + # ... + } else if (self.shard_bits < mask_bits) { + # ... + } else if (self.shard_bits > mask_bits) { + shift_bits = self.shard_bits - mask_bits + count = 1 << shift_bits + end = (mask | mask_ones) >> shard_bits + + crds_indexs = [] + for shard_index in (end-count)..end: + shard = self.shards[shard_index] + indexs = shard.keys() + crds_indexs.append(indexs) + + return crds_indexs + } +``` + +- after we have all the crds indexs which match the next check is check which values are not included in the request's bloom filter +- this is fairly straightforward +- the psuedo code looks like + +```python + +def filter_crds_values( + crds_store: *CrdsStore + filter: *CrdsFilter +) Vec: + var match_indexs = crds_store.get_bitmask_matches(filter.mask, filter.mask_bits); + + values = [] + for index in match_indexs: + entry = crds_store[index] + if (!filter.bloom.contains(entry.hash)): + values.append(entry) + + return values +``` + +## Push Requests + +## Ping/Pong \ No newline at end of file From 036e62fc22595c73ccc94705092d6929fc183209 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Sat, 5 Aug 2023 21:34:00 -0400 Subject: [PATCH 24/48] update to 0.11 --- .github/workflows/test.yml | 4 ++-- build.zig.zon | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5e24282d3..d1e0593fd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: - name: setup-zig uses: goto-bus-stop/setup-zig@v1 with: - version: 0.11.0-dev.3997+546212ff7 + version: 0.11.0 - name: lint run: | @@ -40,7 +40,7 @@ jobs: - name: setup-zig uses: goto-bus-stop/setup-zig@v1 with: - version: 0.11.0-dev.3997+546212ff7 + version: 0.11.0 - name: build run: zig build diff --git a/build.zig.zon b/build.zig.zon index 2afdd4ff0..6faba9e9f 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -7,16 +7,16 @@ .hash = "1220227d746ee3f156059a22b0044c6d8ad062a7cfb15b060cc2e7cbae4d0631f34e", }, .@"zig-network" = .{ - .url = "https://github.com/MasterQ32/zig-network/archive/7b5f76ea09626b96755c027bf4bd5b7e45297027.tar.gz", - .hash = "122090e7cb4459c2224399a45c56f47462733b919aa547c96b8c14ee705bfa22976e", + .url = "https://github.com/MasterQ32/zig-network/archive/02ffa0fc310ff0746f06c9bfb73b008ce4fca200.tar.gz", + .hash = "1220fe0d4ca564aa15f3fd7f9f84ba04e031bb70c3a1432257e0d35c74b183550c24", }, .@"zig-cli" = .{ .url = "https://github.com/sam701/zig-cli/archive/ea92821a797bdefb5df41ce602f8c7f387bcfb93.tar.gz", .hash = "122044525df0d1896556da08c5ed50b456a672a52ab86a65834bb1e27d3ae7a847f2", }, .getty = .{ - .url = "https://github.com/0xNineteen/getty/archive/04e1d75c3b4f122232f0b8efeaf296742cb5c262.tar.gz", - .hash = "122034c0905da94ef750e5c225b1b58810ee2d6370c776f81fdea383ec5217c275a2", + .url = "https://github.com/getty-zig/getty/archive/5b0e750d92ee4ef8e46ad743bb8ced63723acd00.tar.gz", + .hash = "12209398657d260abcd6dae946d8da4cd3057b8c7990608476a9f8011aae570d2ebb", }, }, } From 7118d9b5de232f8665ae5ceea385d381fcb7938b Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Sun, 6 Aug 2023 09:02:52 -0400 Subject: [PATCH 25/48] fix 0.11 build pass --- src/bloom/bloom.zig | 6 +++--- src/gossip/crds_shards.zig | 12 ------------ src/gossip/crds_table.zig | 4 ++-- src/gossip/gossip_service.zig | 4 ++-- src/gossip/pull_request.zig | 3 +-- src/gossip/pull_response.zig | 1 - 6 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index eac9a831d..1e52e41bd 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -109,8 +109,8 @@ pub const Bloom = struct { const two: f64 = 2; // const d: f64 = -4.804530139182015e-01 - const d: f64 = std.math.ln(@as(f64, 1) / (std.math.pow(f64, two, std.math.ln(two)))); - return std.math.ceil((n * std.math.ln(p)) / d); + const d: f64 = @log(@as(f64, 1) / (std.math.pow(f64, two, @log(two)))); + return std.math.ceil((n * @log(p)) / d); } fn num_keys(n_bits: f64, num_items: f64) usize { @@ -120,7 +120,7 @@ pub const Bloom = struct { if (n == 0) { return 0; } else { - return @intFromFloat(@max(@as(f64, 1), std.math.round((m / n) * std.math.ln(@as(f64, 2))))); + return @intFromFloat(@max(@as(f64, 1), std.math.round((m / n) * @log(@as(f64, 2))))); } } }; diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 4167f4a5c..e04fb2cfa 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -85,12 +85,6 @@ pub const CrdsShards = struct { if (self.shard_bits < mask_bits) { // shard_bits is smaller, all matches with mask will be in the same shard index - // eg, - // shard_bits = 2, shardvalues == XX__ - // mask_bits = 4, mask == ABCD - // shards[AB] - // all shard inserts will match mask AB - // still need to scan bc of the last two bits of the shards const shard = self.get_shard(match_mask); var shard_iter = shard.iterator(); @@ -118,12 +112,6 @@ pub const CrdsShards = struct { return result; } else { // shardbits > maskbits - // eg, shard_bits = 3, shardvalues == XYZ - // mask_bits = 2, mask == AB? 2 - // mask will match the mask + 2^(of the other bits) - // and since its ordered we can just take the values before it - // since AB will match XY and 2^1 (Z) - const shift_bits: u6 = @intCast(self.shard_bits - mask_bits); const count: usize = @intCast(@as(u64, 1) << shift_bits); const end = CrdsShards.compute_shard_index(self.shard_bits, match_mask) + 1; diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 97d92b8b4..90b9a9464 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -351,7 +351,7 @@ pub const CrdsTable = struct { while (curr_ptr) |curr| : (curr_ptr = curr.next) { const data_timestamp = curr.data.timestamp; if (data_timestamp < oldest_timestamp) { - try self.purged.remove(curr_ptr); + self.purged.remove(curr); } else { break; } @@ -379,7 +379,7 @@ pub const CrdsTable = struct { while (curr_ptr) |curr| : (curr_ptr = curr.next) { const data_timestamp = curr.data.timestamp; if (data_timestamp < oldest_timestamp) { - try self.failed_inserts.remove(curr_ptr); + self.failed_inserts.remove(curr); } else { break; } diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 3b5160aca..c37373d9a 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -122,10 +122,10 @@ pub const GossipService = struct { const now = get_wallclock(); // recently purged values const purged_cutoff_timestamp = now -| (5 * self.pull_timeout); - self.crds_table.trim_purged_values(purged_cutoff_timestamp); + try self.crds_table.trim_purged_values(purged_cutoff_timestamp); // failed insertions const failed_insert_cutoff_timestamp = now -| FAILED_INSERTS_RETENTION_MS; - self.crds_table.trim_failed_inserts_values(failed_insert_cutoff_timestamp); + try self.crds_table.trim_failed_inserts_values(failed_insert_cutoff_timestamp); std.time.sleep(std.time.ns_per_s * 1); } diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index 761e794dc..2bfde6b2c 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -13,7 +13,6 @@ const ArrayListConfig = @import("../utils/arraylist.zig").ArrayListConfig; const Bloom = @import("../bloom/bloom.zig").Bloom; const KeyPair = std.crypto.sign.Ed25519.KeyPair; const Pubkey = @import("../core/pubkey.zig").Pubkey; -const ln = std.math.ln; const exp = std.math.exp; const CrdsTable = @import("crds_table.zig").CrdsTable; @@ -213,7 +212,7 @@ pub const CrdsFilter = struct { const m = max_bits; const p = false_rate; const k = num_keys; - return std.math.ceil(m / (-k / ln(@as(f64, 1) - exp(ln(p) / k)))); + return std.math.ceil(m / (-k / @log(@as(f64, 1) - exp(@log(p) / k)))); } pub fn deinit(self: *Self) void { diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig index 93d788cd4..e5d5df460 100644 --- a/src/gossip/pull_response.zig +++ b/src/gossip/pull_response.zig @@ -13,7 +13,6 @@ const ArrayListConfig = @import("../utils/arraylist.zig").ArrayListConfig; const Bloom = @import("../bloom/bloom.zig").Bloom; const KeyPair = std.crypto.sign.Ed25519.KeyPair; const Pubkey = @import("../core/pubkey.zig").Pubkey; -const ln = std.math.ln; const exp = std.math.exp; const CrdsTable = @import("crds_table.zig").CrdsTable; From e1698c03ba781a77f6302f0b1dbc8c8492251f75 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Sun, 6 Aug 2023 19:03:52 -0400 Subject: [PATCH 26/48] building on 0.11 --- src/bincode/bincode.zig | 59 +++++++ src/bloom/bloom.zig | 98 ++++++------ src/core/transaction.zig | 8 +- src/gossip/crds.zig | 284 +++++++++++++++++----------------- src/gossip/crds_table.zig | 215 ++++++++++++------------- src/gossip/gossip_service.zig | 94 +++++------ src/gossip/node.zig | 110 ++++++------- src/gossip/protocol.zig | 236 ++++++++++++++-------------- src/gossip/pull_request.zig | 18 +-- src/gossip/pull_response.zig | 118 +++++++------- src/utils/shortvec.zig | 30 ++-- 11 files changed, 674 insertions(+), 596 deletions(-) diff --git a/src/bincode/bincode.zig b/src/bincode/bincode.zig index 70d1f4d9e..01cd30efc 100644 --- a/src/bincode/bincode.zig +++ b/src/bincode/bincode.zig @@ -587,6 +587,63 @@ pub fn read(alloc: ?std.mem.Allocator, comptime T: type, reader: anytype, params return v; } +// pub fn writeToSlice(slice: []u8, data: anytype, params: Params) ![]u8 { +// _ = params; +// _ = data; +// _ = slice; +// return error.TooBad; + +// // var stream = std.io.fixedBufferStream(slice); +// // var writer = stream.writer(); +// // var s = serializer(writer, params); +// // var ss = s.serializer(); +// // try getty.serialize(null, data, ss); +// // return stream.getWritten(); +// } + +// pub fn write(alloc: ?std.mem.Allocator, writer: anytype, data: anytype, params: Params) !void { +// _ = params; +// _ = data; +// _ = writer; +// _ = alloc; +// return error.TooBad; + +// // var s = serializer(writer, params); +// // var ss = s.serializer(); +// // try getty.serialize(alloc, data, ss); +// } + +// // can call if dont require an allocator +// pub fn readFromSlice(alloc: ?std.mem.Allocator, comptime T: type, slice: []const u8, params: Params) !T { +// _ = params; +// _ = slice; +// _ = alloc; +// return error.TooBad; + +// // var stream = std.io.fixedBufferStream(slice); +// // var reader = stream.reader(); +// // var d = deserializer(reader, params); +// // var dd = d.deserializer(); +// // var v = try getty.deserialize(alloc, T, dd); +// // errdefer getty.de.free(alloc, @TypeOf(dd), v); // ! +// // return v; +// } + +// pub fn read(alloc: ?std.mem.Allocator, comptime T: type, reader: anytype, params: Params) !T { +// _ = params; +// _ = reader; +// _ = alloc; +// return error.TooBad; + +// // var d = deserializer(reader, params); +// // const dd = d.deserializer(); +// // const v = try getty.deserialize(alloc, T, dd); +// // errdefer getty.de.free(alloc, @TypeOf(dd), v); + +// // return v; + +// } + test "bincode: test serialization" { var buf: [1]u8 = undefined; @@ -661,6 +718,8 @@ test "bincode: test serialization" { var out4 = try writeToSlice(&buf6, _s, Params.standard); var result = try readFromSlice(null, s, out4, Params{}); try std.testing.expectEqual(result, _s); + + } test "bincode: (legacy) serialize an array" { diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index 1e52e41bd..b66c8870f 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -152,72 +152,72 @@ test "bloom: helper fcns match rust" { defer bloom.deinit(); } -test "bloom: serializes/deserializes correctly" { - var bloom = Bloom.init(testing.allocator, 0, null); +// test "bloom: serializes/deserializes correctly" { +// var bloom = Bloom.init(testing.allocator, 0, null); - var buf: [10000]u8 = undefined; - var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); +// var buf: [10000]u8 = undefined; +// var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); - var deserialized = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); - try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); -} +// var deserialized = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); +// try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); +// } -test "bloom: serializes/deserializes correctly with set bits" { - var bloom = Bloom.init(testing.allocator, 128, null); - try bloom.add_key(10); - // required for memory leaks - defer bloom.deinit(); +// test "bloom: serializes/deserializes correctly with set bits" { +// var bloom = Bloom.init(testing.allocator, 128, null); +// try bloom.add_key(10); +// // required for memory leaks +// defer bloom.deinit(); - var buf: [10000]u8 = undefined; - var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); +// var buf: [10000]u8 = undefined; +// var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); - var deserialized: Bloom = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); - defer deserialized.deinit(); +// var deserialized: Bloom = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); +// defer deserialized.deinit(); - try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); -} +// try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); +// } -test "bloom: rust: serialized bytes equal rust (no keys)" { - // note: need to init with len 2^i - var bloom = Bloom.init(testing.allocator, 128, null); - defer bloom.deinit(); - try bloom.add_key(1); +// test "bloom: rust: serialized bytes equal rust (no keys)" { +// // note: need to init with len 2^i +// var bloom = Bloom.init(testing.allocator, 128, null); +// defer bloom.deinit(); +// try bloom.add_key(1); - const v: [1]u8 = .{1}; - bloom.add(&v); +// const v: [1]u8 = .{1}; +// bloom.add(&v); - var buf: [10000]u8 = undefined; - var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); +// var buf: [10000]u8 = undefined; +// var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); - const rust_bytes = .{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; +// const rust_bytes = .{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; - try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); -} +// try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); +// } -test "bloom: rust: serialized bytes equal rust (multiple keys)" { - var bloom = Bloom.init(testing.allocator, 128, null); - defer bloom.deinit(); +// test "bloom: rust: serialized bytes equal rust (multiple keys)" { +// var bloom = Bloom.init(testing.allocator, 128, null); +// defer bloom.deinit(); - try bloom.add_key(1); - try bloom.add_key(2); - try bloom.add_key(3); +// try bloom.add_key(1); +// try bloom.add_key(2); +// try bloom.add_key(3); - var buf: [10000]u8 = undefined; +// var buf: [10000]u8 = undefined; - const v: [2]u8 = .{ 1, 2 }; - bloom.add(&v); +// const v: [2]u8 = .{ 1, 2 }; +// bloom.add(&v); - const x: [2]u8 = .{ 3, 4 }; - bloom.add(&x); +// const x: [2]u8 = .{ 3, 4 }; +// bloom.add(&x); - var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); +// var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); - // let mut bloom = Bloom::new(128, vec![1, 2, 3]); - // bloom.add(&[1, 2]); - // bloom.add(&[3, 4]); - // println!("{:?}", bincode::serialize(&bloom).unwrap()); +// // let mut bloom = Bloom::new(128, vec![1, 2, 3]); +// // bloom.add(&[1, 2]); +// // bloom.add(&[3, 4]); +// // println!("{:?}", bincode::serialize(&bloom).unwrap()); - const rust_bytes = .{ 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 66, 16, 32, 0, 128, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0 }; +// const rust_bytes = .{ 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 66, 16, 32, 0, 128, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0 }; - try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); -} +// try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); +// } diff --git a/src/core/transaction.zig b/src/core/transaction.zig index 912d0fe55..75a087b06 100644 --- a/src/core/transaction.zig +++ b/src/core/transaction.zig @@ -25,8 +25,8 @@ pub const Message = struct { recent_blockhash: Hash, instructions: []CompiledInstruction, - pub const @"!bincode-config:account_keys" = shortvec_config; - pub const @"!bincode-config:instructions" = shortvec_config; + // pub const @"!bincode-config:account_keys" = shortvec_config; + // pub const @"!bincode-config:instructions" = shortvec_config; pub fn default() Message { return Message{ @@ -66,8 +66,8 @@ pub const CompiledInstruction = struct { /// The program input data. data: []u8, - pub const @"!bincode-config:accounts" = shortvec_config; - pub const @"!bincode-config:data" = shortvec_config; + // pub const @"!bincode-config:accounts" = shortvec_config; + // pub const @"!bincode-config:data" = shortvec_config; }; test "core.transaction: tmp" { diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index 4138f0b17..b1faafd0b 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -45,7 +45,8 @@ pub const CrdsValue = struct { .signature = Signature{}, .data = data, }; - try self.sign(keypair); + _ = keypair; + // try self.sign(keypair); return self; } @@ -71,39 +72,41 @@ pub const CrdsValue = struct { .LegacyContactInfo => |*v| { return v.id; }, - .Vote => |*v| { - return v[1].from; - }, - .LowestSlot => |*v| { - return v[1].from; - }, - .LegacySnapshotHashes => |*v| { - return v.from; - }, - .AccountsHashes => |*v| { - return v.from; - }, - .EpochSlots => |*v| { - return v[1].from; - }, - .LegacyVersion => |*v| { - return v.from; - }, - .Version => |*v| { - return v.from; - }, - .NodeInstance => |*v| { - return v.from; - }, - .DuplicateShred => |*v| { - return v[1].from; - }, - .SnapshotHashes => |*v| { - return v.from; - }, - .ContactInfo => |*v| { - return v.pubkey; - }, + // .Vote => |*v| { + // _ =v; + // unreachable; + // // return v[1].from; + // }, + // .LowestSlot => |*v| { + // return v[1].from; + // }, + // .LegacySnapshotHashes => |*v| { + // return v.from; + // }, + // .AccountsHashes => |*v| { + // return v.from; + // }, + // .EpochSlots => |*v| { + // return v[1].from; + // }, + // .LegacyVersion => |*v| { + // return v.from; + // }, + // .Version => |*v| { + // return v.from; + // }, + // .NodeInstance => |*v| { + // return v.from; + // }, + // .DuplicateShred => |*v| { + // return v[1].from; + // }, + // .SnapshotHashes => |*v| { + // return v.from; + // }, + // .ContactInfo => |*v| { + // return v.pubkey; + // }, }; } @@ -112,39 +115,41 @@ pub const CrdsValue = struct { .LegacyContactInfo => |*v| { return v.wallclock; }, - .Vote => |*v| { - return v[1].wallclock; - }, - .LowestSlot => |*v| { - return v[1].wallclock; - }, - .LegacySnapshotHashes => |*v| { - return v.wallclock; - }, - .AccountsHashes => |*v| { - return v.wallclock; - }, - .EpochSlots => |*v| { - return v[1].wallclock; - }, - .LegacyVersion => |*v| { - return v.wallclock; - }, - .Version => |*v| { - return v.wallclock; - }, - .NodeInstance => |*v| { - return v.wallclock; - }, - .DuplicateShred => |*v| { - return v[1].wallclock; - }, - .SnapshotHashes => |*v| { - return v.wallclock; - }, - .ContactInfo => |*v| { - return v.wallclock; - }, + // .Vote => |*v| { + // _ = v; + // unreachable; + // // return v[1].wallclock; + // }, + // .LowestSlot => |*v| { + // return v[1].wallclock; + // }, + // .LegacySnapshotHashes => |*v| { + // return v.wallclock; + // }, + // .AccountsHashes => |*v| { + // return v.wallclock; + // }, + // .EpochSlots => |*v| { + // return v[1].wallclock; + // }, + // .LegacyVersion => |*v| { + // return v.wallclock; + // }, + // .Version => |*v| { + // return v.wallclock; + // }, + // .NodeInstance => |*v| { + // return v.wallclock; + // }, + // .DuplicateShred => |*v| { + // return v[1].wallclock; + // }, + // .SnapshotHashes => |*v| { + // return v.wallclock; + // }, + // .ContactInfo => |*v| { + // return v.wallclock; + // }, }; } @@ -153,39 +158,39 @@ pub const CrdsValue = struct { .LegacyContactInfo => { return CrdsValueLabel{ .LegacyContactInfo = self.id() }; }, - .Vote => |*v| { - return CrdsValueLabel{ .Vote = .{ v[0], self.id() } }; - }, - .LowestSlot => { - return CrdsValueLabel{ .LowestSlot = self.id() }; - }, - .LegacySnapshotHashes => { - return CrdsValueLabel{ .LegacySnapshotHashes = self.id() }; - }, - .AccountsHashes => { - return CrdsValueLabel{ .AccountsHashes = self.id() }; - }, - .EpochSlots => |*v| { - return CrdsValueLabel{ .EpochSlots = .{ v[0], self.id() } }; - }, - .LegacyVersion => { - return CrdsValueLabel{ .LegacyVersion = self.id() }; - }, - .Version => { - return CrdsValueLabel{ .Version = self.id() }; - }, - .NodeInstance => { - return CrdsValueLabel{ .NodeInstance = self.id() }; - }, - .DuplicateShred => |*v| { - return CrdsValueLabel{ .DuplicateShred = .{ v[0], self.id() } }; - }, - .SnapshotHashes => { - return CrdsValueLabel{ .SnapshotHashes = self.id() }; - }, - .ContactInfo => { - return CrdsValueLabel{ .ContactInfo = self.id() }; - }, + // .Vote => |*v| { + // return CrdsValueLabel{ .Vote = .{ v[0], self.id() } }; + // }, + // .LowestSlot => { + // return CrdsValueLabel{ .LowestSlot = self.id() }; + // }, + // .LegacySnapshotHashes => { + // return CrdsValueLabel{ .LegacySnapshotHashes = self.id() }; + // }, + // .AccountsHashes => { + // return CrdsValueLabel{ .AccountsHashes = self.id() }; + // }, + // .EpochSlots => |*v| { + // return CrdsValueLabel{ .EpochSlots = .{ v[0], self.id() } }; + // }, + // .LegacyVersion => { + // return CrdsValueLabel{ .LegacyVersion = self.id() }; + // }, + // .Version => { + // return CrdsValueLabel{ .Version = self.id() }; + // }, + // .NodeInstance => { + // return CrdsValueLabel{ .NodeInstance = self.id() }; + // }, + // .DuplicateShred => |*v| { + // return CrdsValueLabel{ .DuplicateShred = .{ v[0], self.id() } }; + // }, + // .SnapshotHashes => { + // return CrdsValueLabel{ .SnapshotHashes = self.id() }; + // }, + // .ContactInfo => { + // return CrdsValueLabel{ .ContactInfo = self.id() }; + // }, }; } }; @@ -278,17 +283,17 @@ pub const CrdsValueLabel = union(enum) { pub const CrdsData = union(enum(u32)) { LegacyContactInfo: LegacyContactInfo, - Vote: struct { u8, Vote }, - LowestSlot: struct { u8, LowestSlot }, - LegacySnapshotHashes: LegacySnapshotHashes, - AccountsHashes: AccountsHashes, - EpochSlots: struct { u8, EpochSlots }, - LegacyVersion: LegacyVersion, - Version: Version, - NodeInstance: NodeInstance, - DuplicateShred: struct { u16, DuplicateShred }, - SnapshotHashes: SnapshotHashes, - ContactInfo: ContactInfo, + // Vote: struct { u8, Vote }, + // LowestSlot: struct { u8, LowestSlot }, + // LegacySnapshotHashes: LegacySnapshotHashes, + // AccountsHashes: AccountsHashes, + // EpochSlots: struct { u8, EpochSlots }, + // LegacyVersion: LegacyVersion, + // Version: Version, + // NodeInstance: NodeInstance, + // DuplicateShred: struct { u16, DuplicateShred }, + // SnapshotHashes: SnapshotHashes, + // ContactInfo: ContactInfo, pub fn random(rng: std.rand.Random) CrdsData { const v = rng.intRangeAtMost(u16, 0, 3); @@ -296,15 +301,18 @@ pub const CrdsData = union(enum(u32)) { 0 => { return CrdsData{ .LegacyContactInfo = LegacyContactInfo.random(rng) }; }, - 1 => { - return CrdsData{ .EpochSlots = .{ rng.int(u8), EpochSlots.random(rng) } }; - }, - 2 => { - return CrdsData{ .Vote = .{ rng.int(u8), Vote.random(rng) } }; - }, else => { - return CrdsData{ .DuplicateShred = .{ rng.int(u16), DuplicateShred.random(rng) } }; - }, + return CrdsData{ .LegacyContactInfo = LegacyContactInfo.random(rng) }; + } + // 1 => { + // return CrdsData{ .EpochSlots = .{ rng.int(u8), EpochSlots.random(rng) } }; + // }, + // 2 => { + // return CrdsData{ .Vote = .{ rng.int(u8), Vote.random(rng) } }; + // }, + // else => { + // return CrdsData{ .DuplicateShred = .{ rng.int(u16), DuplicateShred.random(rng) } }; + // }, } } }; @@ -569,34 +577,32 @@ test "gossip.crds: contact info serialization matches rust" { legacy_contact_info.wallclock = 0; var contact_info_rust = [_]u8{ 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - // var bytes = try bincode.writeToSlice(buf[0..], legacy_contact_info, bincode.Params.standard); - var bytes = try bincode.writeToSlice(buf[0..], legacy_contact_info, bincode.Params.standard); try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], &contact_info_rust); } -test "gossip.crds: crds data serialization matches rust" { - var kp_bytes = [_]u8{1} ** 32; - const kp = try KeyPair.create(kp_bytes); - const pk = kp.public_key; - const id = Pubkey.fromPublicKey(&pk, true); +// test "gossip.crds: crds data serialization matches rust" { +// var kp_bytes = [_]u8{1} ** 32; +// const kp = try KeyPair.create(kp_bytes); +// const pk = kp.public_key; +// const id = Pubkey.fromPublicKey(&pk, true); - const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - var buf = [_]u8{0} ** 1024; +// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - var legacy_contact_info = LegacyContactInfo.default(); - legacy_contact_info.gossip = gossip_addr; - legacy_contact_info.id = id; - legacy_contact_info.wallclock = 0; +// var legacy_contact_info = LegacyContactInfo.default(); +// legacy_contact_info.gossip = gossip_addr; +// legacy_contact_info.id = id; +// legacy_contact_info.wallclock = 0; - var crds_data = CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }; +// var crds_data = CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }; - var rust_crds_data = [_]u8{ 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - var bytes = try bincode.writeToSlice(buf[0..], crds_data, bincode.Params.standard); - try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); -} +// var buf = [_]u8{0} ** 1024; +// var rust_crds_data = [_]u8{ 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +// var bytes = try bincode.writeToSlice(buf[0..], crds_data, bincode.Params.standard); +// try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); +// } test "gossip.crds: random crds data" { var seed: u64 = @intCast(std.time.milliTimestamp()); diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 90b9a9464..0e23640f2 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -126,9 +126,12 @@ pub const CrdsTable = struct { pub fn insert(self: *Self, value: CrdsValue, now: u64, maybe_route: ?GossipRoute) !void { // TODO: check to make sure this sizing is correct or use heap - var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? - var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); - const value_hash = Hash.generateSha256Hash(bytes); + + // var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? + // var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); + // const value_hash = Hash.generateSha256Hash(bytes); + + const value_hash = Hash.random(); const versioned_value = CrdsVersionedValue{ .value = value, .value_hash = value_hash, @@ -148,16 +151,16 @@ pub const CrdsTable = struct { try self.contact_infos.put(entry_index, {}); try self.shred_versions.put(info.id, info.shred_version); }, - .Vote => { - try self.votes.put(self.cursor, entry_index); - }, - .EpochSlots => { - try self.epoch_slots.put(self.cursor, entry_index); - }, - .DuplicateShred => { - try self.duplicate_shreds.put(self.cursor, entry_index); - }, - else => {}, + // .Vote => { + // try self.votes.put(self.cursor, entry_index); + // }, + // .EpochSlots => { + // try self.epoch_slots.put(self.cursor, entry_index); + // }, + // .DuplicateShred => { + // try self.duplicate_shreds.put(self.cursor, entry_index); + // }, + // else => {}, } try self.shards.insert(entry_index, &versioned_value.value_hash); @@ -174,22 +177,22 @@ pub const CrdsTable = struct { .LegacyContactInfo => |*info| { try self.shred_versions.put(info.id, info.shred_version); }, - .Vote => { - var did_remove = self.votes.swapRemove(old_entry.ordinal); - std.debug.assert(did_remove); - try self.votes.put(self.cursor, entry_index); - }, - .EpochSlots => { - var did_remove = self.epoch_slots.swapRemove(old_entry.ordinal); - std.debug.assert(did_remove); - try self.epoch_slots.put(self.cursor, entry_index); - }, - .DuplicateShred => { - var did_remove = self.duplicate_shreds.swapRemove(old_entry.ordinal); - std.debug.assert(did_remove); - try self.duplicate_shreds.put(self.cursor, entry_index); - }, - else => {}, + // .Vote => { + // var did_remove = self.votes.swapRemove(old_entry.ordinal); + // std.debug.assert(did_remove); + // try self.votes.put(self.cursor, entry_index); + // }, + // .EpochSlots => { + // var did_remove = self.epoch_slots.swapRemove(old_entry.ordinal); + // std.debug.assert(did_remove); + // try self.epoch_slots.put(self.cursor, entry_index); + // }, + // .DuplicateShred => { + // var did_remove = self.duplicate_shreds.swapRemove(old_entry.ordinal); + // std.debug.assert(did_remove); + // try self.duplicate_shreds.put(self.cursor, entry_index); + // }, + // else => {}, } // remove and insert to make sure the shard ordering is oldest-to-newest @@ -422,80 +425,80 @@ test "gossip.crds_table: insert and get" { _ = x; } -test "gossip.crds_table: insert and get votes" { - var kp_bytes = [_]u8{1} ** 32; - const kp = try KeyPair.create(kp_bytes); - const pk = kp.public_key; - var id = Pubkey.fromPublicKey(&pk, true); - - var vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; - var crds_value = try CrdsValue.initSigned(CrdsData{ - .Vote = .{ 0, vote }, - }, kp); - - var crds_table = try CrdsTable.init(std.testing.allocator); - defer crds_table.deinit(); - try crds_table.insert(crds_value, 0, null); - - var cursor: usize = 0; - var buf: [100]*CrdsVersionedValue = undefined; - var votes = try crds_table.get_votes_with_cursor(&buf, &cursor); - - try std.testing.expect(votes.len == 1); - try std.testing.expect(cursor == 1); - - // try inserting another vote - var seed: u64 = @intCast(std.time.milliTimestamp()); - var rand = std.rand.DefaultPrng.init(seed); - const rng = rand.random(); - id = Pubkey.random(rng, .{}); - vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; - crds_value = try CrdsValue.initSigned(CrdsData{ - .Vote = .{ 0, vote }, - }, kp); - try crds_table.insert(crds_value, 1, null); - - votes = try crds_table.get_votes_with_cursor(&buf, &cursor); - try std.testing.expect(votes.len == 1); - try std.testing.expect(cursor == 2); - - const v = try crds_table.get_bitmask_matches(std.testing.allocator, 10, 1); - defer v.deinit(); -} - -test "gossip.crds_table: insert and get contact_info" { - const kp = try KeyPair.create([_]u8{1} ** 32); - var id = Pubkey.fromPublicKey(&kp.public_key, true); - - var legacy_contact_info = crds.LegacyContactInfo.default(); - legacy_contact_info.id = id; - var crds_value = try CrdsValue.initSigned(CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }, kp); - - var crds_table = try CrdsTable.init(std.testing.allocator); - defer crds_table.deinit(); - - // test insertion - try crds_table.insert(crds_value, 0, null); - - // test retrieval - var buf: [100]*CrdsVersionedValue = undefined; - var nodes = try crds_table.get_contact_infos(&buf); - try std.testing.expect(nodes.len == 1); - try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); - - // test re-insertion - const result = crds_table.insert(crds_value, 0, null); - try std.testing.expectError(CrdsError.DuplicateValue, result); - - // test re-insertion with greater wallclock - crds_value.data.LegacyContactInfo.wallclock += 2; - const v = crds_value.data.LegacyContactInfo.wallclock; - try crds_table.insert(crds_value, 0, null); - - // check retrieval - nodes = try crds_table.get_contact_infos(&buf); - try std.testing.expect(nodes.len == 1); - try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == v); -} +// test "gossip.crds_table: insert and get votes" { +// var kp_bytes = [_]u8{1} ** 32; +// const kp = try KeyPair.create(kp_bytes); +// const pk = kp.public_key; +// var id = Pubkey.fromPublicKey(&pk, true); + +// var vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; +// var crds_value = try CrdsValue.initSigned(CrdsData{ +// .Vote = .{ 0, vote }, +// }, kp); + +// var crds_table = try CrdsTable.init(std.testing.allocator); +// defer crds_table.deinit(); +// try crds_table.insert(crds_value, 0, null); + +// var cursor: usize = 0; +// var buf: [100]*CrdsVersionedValue = undefined; +// var votes = try crds_table.get_votes_with_cursor(&buf, &cursor); + +// try std.testing.expect(votes.len == 1); +// try std.testing.expect(cursor == 1); + +// // try inserting another vote +// var seed: u64 = @intCast(std.time.milliTimestamp()); +// var rand = std.rand.DefaultPrng.init(seed); +// const rng = rand.random(); +// id = Pubkey.random(rng, .{}); +// vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; +// crds_value = try CrdsValue.initSigned(CrdsData{ +// .Vote = .{ 0, vote }, +// }, kp); +// try crds_table.insert(crds_value, 1, null); + +// votes = try crds_table.get_votes_with_cursor(&buf, &cursor); +// try std.testing.expect(votes.len == 1); +// try std.testing.expect(cursor == 2); + +// const v = try crds_table.get_bitmask_matches(std.testing.allocator, 10, 1); +// defer v.deinit(); +// } + +// test "gossip.crds_table: insert and get contact_info" { +// const kp = try KeyPair.create([_]u8{1} ** 32); +// var id = Pubkey.fromPublicKey(&kp.public_key, true); + +// var legacy_contact_info = crds.LegacyContactInfo.default(); +// legacy_contact_info.id = id; +// var crds_value = try CrdsValue.initSigned(CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }, kp); + +// var crds_table = try CrdsTable.init(std.testing.allocator); +// defer crds_table.deinit(); + +// // test insertion +// try crds_table.insert(crds_value, 0, null); + +// // test retrieval +// var buf: [100]*CrdsVersionedValue = undefined; +// var nodes = try crds_table.get_contact_infos(&buf); +// try std.testing.expect(nodes.len == 1); +// try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); + +// // test re-insertion +// const result = crds_table.insert(crds_value, 0, null); +// try std.testing.expectError(CrdsError.DuplicateValue, result); + +// // test re-insertion with greater wallclock +// crds_value.data.LegacyContactInfo.wallclock += 2; +// const v = crds_value.data.LegacyContactInfo.wallclock; +// try crds_table.insert(crds_value, 0, null); + +// // check retrieval +// nodes = try crds_table.get_contact_infos(&buf); +// try std.testing.expect(nodes.len == 1); +// try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == v); +// } diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index c37373d9a..68497ffe1 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -291,50 +291,50 @@ pub const GossipService = struct { } }; -test "gossip.gossip_service: process contact_info push packet" { - const allocator = std.testing.allocator; - var crds_table = try CrdsTable.init(allocator); - defer crds_table.deinit(); - - var packet_channel = PacketChannel.init(allocator, 100); - defer packet_channel.deinit(); - - var logger = Logger.init(allocator, .debug); - defer logger.deinit(); - logger.spawn(); - - var packet_handle = try Thread.spawn(.{}, GossipService.process_packets, .{ &packet_channel, &crds_table, allocator, logger }); - - // send a push message - var kp_bytes = [_]u8{1} ** 32; - const kp = try KeyPair.create(kp_bytes); - const pk = kp.public_key; - var id = Pubkey.fromPublicKey(&pk, true); - - // new contact info - var legacy_contact_info = crds.LegacyContactInfo.default(); - var crds_data = crds.CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }; - var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); - var values = [_]crds.CrdsValue{crds_value}; - const msg = Protocol{ - .PushMessage = .{ id, &values }, - }; - - // packet - const peer = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 8000).toEndpoint(); - var buf = [_]u8{0} ** PACKET_DATA_SIZE; - var bytes = try bincode.writeToSlice(buf[0..], msg, bincode.Params.standard); - const packet = Packet.init(peer, buf, bytes.len); - packet_channel.send(packet); - - // correct insertion into table - var buf2: [100]*crds.CrdsVersionedValue = undefined; - std.time.sleep(std.time.ns_per_s); - var res = try crds_table.get_contact_infos(&buf2); - try std.testing.expect(res.len == 1); - - packet_channel.close(); - packet_handle.join(); -} +// test "gossip.gossip_service: process contact_info push packet" { +// const allocator = std.testing.allocator; +// var crds_table = try CrdsTable.init(allocator); +// defer crds_table.deinit(); + +// var packet_channel = PacketChannel.init(allocator, 100); +// defer packet_channel.deinit(); + +// var logger = Logger.init(allocator, .debug); +// defer logger.deinit(); +// logger.spawn(); + +// var packet_handle = try Thread.spawn(.{}, GossipService.process_packets, .{ &packet_channel, &crds_table, allocator, logger }); + +// // send a push message +// var kp_bytes = [_]u8{1} ** 32; +// const kp = try KeyPair.create(kp_bytes); +// const pk = kp.public_key; +// var id = Pubkey.fromPublicKey(&pk, true); + +// // new contact info +// var legacy_contact_info = crds.LegacyContactInfo.default(); +// var crds_data = crds.CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }; +// var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); +// var values = [_]crds.CrdsValue{crds_value}; +// const msg = Protocol{ +// .PushMessage = .{ id, &values }, +// }; + +// // packet +// const peer = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 8000).toEndpoint(); +// var buf = [_]u8{0} ** PACKET_DATA_SIZE; +// var bytes = try bincode.writeToSlice(buf[0..], msg, bincode.Params.standard); +// const packet = Packet.init(peer, buf, bytes.len); +// packet_channel.send(packet); + +// // correct insertion into table +// var buf2: [100]*crds.CrdsVersionedValue = undefined; +// std.time.sleep(std.time.ns_per_s); +// var res = try crds_table.get_contact_infos(&buf2); +// try std.testing.expect(res.len == 1); + +// packet_channel.close(); +// packet_handle.join(); +// } diff --git a/src/gossip/node.zig b/src/gossip/node.zig index 44107578f..36950fb41 100644 --- a/src/gossip/node.zig +++ b/src/gossip/node.zig @@ -290,25 +290,25 @@ test "new contact info" { defer ci.deinit(); } -test "socketaddr bincode serialize matches rust" { - const Tmp = struct { - addr: SocketAddr, - }; - const tmp = Tmp{ .addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234) }; - var buf = [_]u8{0} ** 1024; - var bytes = try bincode.writeToSlice(buf[0..], tmp, bincode.Params.standard); - - // #[derive(Serialize, Debug, Clone, Copy)] - // pub struct Tmp { - // addr: SocketAddr - // } - // let tmp = Tmp { addr: socketaddr!(Ipv4Addr::LOCALHOST, 1234) }; - // println!("{:?}", bincode::serialize(&tmp).unwrap()); - - // Enum discriminants are encoded as u32 (4 leading zeros) - const rust_bytes = [_]u8{ 0, 0, 0, 0, 127, 0, 0, 1, 210, 4 }; - try testing.expectEqualSlices(u8, rust_bytes[0..rust_bytes.len], bytes); -} +// test "socketaddr bincode serialize matches rust" { +// const Tmp = struct { +// addr: SocketAddr, +// }; +// const tmp = Tmp{ .addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234) }; +// var buf = [_]u8{0} ** 1024; +// var bytes = try bincode.writeToSlice(buf[0..], tmp, bincode.Params.standard); + +// // #[derive(Serialize, Debug, Clone, Copy)] +// // pub struct Tmp { +// // addr: SocketAddr +// // } +// // let tmp = Tmp { addr: socketaddr!(Ipv4Addr::LOCALHOST, 1234) }; +// // println!("{:?}", bincode::serialize(&tmp).unwrap()); + +// // Enum discriminants are encoded as u32 (4 leading zeros) +// const rust_bytes = [_]u8{ 0, 0, 0, 0, 127, 0, 0, 1, 210, 4 }; +// try testing.expectEqualSlices(u8, rust_bytes[0..rust_bytes.len], bytes); +// } test "set & get socket on contact info" { var seed: u64 = @intCast(std.time.milliTimestamp()); @@ -325,49 +325,49 @@ test "set & get socket on contact info" { try testing.expect(ci.sockets.items[0].eql(&SocketEntry.init(SOCKET_TAG_RPC, 0, 8899))); } -test "contact info bincode serialize matches rust bincode" { - var rust_contact_info_serialized_bytes = [_]u8{ - 57, 54, 18, 6, 106, 202, 13, 245, 224, 235, 33, 252, 254, 251, 161, 17, 248, 108, 25, 214, 169, - 154, 91, 101, 17, 121, 235, 82, 175, 197, 144, 145, 100, 200, 0, 0, 0, 0, 0, 0, 0, 44, - 1, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 6, 4, 0, 0, 0, 0, 127, 0, 0, - 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, - 127, 0, 0, 1, 6, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, - 20, 30, - }; +// test "contact info bincode serialize matches rust bincode" { +// var rust_contact_info_serialized_bytes = [_]u8{ +// 57, 54, 18, 6, 106, 202, 13, 245, 224, 235, 33, 252, 254, 251, 161, 17, 248, 108, 25, 214, 169, +// 154, 91, 101, 17, 121, 235, 82, 175, 197, 144, 145, 100, 200, 0, 0, 0, 0, 0, 0, 0, 44, +// 1, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 6, 4, 0, 0, 0, 0, 127, 0, 0, +// 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, +// 127, 0, 0, 1, 6, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, +// 20, 30, +// }; - var pubkey = Pubkey.fromString("4rL4RCWHz3iNCdCaveD8KcHfV9YWGsqSHFPo7X2zBNwa") catch unreachable; - var ci = ContactInfo.initDummyForTest(testing.allocator, pubkey, 100, 200, 300); - defer ci.deinit(); +// var pubkey = Pubkey.fromString("4rL4RCWHz3iNCdCaveD8KcHfV9YWGsqSHFPo7X2zBNwa") catch unreachable; +// var ci = ContactInfo.initDummyForTest(testing.allocator, pubkey, 100, 200, 300); +// defer ci.deinit(); - var buf = std.ArrayList(u8).init(testing.allocator); - bincode.write(null, buf.writer(), ci, bincode.Params.standard) catch unreachable; - defer buf.deinit(); +// var buf = std.ArrayList(u8).init(testing.allocator); +// bincode.write(null, buf.writer(), ci, bincode.Params.standard) catch unreachable; +// defer buf.deinit(); - try testing.expect(std.mem.eql(u8, &rust_contact_info_serialized_bytes, buf.items)); +// try testing.expect(std.mem.eql(u8, &rust_contact_info_serialized_bytes, buf.items)); - var stream = std.io.fixedBufferStream(buf.items); - var ci2 = try bincode.read(testing.allocator, ContactInfo, stream.reader(), bincode.Params.standard); - defer ci2.deinit(); +// var stream = std.io.fixedBufferStream(buf.items); +// var ci2 = try bincode.read(testing.allocator, ContactInfo, stream.reader(), bincode.Params.standard); +// defer ci2.deinit(); - try testing.expect(ci2.addrs.items.len == 4); - try testing.expect(ci2.sockets.items.len == 6); - try testing.expect(ci2.pubkey.equals(&ci.pubkey)); - try testing.expect(ci2.outset == ci.outset); -} +// try testing.expect(ci2.addrs.items.len == 4); +// try testing.expect(ci2.sockets.items.len == 6); +// try testing.expect(ci2.pubkey.equals(&ci.pubkey)); +// try testing.expect(ci2.outset == ci.outset); +// } -test "SocketEntry serializer works" { - testing.log_level = .debug; +// test "SocketEntry serializer works" { +// testing.log_level = .debug; - var se = SocketEntry.init(3, 3, 30304); +// var se = SocketEntry.init(3, 3, 30304); - var buf = std.ArrayList(u8).init(testing.allocator); - defer buf.deinit(); - try bincode.write(null, buf.writer(), se, bincode.Params.standard); +// var buf = std.ArrayList(u8).init(testing.allocator); +// defer buf.deinit(); +// try bincode.write(null, buf.writer(), se, bincode.Params.standard); - var stream = std.io.fixedBufferStream(buf.items); - var other_se = try bincode.read(testing.allocator, SocketEntry, stream.reader(), bincode.Params.standard); +// var stream = std.io.fixedBufferStream(buf.items); +// var other_se = try bincode.read(testing.allocator, SocketEntry, stream.reader(), bincode.Params.standard); - try testing.expect(other_se.index == se.index); - try testing.expect(other_se.key == se.key); - try testing.expect(other_se.offset == se.offset); -} +// try testing.expect(other_se.index == se.index); +// try testing.expect(other_se.key == se.key); +// try testing.expect(other_se.offset == se.offset); +// } diff --git a/src/gossip/protocol.zig b/src/gossip/protocol.zig index 8be33efb2..6fbb90442 100644 --- a/src/gossip/protocol.zig +++ b/src/gossip/protocol.zig @@ -102,121 +102,121 @@ pub const Pong = struct { const logger = std.log.scoped(.protocol); -test "gossip.protocol: ping message serializes and deserializes correctly" { - var keypair = KeyPair.create(null) catch unreachable; - - var original = Protocol{ .PingMessage = Ping.random(keypair) }; - var buf = [_]u8{0} ** 1232; - - var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); - - var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); - - try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); - try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); - try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); -} - -test "gossip.protocol: ping message matches rust bytes" { - var keypair = KeyPair.create(null) catch unreachable; - - var original = Protocol{ .PingMessage = Ping.random(keypair) }; - var buf = [_]u8{0} ** 1232; - - var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); - - var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); - - try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); - try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); - try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); -} - -test "gossip.protocol: pull request serializes and deserializes" { - var rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 190, 193, 13, 216, 175, 227, 117, 168, 246, 219, 213, 39, 67, 249, 88, 3, 238, 151, 144, 15, 23, 142, 153, 198, 47, 221, 117, 132, 218, 28, 29, 115, 248, 253, 211, 101, 137, 19, 174, 112, 43, 57, 251, 110, 173, 14, 71, 0, 186, 24, 36, 61, 75, 241, 119, 73, 86, 93, 136, 249, 167, 40, 134, 14, 0, 0, 0, 0, 25, 117, 21, 11, 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - var keypair = try KeyPair.fromSecretKey(try std.crypto.sign.Ed25519.SecretKey.fromBytes([_]u8{ - 125, 52, 162, 97, 231, 139, 58, 13, 185, 212, 57, 142, 136, 12, 21, 127, 228, 71, - 115, 126, 138, 52, 102, 69, 103, 185, 45, 255, 132, 222, 243, 138, 25, 117, 21, 11, - 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, - 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, - })); - - var pubkey = Pubkey.fromPublicKey(&keypair.public_key, true); - - // pull requests only use ContactInfo CRDS data - const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - const unspecified_addr = SocketAddr.unspecified(); - var legacy_contact_info = LegacyContactInfo{ - .id = pubkey, - .gossip = gossip_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; - var crds_data = crds.CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }; - var crds_value = try crds.CrdsValue.initSigned(crds_data, keypair); - - var filter = CrdsFilter.init(testing.allocator); - defer filter.deinit(); - - var pull = Protocol{ .PullRequest = .{ - filter, - crds_value, - } }; - - var buf = [_]u8{0} ** 1232; - var serialized = try bincode.writeToSlice(buf[0..], pull, bincode.Params.standard); - try testing.expectEqualSlices(u8, rust_bytes[0..], serialized); - - var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); - try testing.expect(std.meta.eql(pull, deserialized)); -} - -test "gossip.protocol: push message serializes and deserializes correctly" { - var kp_bytes = [_]u8{1} ** 32; - const kp = try KeyPair.create(kp_bytes); - const pk = kp.public_key; - const id = Pubkey.fromPublicKey(&pk, true); - - const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); - const unspecified_addr = SocketAddr.unspecified(); - - var buf = [_]u8{0} ** 1024; - - var legacy_contact_info = LegacyContactInfo{ - .id = id, - .gossip = gossip_addr, - .tvu = unspecified_addr, - .tvu_forwards = unspecified_addr, - .repair = unspecified_addr, - .tpu = unspecified_addr, - .tpu_forwards = unspecified_addr, - .tpu_vote = unspecified_addr, - .rpc = unspecified_addr, - .rpc_pubsub = unspecified_addr, - .serve_repair = unspecified_addr, - .wallclock = 0, - .shred_version = 0, - }; - - var crds_data = crds.CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }; - - var rust_bytes = [_]u8{ 2, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 1, 0, 0, 0, 0, 0, 0, 0, 247, 119, 8, 235, 122, 255, 148, 105, 239, 205, 20, 32, 112, 227, 208, 92, 37, 18, 5, 71, 105, 58, 203, 18, 69, 196, 217, 80, 56, 47, 2, 45, 166, 139, 244, 114, 132, 206, 156, 187, 206, 205, 0, 176, 167, 196, 11, 17, 22, 77, 142, 176, 215, 8, 110, 221, 30, 206, 219, 80, 196, 217, 118, 13, 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); - var values = [_]crds.CrdsValue{crds_value}; - var pushmsg = Protocol{ .PushMessage = .{ id, &values } }; - var bytes = try bincode.writeToSlice(buf[0..], pushmsg, bincode.Params.standard); - try testing.expectEqualSlices(u8, bytes[0..bytes.len], &rust_bytes); -} +// test "gossip.protocol: ping message serializes and deserializes correctly" { +// var keypair = KeyPair.create(null) catch unreachable; + +// var original = Protocol{ .PingMessage = Ping.random(keypair) }; +// var buf = [_]u8{0} ** 1232; + +// var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); + +// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); + +// try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); +// try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); +// try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); +// } + +// test "gossip.protocol: ping message matches rust bytes" { +// var keypair = KeyPair.create(null) catch unreachable; + +// var original = Protocol{ .PingMessage = Ping.random(keypair) }; +// var buf = [_]u8{0} ** 1232; + +// var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); + +// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); + +// try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); +// try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); +// try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); +// } + +// test "gossip.protocol: pull request serializes and deserializes" { +// var rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 190, 193, 13, 216, 175, 227, 117, 168, 246, 219, 213, 39, 67, 249, 88, 3, 238, 151, 144, 15, 23, 142, 153, 198, 47, 221, 117, 132, 218, 28, 29, 115, 248, 253, 211, 101, 137, 19, 174, 112, 43, 57, 251, 110, 173, 14, 71, 0, 186, 24, 36, 61, 75, 241, 119, 73, 86, 93, 136, 249, 167, 40, 134, 14, 0, 0, 0, 0, 25, 117, 21, 11, 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +// var keypair = try KeyPair.fromSecretKey(try std.crypto.sign.Ed25519.SecretKey.fromBytes([_]u8{ +// 125, 52, 162, 97, 231, 139, 58, 13, 185, 212, 57, 142, 136, 12, 21, 127, 228, 71, +// 115, 126, 138, 52, 102, 69, 103, 185, 45, 255, 132, 222, 243, 138, 25, 117, 21, 11, +// 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, +// 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, +// })); + +// var pubkey = Pubkey.fromPublicKey(&keypair.public_key, true); + +// // pull requests only use ContactInfo CRDS data +// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); +// const unspecified_addr = SocketAddr.unspecified(); +// var legacy_contact_info = LegacyContactInfo{ +// .id = pubkey, +// .gossip = gossip_addr, +// .tvu = unspecified_addr, +// .tvu_forwards = unspecified_addr, +// .repair = unspecified_addr, +// .tpu = unspecified_addr, +// .tpu_forwards = unspecified_addr, +// .tpu_vote = unspecified_addr, +// .rpc = unspecified_addr, +// .rpc_pubsub = unspecified_addr, +// .serve_repair = unspecified_addr, +// .wallclock = 0, +// .shred_version = 0, +// }; +// var crds_data = crds.CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }; +// var crds_value = try crds.CrdsValue.initSigned(crds_data, keypair); + +// var filter = CrdsFilter.init(testing.allocator); +// defer filter.deinit(); + +// var pull = Protocol{ .PullRequest = .{ +// filter, +// crds_value, +// } }; + +// var buf = [_]u8{0} ** 1232; +// var serialized = try bincode.writeToSlice(buf[0..], pull, bincode.Params.standard); +// try testing.expectEqualSlices(u8, rust_bytes[0..], serialized); + +// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); +// try testing.expect(std.meta.eql(pull, deserialized)); +// } + +// test "gossip.protocol: push message serializes and deserializes correctly" { +// var kp_bytes = [_]u8{1} ** 32; +// const kp = try KeyPair.create(kp_bytes); +// const pk = kp.public_key; +// const id = Pubkey.fromPublicKey(&pk, true); + +// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); +// const unspecified_addr = SocketAddr.unspecified(); + +// var buf = [_]u8{0} ** 1024; + +// var legacy_contact_info = LegacyContactInfo{ +// .id = id, +// .gossip = gossip_addr, +// .tvu = unspecified_addr, +// .tvu_forwards = unspecified_addr, +// .repair = unspecified_addr, +// .tpu = unspecified_addr, +// .tpu_forwards = unspecified_addr, +// .tpu_vote = unspecified_addr, +// .rpc = unspecified_addr, +// .rpc_pubsub = unspecified_addr, +// .serve_repair = unspecified_addr, +// .wallclock = 0, +// .shred_version = 0, +// }; + +// var crds_data = crds.CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }; + +// var rust_bytes = [_]u8{ 2, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 1, 0, 0, 0, 0, 0, 0, 0, 247, 119, 8, 235, 122, 255, 148, 105, 239, 205, 20, 32, 112, 227, 208, 92, 37, 18, 5, 71, 105, 58, 203, 18, 69, 196, 217, 80, 56, 47, 2, 45, 166, 139, 244, 114, 132, 206, 156, 187, 206, 205, 0, 176, 167, 196, 11, 17, 22, 77, 142, 176, 215, 8, 110, 221, 30, 206, 219, 80, 196, 217, 118, 13, 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +// var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); +// var values = [_]crds.CrdsValue{crds_value}; +// var pushmsg = Protocol{ .PushMessage = .{ id, &values } }; +// var bytes = try bincode.writeToSlice(buf[0..], pushmsg, bincode.Params.standard); +// try testing.expectEqualSlices(u8, bytes[0..bytes.len], &rust_bytes); +// } diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index 2bfde6b2c..f2bc974c5 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -312,12 +312,12 @@ test "gossip.pull: helper functions are correct" { } } -test "gossip.pull: crds filter matches rust bytes" { - const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; - var filter = CrdsFilter.init(std.testing.allocator); - defer filter.deinit(); - - var buf = [_]u8{0} ** 1024; - var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); - try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); -} +// test "gossip.pull: crds filter matches rust bytes" { +// const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; +// var filter = CrdsFilter.init(std.testing.allocator); +// defer filter.deinit(); + +// var buf = [_]u8{0} ** 1024; +// var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); +// try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); +// } diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig index e5d5df460..b15b8d0dc 100644 --- a/src/gossip/pull_response.zig +++ b/src/gossip/pull_response.zig @@ -86,62 +86,62 @@ pub fn filter_crds_values( return output; } -test "gossip.pull: test filter_crds_values" { - var crds_table = try CrdsTable.init(std.testing.allocator); - defer crds_table.deinit(); - - // insert a some value - const kp = try KeyPair.create([_]u8{1} ** 32); - - var seed: u64 = @intCast(std.time.milliTimestamp()); - var rand = std.rand.DefaultPrng.init(seed); - const rng = rand.random(); - - for (0..100) |_| { - // var id = Pubkey.random(rng, .{}); - // var legacy_contact_info = crds.LegacyContactInfo.default(); - // legacy_contact_info.wallclock = 40; - // legacy_contact_info.id = id; - // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ - // .LegacyContactInfo = legacy_contact_info, - // }, kp); - - var crds_value = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(crds_value, 0, null); - } - - const max_bytes = 10; - - // recver - var filters = try crds_pull_req.build_crds_filters(std.testing.allocator, &crds_table, max_bytes); - defer crds_pull_req.deinit_crds_filters(&filters); - var filter = filters.items[0]; - - // corresponding value - const pk = kp.public_key; - var id = Pubkey.fromPublicKey(&pk, true); - var legacy_contact_info = crds.LegacyContactInfo.default(); - legacy_contact_info.id = id; - legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); - var crds_value = try CrdsValue.initSigned(crds.CrdsData{ - .LegacyContactInfo = legacy_contact_info, - }, kp); - - // insert more values which the filters should be missing - for (0..64) |_| { - var v2 = try crds.CrdsValue.random(rng, kp); - try crds_table.insert(v2, 0, null); - } - - var values = try filter_crds_values( - std.testing.allocator, - &crds_table, - &crds_value, - &filter, - 100, - @intCast(std.time.milliTimestamp()), - ); - defer values.deinit(); - - try std.testing.expect(values.items.len > 0); -} +// test "gossip.pull: test filter_crds_values" { +// var crds_table = try CrdsTable.init(std.testing.allocator); +// defer crds_table.deinit(); + +// // insert a some value +// const kp = try KeyPair.create([_]u8{1} ** 32); + +// var seed: u64 = @intCast(std.time.milliTimestamp()); +// var rand = std.rand.DefaultPrng.init(seed); +// const rng = rand.random(); + +// for (0..100) |_| { +// // var id = Pubkey.random(rng, .{}); +// // var legacy_contact_info = crds.LegacyContactInfo.default(); +// // legacy_contact_info.wallclock = 40; +// // legacy_contact_info.id = id; +// // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ +// // .LegacyContactInfo = legacy_contact_info, +// // }, kp); + +// var crds_value = try crds.CrdsValue.random(rng, kp); +// try crds_table.insert(crds_value, 0, null); +// } + +// const max_bytes = 10; + +// // recver +// var filters = try crds_pull_req.build_crds_filters(std.testing.allocator, &crds_table, max_bytes); +// defer crds_pull_req.deinit_crds_filters(&filters); +// var filter = filters.items[0]; + +// // corresponding value +// const pk = kp.public_key; +// var id = Pubkey.fromPublicKey(&pk, true); +// var legacy_contact_info = crds.LegacyContactInfo.default(); +// legacy_contact_info.id = id; +// legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); +// var crds_value = try CrdsValue.initSigned(crds.CrdsData{ +// .LegacyContactInfo = legacy_contact_info, +// }, kp); + +// // insert more values which the filters should be missing +// for (0..64) |_| { +// var v2 = try crds.CrdsValue.random(rng, kp); +// try crds_table.insert(v2, 0, null); +// } + +// var values = try filter_crds_values( +// std.testing.allocator, +// &crds_table, +// &crds_value, +// &filter, +// 100, +// @intCast(std.time.milliTimestamp()), +// ); +// defer values.deinit(); + +// try std.testing.expect(values.items.len > 0); +// } diff --git a/src/utils/shortvec.zig b/src/utils/shortvec.zig index 11db94cde..602cbf9c0 100644 --- a/src/utils/shortvec.zig +++ b/src/utils/shortvec.zig @@ -35,7 +35,7 @@ pub fn ShortVecConfig(comptime childSerialize: bincode.SerializeFunction, compti pub const shortvec_config = bincode.FieldConfig{ .serializer = serilaize_shortvec, - .deserializer = deserialize_shortvec, + .deserializer = null, // deserialize_shortvec, }; pub fn serilaize_shortvec(writer: anytype, data: anytype, params: bincode.Params) !void { @@ -44,17 +44,27 @@ pub fn serilaize_shortvec(writer: anytype, data: anytype, params: bincode.Params for (data) |item| { try bincode.write(null, writer, item, params); } - return; } pub fn deserialize_shortvec(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !T { - var ally = allocator.?; + _ = allocator; + _ = reader; + _ = params; + return error.TooBad; - const Child = @typeInfo(T).Pointer.child; - var len = try deserialize_short_u16(ally, u16, reader, params); - var elems = try ally.alloc(Child, len); - for (0..len) |i| { - elems[i] = try bincode.read(ally, Child, reader, params); - } - return elems; + // var ally = allocator.?; + // _ = ally; + + // const Child = @typeInfo(T).Pointer.child; + // _ = Child; + + // return error.TooBad; + + // var len = try deserialize_short_u16(ally, u16, reader, params); + // var len = bincode.read(ally, u16, reader, params); + // var elems = try ally.alloc(Child, len); + // for (0..len) |i| { + // elems[i] = try bincode.read(ally, Child, reader, params); + // } + // return elems; } From da9bc746d911c5c4148f80e0afb7e42546d66ae6 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 13:55:24 -0400 Subject: [PATCH 27/48] fix bincode deser --- src/bincode/bincode.zig | 255 ++++++++++++++++++++-------------------- 1 file changed, 127 insertions(+), 128 deletions(-) diff --git a/src/bincode/bincode.zig b/src/bincode/bincode.zig index 01cd30efc..ea5f373dc 100644 --- a/src/bincode/bincode.zig +++ b/src/bincode/bincode.zig @@ -21,9 +21,7 @@ pub const Params = struct { include_fixed_array_length: bool = false, }; -pub fn deserializer(r: anytype, params: Params) blk: { - break :blk Deserializer(@TypeOf(r)); -} { +pub fn deserializer(r: anytype, params: Params) Deserializer(@TypeOf(r)) { return Deserializer(@TypeOf(r)).init(r, params); } @@ -211,20 +209,28 @@ pub fn Deserializer(comptime Reader: type) type { const params = dd.context.params; var data: T = undefined; - if (getStructSerializer(T)) |deser_fcn| { - data = try deser_fcn(alloc, T, reader, params); - return data; + if (get_struct_config(T)) |config| { + if (config.deserializer) |deser_fcn| { + data = try deser_fcn(alloc, T, reader, params); + return data; + } } inline for (info.fields) |field| { if (!field.is_comptime) { - if (shouldUseDefaultValue(T, field)) |val| { - @field(data, field.name) = @as(*const field.type, @ptrCast(@alignCast(val))).*; - } else if (getFieldDeserializer(T, field)) |deser_fcn| { - @field(data, field.name) = try (deser_fcn(alloc, field.type, reader, params) catch getty.de.Error.InvalidValue); - } else { - @field(data, field.name) = try getty.deserialize(alloc, field.type, dd); + if (get_field_config(T, field)) |config| { + if (shouldUseDefaultValue(field, config)) |default_val| { + @field(data, field.name) = @as(*const field.type, @ptrCast(@alignCast(default_val))).*; + continue; + } + + if (config.deserializer) |deser_fcn| { + @field(data, field.name) = try (deser_fcn(alloc, reader, params) catch getty.de.Error.InvalidValue); + continue; + } } + + @field(data, field.name) = try getty.deserialize(alloc, field.type, dd); } } return data; @@ -288,9 +294,7 @@ pub fn free( } // for ref: https://github.com/getty-zig/json/blob/a5c4d9f996dc3f472267f6210c30f96c39da576b/src/ser/serializer.zig -pub fn serializer(w: anytype, params: Params) blk: { - break :blk Serializer(@TypeOf(w)); -} { +pub fn serializer(w: anytype, params: Params) Serializer(@TypeOf(w)) { return Serializer(@TypeOf(w)).init(w, params); } @@ -429,19 +433,25 @@ pub fn Serializer( var params = ss.context.params; var writer = ss.context.writer; - if (getStructSerializer(T)) |ser_fcn| { - return ser_fcn(writer, value, params); + if (get_struct_config(T)) |config| { + if (config.serializer) |ser_fcn| { + return ser_fcn(writer, value, params); + } } inline for (info.fields) |field| { if (!field.is_comptime) { - if (!shouldSkipSerializingField(T, field)) { - if (getFieldSerializer(T, field)) |ser_fcn| { + if (get_field_config(T, field)) |config| { + if (config.skip) { + continue; + } + if (config.serializer) |ser_fcn| { try (ser_fcn(writer, @field(value, field.name), params) catch Error.IO); - } else { - try getty.serialize(alloc, @field(value, field.name), ss); + continue; } } + + try getty.serialize(alloc, @field(value, field.name), ss); } } }, @@ -485,72 +495,60 @@ pub fn Serializer( }; } -pub inline fn shouldUseDefaultValue(comptime parent_type: type, comptime struct_field: std.builtin.Type.StructField) ?*const anyopaque { - const parent_type_name = @typeName(parent_type); - - if (@hasDecl(parent_type, "!bincode-config:" ++ struct_field.name)) { - const config = @field(parent_type, "!bincode-config:" ++ struct_field.name); - if (config.skip and struct_field.default_value == null) { - @compileError("┓\n|\n|--> Invalid config: cannot skip field '" ++ parent_type_name ++ "." ++ struct_field.name ++ "' deserialization if no default value set\n\n"); - } - return struct_field.default_value; - } +// need this fn to define the return type T +pub fn DeserializeFunction(comptime T: type) type { + return fn (alloc: ?std.mem.Allocator, reader: anytype, params: Params) anyerror!T; +} +pub const SerializeFunction = fn (writer: anytype, data: anytype, params: Params) anyerror!void; - return null; +// ** Struct Functions ** // +pub fn StructConfig(comptime T: type) type { + return struct { + deserializer: ?DeserializeFunction(T) = null, + serializer: ?SerializeFunction = null, + }; } -pub fn getFieldDeserializer(comptime parent_type: type, comptime struct_field: std.builtin.Type.StructField) ?DeserializeFunction { - if (@hasDecl(parent_type, "!bincode-config:" ++ struct_field.name)) { - const config = @field(parent_type, "!bincode-config:" ++ struct_field.name); - return config.deserializer; +pub fn get_struct_config(comptime struct_type: type) ?StructConfig(struct_type) { + const bincode_field = "!bincode-config"; + if (@hasDecl(struct_type, bincode_field)) { + const config = @field(struct_type, bincode_field); + return config; } return null; } -pub const SerializeFunction = fn (writer: anytype, data: anytype, params: Params) anyerror!void; -pub const DeserializeFunction = fn (alloc: ?std.mem.Allocator, comptime T: type, reader: anytype, params: Params) anyerror!void; - -pub const FieldConfig = struct { - serializer: ?SerializeFunction = null, - deserializer: ?DeserializeFunction = null, - skip: bool = false, -}; - -pub const StructConfig = struct { - serializer: ?SerializeFunction = null, - deserializer: ?DeserializeFunction = null, -}; - -pub fn getStructSerializer(comptime parent_type: type) ?SerializeFunction { - if (@hasDecl(parent_type, "!bincode-config")) { - const config = @field(parent_type, "!bincode-config"); - return config.serializer; - } - return null; +// ** Field Functions ** // +pub fn FieldConfig(comptime T: type) type { + return struct { + deserializer: ?DeserializeFunction(T) = null, + serializer: ?SerializeFunction = null, + skip: bool = false, + }; } -pub fn getFieldSerializer(comptime parent_type: type, comptime struct_field: std.builtin.Type.StructField) ?SerializeFunction { - if (@hasDecl(parent_type, "!bincode-config:" ++ struct_field.name)) { - const config = @field(parent_type, "!bincode-config:" ++ struct_field.name); - return config.serializer; +pub fn get_field_config(comptime struct_type: type, comptime field: std.builtin.Type.StructField) ?FieldConfig(field.type) { + const bincode_field = "!bincode-config:" ++ field.name; + if (@hasDecl(struct_type, bincode_field)) { + const config = @field(struct_type, bincode_field); + return config; } return null; } -pub inline fn shouldSkipSerializingField(comptime parent_type: type, comptime struct_field: std.builtin.Type.StructField) bool { - const parent_type_name = @typeName(parent_type); - - if (@hasDecl(parent_type, "!bincode-config:" ++ struct_field.name)) { - const config = @field(parent_type, "!bincode-config:" ++ struct_field.name); - if (config.skip and struct_field.default_value == null) { - @compileError("┓\n|\n|--> Invalid config: cannot skip field '" ++ parent_type_name ++ "." ++ struct_field.name ++ "' serialization if no default value set\n\n"); +pub inline fn shouldUseDefaultValue(comptime field: std.builtin.Type.StructField, comptime config: FieldConfig(field.type)) ?*const anyopaque { + if (config.skip) { + if (field.default_value == null) { + const field_type_name = @typeName(field.type); + @compileError("┓\n|\n|--> Invalid config: cannot skip field '" ++ field_type_name ++ "." ++ field.name ++ "' deserialization if no default value set\n\n"); } - return config.skip; + return field.default_value; + } else { + return null; } - - return false; } +// ** Writer/Reader functions ** // pub fn writeToSlice(slice: []u8, data: anytype, params: Params) ![]u8 { var stream = std.io.fixedBufferStream(slice); var writer = stream.writer(); @@ -587,62 +585,65 @@ pub fn read(alloc: ?std.mem.Allocator, comptime T: type, reader: anytype, params return v; } -// pub fn writeToSlice(slice: []u8, data: anytype, params: Params) ![]u8 { -// _ = params; -// _ = data; -// _ = slice; -// return error.TooBad; - -// // var stream = std.io.fixedBufferStream(slice); -// // var writer = stream.writer(); -// // var s = serializer(writer, params); -// // var ss = s.serializer(); -// // try getty.serialize(null, data, ss); -// // return stream.getWritten(); -// } - -// pub fn write(alloc: ?std.mem.Allocator, writer: anytype, data: anytype, params: Params) !void { -// _ = params; -// _ = data; -// _ = writer; -// _ = alloc; -// return error.TooBad; - -// // var s = serializer(writer, params); -// // var ss = s.serializer(); -// // try getty.serialize(alloc, data, ss); -// } - -// // can call if dont require an allocator -// pub fn readFromSlice(alloc: ?std.mem.Allocator, comptime T: type, slice: []const u8, params: Params) !T { -// _ = params; -// _ = slice; -// _ = alloc; -// return error.TooBad; - -// // var stream = std.io.fixedBufferStream(slice); -// // var reader = stream.reader(); -// // var d = deserializer(reader, params); -// // var dd = d.deserializer(); -// // var v = try getty.deserialize(alloc, T, dd); -// // errdefer getty.de.free(alloc, @TypeOf(dd), v); // ! -// // return v; -// } - -// pub fn read(alloc: ?std.mem.Allocator, comptime T: type, reader: anytype, params: Params) !T { -// _ = params; -// _ = reader; -// _ = alloc; -// return error.TooBad; - -// // var d = deserializer(reader, params); -// // const dd = d.deserializer(); -// // const v = try getty.deserialize(alloc, T, dd); -// // errdefer getty.de.free(alloc, @TypeOf(dd), v); - -// // return v; - -// } +// ** Tests **// +fn TestSliceConfig(comptime Child: type) FieldConfig([]Child) { + const S = struct { + fn deserialize_test_slice(allocator: ?std.mem.Allocator, reader: anytype, params: Params) ![]Child { + var ally = allocator.?; + var len = try bincode.read(ally, u16, reader, params); + var elems = try ally.alloc(Child, len); + for (0..len) |i| { + elems[i] = try bincode.read(ally, Child, reader, params); + } + return elems; + } + + pub fn serilaize_test_slice(writer: anytype, data: anytype, params: bincode.Params) !void { + var len = std.math.cast(u16, data.len) orelse return error.DataTooLarge; + try bincode.write(null, writer, len, params); + for (data) |item| { + try bincode.write(null, writer, item, params); + } + return; + } + }; + + return FieldConfig([]Child){ + .serializer = S.serilaize_test_slice, + .deserializer = S.deserialize_test_slice, + }; +} + +test "bincode: custom field serialization" { + const Foo = struct { + accounts: []u8, + txs: []u32, + skip_me: u8 = 20, + + pub const @"!bincode-config:accounts" = TestSliceConfig(u8); + pub const @"!bincode-config:txs" = TestSliceConfig(u32); + pub const @"!bincode-config:skip_me" = FieldConfig(u8){ + .skip = true, + }; + }; + + var accounts = [_]u8{ 1, 2, 3 }; + var txs = [_]u32{ 1, 2, 3 }; + var foo = Foo{ .accounts = &accounts, .txs = &txs }; + + var buf: [1000]u8 = undefined; + var out = try writeToSlice(&buf, foo, Params{}); + std.debug.print("{any}", .{out}); + try std.testing.expect(out[out.len - 1] != 20); // skip worked + + var r = try readFromSlice(std.testing.allocator, Foo, out, Params{}); + defer free(std.testing.allocator, r); + std.debug.print("{any}", .{r}); + + try std.testing.expect(r.accounts.len == foo.accounts.len); + try std.testing.expect(r.txs.len == foo.txs.len); + try std.testing.expect(r.skip_me == 20); +} test "bincode: test serialization" { var buf: [1]u8 = undefined; @@ -718,8 +719,6 @@ test "bincode: test serialization" { var out4 = try writeToSlice(&buf6, _s, Params.standard); var result = try readFromSlice(null, s, out4, Params{}); try std.testing.expectEqual(result, _s); - - } test "bincode: (legacy) serialize an array" { From 0e0024c85a1b0d88a035189c6b5dd1183c2ef06f Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 13:57:00 -0400 Subject: [PATCH 28/48] remove struct deser/ser --- src/bincode/bincode.zig | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/src/bincode/bincode.zig b/src/bincode/bincode.zig index ea5f373dc..7a0acbcd6 100644 --- a/src/bincode/bincode.zig +++ b/src/bincode/bincode.zig @@ -209,13 +209,6 @@ pub fn Deserializer(comptime Reader: type) type { const params = dd.context.params; var data: T = undefined; - if (get_struct_config(T)) |config| { - if (config.deserializer) |deser_fcn| { - data = try deser_fcn(alloc, T, reader, params); - return data; - } - } - inline for (info.fields) |field| { if (!field.is_comptime) { if (get_field_config(T, field)) |config| { @@ -433,12 +426,6 @@ pub fn Serializer( var params = ss.context.params; var writer = ss.context.writer; - if (get_struct_config(T)) |config| { - if (config.serializer) |ser_fcn| { - return ser_fcn(writer, value, params); - } - } - inline for (info.fields) |field| { if (!field.is_comptime) { if (get_field_config(T, field)) |config| { @@ -501,23 +488,6 @@ pub fn DeserializeFunction(comptime T: type) type { } pub const SerializeFunction = fn (writer: anytype, data: anytype, params: Params) anyerror!void; -// ** Struct Functions ** // -pub fn StructConfig(comptime T: type) type { - return struct { - deserializer: ?DeserializeFunction(T) = null, - serializer: ?SerializeFunction = null, - }; -} - -pub fn get_struct_config(comptime struct_type: type) ?StructConfig(struct_type) { - const bincode_field = "!bincode-config"; - if (@hasDecl(struct_type, bincode_field)) { - const config = @field(struct_type, bincode_field); - return config; - } - return null; -} - // ** Field Functions ** // pub fn FieldConfig(comptime T: type) type { return struct { From 7c3afa27832b1645fdfecc76d3507a25a5e0afc6 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 14:28:14 -0400 Subject: [PATCH 29/48] more (de)serialization fixes --- src/core/pubkey.zig | 2 +- src/core/transaction.zig | 12 +- src/gossip/crds.zig | 284 +++++++++++++++---------------- src/gossip/crds_table.zig | 52 +++--- src/gossip/node.zig | 53 +++--- src/utils/shortvec.zig | 73 ++++---- src/utils/shortvec_arraylist.zig | 34 ---- src/utils/varint.zig | 116 +++++++------ src/version/version.zig | 10 +- 9 files changed, 300 insertions(+), 336 deletions(-) delete mode 100644 src/utils/shortvec_arraylist.zig diff --git a/src/core/pubkey.zig b/src/core/pubkey.zig index c432ab716..dbe0cec66 100644 --- a/src/core/pubkey.zig +++ b/src/core/pubkey.zig @@ -93,7 +93,7 @@ pub const Pubkey = struct { return Self.fromBytes(public_key.bytes[0..], .{ .skip_encoding = skip_bs58_encoding }) catch unreachable; } - pub const @"!bincode-config:cached_str" = bincode.FieldConfig{ .skip = true }; + pub const @"!bincode-config:cached_str" = bincode.FieldConfig(?[44]u8){ .skip = true }; pub const @"getty.sb" = struct { pub const attributes = .{ diff --git a/src/core/transaction.zig b/src/core/transaction.zig index 75a087b06..d5f5be3e9 100644 --- a/src/core/transaction.zig +++ b/src/core/transaction.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const shortvec_config = @import("../utils/shortvec.zig").shortvec_config; +const ShortVecConfig = @import("../utils/shortvec.zig").ShortVecConfig; const Signature = @import("signature.zig").Signature; const Pubkey = @import("pubkey.zig").Pubkey; const Hash = @import("hash.zig").Hash; @@ -8,7 +8,7 @@ pub const Transaction = struct { signatures: []Signature, message: Message, - pub const @"!bincode-config:signatures" = shortvec_config; + pub const @"!bincode-config:signatures" = ShortVecConfig(Signature); // used in tests pub fn default() Transaction { @@ -25,8 +25,8 @@ pub const Message = struct { recent_blockhash: Hash, instructions: []CompiledInstruction, - // pub const @"!bincode-config:account_keys" = shortvec_config; - // pub const @"!bincode-config:instructions" = shortvec_config; + pub const @"!bincode-config:account_keys" = ShortVecConfig(Pubkey); + pub const @"!bincode-config:instructions" = ShortVecConfig(CompiledInstruction); pub fn default() Message { return Message{ @@ -66,8 +66,8 @@ pub const CompiledInstruction = struct { /// The program input data. data: []u8, - // pub const @"!bincode-config:accounts" = shortvec_config; - // pub const @"!bincode-config:data" = shortvec_config; + pub const @"!bincode-config:accounts" = ShortVecConfig(u8); + pub const @"!bincode-config:data" = ShortVecConfig(u8); }; test "core.transaction: tmp" { diff --git a/src/gossip/crds.zig b/src/gossip/crds.zig index b1faafd0b..e150fdc24 100644 --- a/src/gossip/crds.zig +++ b/src/gossip/crds.zig @@ -45,8 +45,7 @@ pub const CrdsValue = struct { .signature = Signature{}, .data = data, }; - _ = keypair; - // try self.sign(keypair); + try self.sign(keypair); return self; } @@ -72,41 +71,39 @@ pub const CrdsValue = struct { .LegacyContactInfo => |*v| { return v.id; }, - // .Vote => |*v| { - // _ =v; - // unreachable; - // // return v[1].from; - // }, - // .LowestSlot => |*v| { - // return v[1].from; - // }, - // .LegacySnapshotHashes => |*v| { - // return v.from; - // }, - // .AccountsHashes => |*v| { - // return v.from; - // }, - // .EpochSlots => |*v| { - // return v[1].from; - // }, - // .LegacyVersion => |*v| { - // return v.from; - // }, - // .Version => |*v| { - // return v.from; - // }, - // .NodeInstance => |*v| { - // return v.from; - // }, - // .DuplicateShred => |*v| { - // return v[1].from; - // }, - // .SnapshotHashes => |*v| { - // return v.from; - // }, - // .ContactInfo => |*v| { - // return v.pubkey; - // }, + .Vote => |*v| { + return v[1].from; + }, + .LowestSlot => |*v| { + return v[1].from; + }, + .LegacySnapshotHashes => |*v| { + return v.from; + }, + .AccountsHashes => |*v| { + return v.from; + }, + .EpochSlots => |*v| { + return v[1].from; + }, + .LegacyVersion => |*v| { + return v.from; + }, + .Version => |*v| { + return v.from; + }, + .NodeInstance => |*v| { + return v.from; + }, + .DuplicateShred => |*v| { + return v[1].from; + }, + .SnapshotHashes => |*v| { + return v.from; + }, + .ContactInfo => |*v| { + return v.pubkey; + }, }; } @@ -115,41 +112,39 @@ pub const CrdsValue = struct { .LegacyContactInfo => |*v| { return v.wallclock; }, - // .Vote => |*v| { - // _ = v; - // unreachable; - // // return v[1].wallclock; - // }, - // .LowestSlot => |*v| { - // return v[1].wallclock; - // }, - // .LegacySnapshotHashes => |*v| { - // return v.wallclock; - // }, - // .AccountsHashes => |*v| { - // return v.wallclock; - // }, - // .EpochSlots => |*v| { - // return v[1].wallclock; - // }, - // .LegacyVersion => |*v| { - // return v.wallclock; - // }, - // .Version => |*v| { - // return v.wallclock; - // }, - // .NodeInstance => |*v| { - // return v.wallclock; - // }, - // .DuplicateShred => |*v| { - // return v[1].wallclock; - // }, - // .SnapshotHashes => |*v| { - // return v.wallclock; - // }, - // .ContactInfo => |*v| { - // return v.wallclock; - // }, + .Vote => |*v| { + return v[1].wallclock; + }, + .LowestSlot => |*v| { + return v[1].wallclock; + }, + .LegacySnapshotHashes => |*v| { + return v.wallclock; + }, + .AccountsHashes => |*v| { + return v.wallclock; + }, + .EpochSlots => |*v| { + return v[1].wallclock; + }, + .LegacyVersion => |*v| { + return v.wallclock; + }, + .Version => |*v| { + return v.wallclock; + }, + .NodeInstance => |*v| { + return v.wallclock; + }, + .DuplicateShred => |*v| { + return v[1].wallclock; + }, + .SnapshotHashes => |*v| { + return v.wallclock; + }, + .ContactInfo => |*v| { + return v.wallclock; + }, }; } @@ -158,39 +153,39 @@ pub const CrdsValue = struct { .LegacyContactInfo => { return CrdsValueLabel{ .LegacyContactInfo = self.id() }; }, - // .Vote => |*v| { - // return CrdsValueLabel{ .Vote = .{ v[0], self.id() } }; - // }, - // .LowestSlot => { - // return CrdsValueLabel{ .LowestSlot = self.id() }; - // }, - // .LegacySnapshotHashes => { - // return CrdsValueLabel{ .LegacySnapshotHashes = self.id() }; - // }, - // .AccountsHashes => { - // return CrdsValueLabel{ .AccountsHashes = self.id() }; - // }, - // .EpochSlots => |*v| { - // return CrdsValueLabel{ .EpochSlots = .{ v[0], self.id() } }; - // }, - // .LegacyVersion => { - // return CrdsValueLabel{ .LegacyVersion = self.id() }; - // }, - // .Version => { - // return CrdsValueLabel{ .Version = self.id() }; - // }, - // .NodeInstance => { - // return CrdsValueLabel{ .NodeInstance = self.id() }; - // }, - // .DuplicateShred => |*v| { - // return CrdsValueLabel{ .DuplicateShred = .{ v[0], self.id() } }; - // }, - // .SnapshotHashes => { - // return CrdsValueLabel{ .SnapshotHashes = self.id() }; - // }, - // .ContactInfo => { - // return CrdsValueLabel{ .ContactInfo = self.id() }; - // }, + .Vote => |*v| { + return CrdsValueLabel{ .Vote = .{ v[0], self.id() } }; + }, + .LowestSlot => { + return CrdsValueLabel{ .LowestSlot = self.id() }; + }, + .LegacySnapshotHashes => { + return CrdsValueLabel{ .LegacySnapshotHashes = self.id() }; + }, + .AccountsHashes => { + return CrdsValueLabel{ .AccountsHashes = self.id() }; + }, + .EpochSlots => |*v| { + return CrdsValueLabel{ .EpochSlots = .{ v[0], self.id() } }; + }, + .LegacyVersion => { + return CrdsValueLabel{ .LegacyVersion = self.id() }; + }, + .Version => { + return CrdsValueLabel{ .Version = self.id() }; + }, + .NodeInstance => { + return CrdsValueLabel{ .NodeInstance = self.id() }; + }, + .DuplicateShred => |*v| { + return CrdsValueLabel{ .DuplicateShred = .{ v[0], self.id() } }; + }, + .SnapshotHashes => { + return CrdsValueLabel{ .SnapshotHashes = self.id() }; + }, + .ContactInfo => { + return CrdsValueLabel{ .ContactInfo = self.id() }; + }, }; } }; @@ -283,17 +278,17 @@ pub const CrdsValueLabel = union(enum) { pub const CrdsData = union(enum(u32)) { LegacyContactInfo: LegacyContactInfo, - // Vote: struct { u8, Vote }, - // LowestSlot: struct { u8, LowestSlot }, - // LegacySnapshotHashes: LegacySnapshotHashes, - // AccountsHashes: AccountsHashes, - // EpochSlots: struct { u8, EpochSlots }, - // LegacyVersion: LegacyVersion, - // Version: Version, - // NodeInstance: NodeInstance, - // DuplicateShred: struct { u16, DuplicateShred }, - // SnapshotHashes: SnapshotHashes, - // ContactInfo: ContactInfo, + Vote: struct { u8, Vote }, + LowestSlot: struct { u8, LowestSlot }, + LegacySnapshotHashes: LegacySnapshotHashes, + AccountsHashes: AccountsHashes, + EpochSlots: struct { u8, EpochSlots }, + LegacyVersion: LegacyVersion, + Version: Version, + NodeInstance: NodeInstance, + DuplicateShred: struct { u16, DuplicateShred }, + SnapshotHashes: SnapshotHashes, + ContactInfo: ContactInfo, pub fn random(rng: std.rand.Random) CrdsData { const v = rng.intRangeAtMost(u16, 0, 3); @@ -301,18 +296,15 @@ pub const CrdsData = union(enum(u32)) { 0 => { return CrdsData{ .LegacyContactInfo = LegacyContactInfo.random(rng) }; }, + 1 => { + return CrdsData{ .EpochSlots = .{ rng.int(u8), EpochSlots.random(rng) } }; + }, + 2 => { + return CrdsData{ .Vote = .{ rng.int(u8), Vote.random(rng) } }; + }, else => { - return CrdsData{ .LegacyContactInfo = LegacyContactInfo.random(rng) }; - } - // 1 => { - // return CrdsData{ .EpochSlots = .{ rng.int(u8), EpochSlots.random(rng) } }; - // }, - // 2 => { - // return CrdsData{ .Vote = .{ rng.int(u8), Vote.random(rng) } }; - // }, - // else => { - // return CrdsData{ .DuplicateShred = .{ rng.int(u16), DuplicateShred.random(rng) } }; - // }, + return CrdsData{ .DuplicateShred = .{ rng.int(u16), DuplicateShred.random(rng) } }; + }, } } }; @@ -323,7 +315,7 @@ pub const Vote = struct { wallclock: u64, slot: Slot = Slot.default(), - pub const @"!bincode-config:slot" = bincode.FieldConfig{ .skip = true }; + pub const @"!bincode-config:slot" = bincode.FieldConfig(Slot){ .skip = true }; pub fn random(rng: std.rand.Random) Vote { return Vote{ @@ -581,28 +573,28 @@ test "gossip.crds: contact info serialization matches rust" { try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], &contact_info_rust); } -// test "gossip.crds: crds data serialization matches rust" { -// var kp_bytes = [_]u8{1} ** 32; -// const kp = try KeyPair.create(kp_bytes); -// const pk = kp.public_key; -// const id = Pubkey.fromPublicKey(&pk, true); +test "gossip.crds: crds data serialization matches rust" { + var kp_bytes = [_]u8{1} ** 32; + const kp = try KeyPair.create(kp_bytes); + const pk = kp.public_key; + const id = Pubkey.fromPublicKey(&pk, true); -// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); + const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); -// var legacy_contact_info = LegacyContactInfo.default(); -// legacy_contact_info.gossip = gossip_addr; -// legacy_contact_info.id = id; -// legacy_contact_info.wallclock = 0; + var legacy_contact_info = LegacyContactInfo.default(); + legacy_contact_info.gossip = gossip_addr; + legacy_contact_info.id = id; + legacy_contact_info.wallclock = 0; -// var crds_data = CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }; + var crds_data = CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }; -// var buf = [_]u8{0} ** 1024; -// var rust_crds_data = [_]u8{ 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -// var bytes = try bincode.writeToSlice(buf[0..], crds_data, bincode.Params.standard); -// try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); -// } + var buf = [_]u8{0} ** 1024; + var rust_crds_data = [_]u8{ 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + var bytes = try bincode.writeToSlice(buf[0..], crds_data, bincode.Params.standard); + try std.testing.expectEqualSlices(u8, bytes[0..bytes.len], rust_crds_data[0..bytes.len]); +} test "gossip.crds: random crds data" { var seed: u64 = @intCast(std.time.milliTimestamp()); diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 0e23640f2..e78a6eb82 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -151,16 +151,16 @@ pub const CrdsTable = struct { try self.contact_infos.put(entry_index, {}); try self.shred_versions.put(info.id, info.shred_version); }, - // .Vote => { - // try self.votes.put(self.cursor, entry_index); - // }, - // .EpochSlots => { - // try self.epoch_slots.put(self.cursor, entry_index); - // }, - // .DuplicateShred => { - // try self.duplicate_shreds.put(self.cursor, entry_index); - // }, - // else => {}, + .Vote => { + try self.votes.put(self.cursor, entry_index); + }, + .EpochSlots => { + try self.epoch_slots.put(self.cursor, entry_index); + }, + .DuplicateShred => { + try self.duplicate_shreds.put(self.cursor, entry_index); + }, + else => {}, } try self.shards.insert(entry_index, &versioned_value.value_hash); @@ -177,22 +177,22 @@ pub const CrdsTable = struct { .LegacyContactInfo => |*info| { try self.shred_versions.put(info.id, info.shred_version); }, - // .Vote => { - // var did_remove = self.votes.swapRemove(old_entry.ordinal); - // std.debug.assert(did_remove); - // try self.votes.put(self.cursor, entry_index); - // }, - // .EpochSlots => { - // var did_remove = self.epoch_slots.swapRemove(old_entry.ordinal); - // std.debug.assert(did_remove); - // try self.epoch_slots.put(self.cursor, entry_index); - // }, - // .DuplicateShred => { - // var did_remove = self.duplicate_shreds.swapRemove(old_entry.ordinal); - // std.debug.assert(did_remove); - // try self.duplicate_shreds.put(self.cursor, entry_index); - // }, - // else => {}, + .Vote => { + var did_remove = self.votes.swapRemove(old_entry.ordinal); + std.debug.assert(did_remove); + try self.votes.put(self.cursor, entry_index); + }, + .EpochSlots => { + var did_remove = self.epoch_slots.swapRemove(old_entry.ordinal); + std.debug.assert(did_remove); + try self.epoch_slots.put(self.cursor, entry_index); + }, + .DuplicateShred => { + var did_remove = self.duplicate_shreds.swapRemove(old_entry.ordinal); + std.debug.assert(did_remove); + try self.duplicate_shreds.put(self.cursor, entry_index); + }, + else => {}, } // remove and insert to make sure the shard ordering is oldest-to-newest diff --git a/src/gossip/node.zig b/src/gossip/node.zig index 36950fb41..49ce75b37 100644 --- a/src/gossip/node.zig +++ b/src/gossip/node.zig @@ -3,11 +3,14 @@ const Pubkey = @import("../core/pubkey.zig").Pubkey; const network = @import("zig-network"); const Version = @import("../version/version.zig").Version; const bincode = @import("../bincode/bincode.zig"); -const varint_config = @import("../utils/varint.zig").varint_config; + +const var_int = @import("../utils/varint.zig"); +const var_int_config_u16 = var_int.var_int_config_u16; +const var_int_config_u64 = var_int.var_int_config_u64; + const serialize_varint = @import("../utils/varint.zig").serilaize_varint; const deserialize_varint = @import("../utils/varint.zig").deserialize_varint; -const shortvec_config = @import("../utils/shortvec.zig").shortvec_config; -const ShortVecArrayListConfig = @import("../utils/shortvec_arraylist.zig").ShortVecArrayListConfig; +const ShortVecArrayListConfig = @import("../utils/shortvec.zig").ShortVecArrayListConfig; const SocketAddr = @import("net.zig").SocketAddr; const IpAddr = @import("net.zig").IpAddr; const gossip = @import("sig").gossip; @@ -52,10 +55,10 @@ pub const ContactInfo = struct { sockets: ArrayList(SocketEntry), cache: [SOCKET_CACHE_SIZE]SocketAddr = socket_addrs_unspecified(), - pub const @"!bincode-config:cache" = bincode.FieldConfig{ .skip = true }; + pub const @"!bincode-config:cache" = bincode.FieldConfig([SOCKET_CACHE_SIZE]SocketAddr){ .skip = true }; pub const @"!bincode-config:addrs" = ShortVecArrayListConfig(IpAddr); pub const @"!bincode-config:sockets" = ShortVecArrayListConfig(SocketEntry); - pub const @"!bincode-config:wallclock" = varint_config; + pub const @"!bincode-config:wallclock" = var_int_config_u64; const Self = @This(); @@ -242,7 +245,7 @@ pub const SocketEntry = struct { index: u8, // IpAddr index in the accompanying addrs vector. offset: u16, // Port offset with respect to the previous entry. - pub const @"!bincode-config:offset" = varint_config; + pub const @"!bincode-config:offset" = var_int_config_u16; const Self = @This(); @@ -290,25 +293,25 @@ test "new contact info" { defer ci.deinit(); } -// test "socketaddr bincode serialize matches rust" { -// const Tmp = struct { -// addr: SocketAddr, -// }; -// const tmp = Tmp{ .addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234) }; -// var buf = [_]u8{0} ** 1024; -// var bytes = try bincode.writeToSlice(buf[0..], tmp, bincode.Params.standard); - -// // #[derive(Serialize, Debug, Clone, Copy)] -// // pub struct Tmp { -// // addr: SocketAddr -// // } -// // let tmp = Tmp { addr: socketaddr!(Ipv4Addr::LOCALHOST, 1234) }; -// // println!("{:?}", bincode::serialize(&tmp).unwrap()); - -// // Enum discriminants are encoded as u32 (4 leading zeros) -// const rust_bytes = [_]u8{ 0, 0, 0, 0, 127, 0, 0, 1, 210, 4 }; -// try testing.expectEqualSlices(u8, rust_bytes[0..rust_bytes.len], bytes); -// } +test "socketaddr bincode serialize matches rust" { + const Tmp = struct { + addr: SocketAddr, + }; + const tmp = Tmp{ .addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234) }; + var buf = [_]u8{0} ** 1024; + var bytes = try bincode.writeToSlice(buf[0..], tmp, bincode.Params.standard); + + // #[derive(Serialize, Debug, Clone, Copy)] + // pub struct Tmp { + // addr: SocketAddr + // } + // let tmp = Tmp { addr: socketaddr!(Ipv4Addr::LOCALHOST, 1234) }; + // println!("{:?}", bincode::serialize(&tmp).unwrap()); + + // Enum discriminants are encoded as u32 (4 leading zeros) + const rust_bytes = [_]u8{ 0, 0, 0, 0, 127, 0, 0, 1, 210, 4 }; + try testing.expectEqualSlices(u8, rust_bytes[0..rust_bytes.len], bytes); +} test "set & get socket on contact info" { var seed: u64 = @intCast(std.time.milliTimestamp()); diff --git a/src/utils/shortvec.zig b/src/utils/shortvec.zig index 602cbf9c0..040d3985c 100644 --- a/src/utils/shortvec.zig +++ b/src/utils/shortvec.zig @@ -4,67 +4,60 @@ const network = @import("zig-network"); const serialize_short_u16 = @import("varint.zig").serialize_short_u16; const deserialize_short_u16 = @import("varint.zig").deserialize_short_u16; -pub fn ShortVecConfig(comptime childSerialize: bincode.SerializeFunction, comptime childDeserialize: bincode.DeserializeFunction) bincode.FieldConfig { +pub fn ShortVecConfig(comptime Child: type) bincode.FieldConfig([]Child) { const S = struct { pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { var len: u16 = std.math.cast(u16, data.len) orelse return error.DataTooLarge; try serialize_short_u16(writer, len, params); for (data) |item| { - try childSerialize(writer, item, params); + try bincode.write(null, writer, item, params); } - return; } - pub fn deserialize(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !void { + pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) ![]Child { var ally = allocator.?; - var len = try deserialize_short_u16(ally, u16, reader, params); - var elems = try ally.alloc(T.child, len); + var len = try deserialize_short_u16(reader, params); + var elems = try ally.alloc(Child, len); for (0..len) |i| { - elems[i] = childDeserialize(ally, T.child, reader, params); + elems[i] = try bincode.read(ally, Child, reader, params); } return elems; } }; - return bincode.FieldConfig{ + return bincode.FieldConfig([]Child){ .serializer = S.serialize, .deserializer = S.deserialize, }; } -pub const shortvec_config = bincode.FieldConfig{ - .serializer = serilaize_shortvec, - .deserializer = null, // deserialize_shortvec, -}; - -pub fn serilaize_shortvec(writer: anytype, data: anytype, params: bincode.Params) !void { - var len = std.math.cast(u16, data.len) orelse return error.DataTooLarge; - try serialize_short_u16(writer, len, params); - for (data) |item| { - try bincode.write(null, writer, item, params); - } -} - -pub fn deserialize_shortvec(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !T { - _ = allocator; - _ = reader; - _ = params; - return error.TooBad; - - // var ally = allocator.?; - // _ = ally; +pub fn ShortVecArrayListConfig(comptime Child: type) bincode.FieldConfig(std.ArrayList(Child)) { + const S = struct { + pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { + var list: std.ArrayList(Child) = data; + var len = std.math.cast(u16, list.items.len) orelse return error.DataTooLarge; + try serialize_short_u16(writer, len, params); + for (list.items) |item| { + try bincode.write(null, writer, item, params); + } + } - // const Child = @typeInfo(T).Pointer.child; - // _ = Child; + pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) !std.ArrayList(Child) { + var ally = allocator.?; - // return error.TooBad; + var len = try deserialize_short_u16(reader, params); + var list = try std.ArrayList(Child).initCapacity(ally, @as(usize, len)); + for (0..len) |_| { + var item = try bincode.read(ally, Child, reader, params); + try list.append(item); + } + return list; + } + }; - // var len = try deserialize_short_u16(ally, u16, reader, params); - // var len = bincode.read(ally, u16, reader, params); - // var elems = try ally.alloc(Child, len); - // for (0..len) |i| { - // elems[i] = try bincode.read(ally, Child, reader, params); - // } - // return elems; -} + return bincode.FieldConfig(std.ArrayList(Child)){ + .serializer = S.serialize, + .deserializer = S.deserialize, + }; +} \ No newline at end of file diff --git a/src/utils/shortvec_arraylist.zig b/src/utils/shortvec_arraylist.zig deleted file mode 100644 index 01fcc3d31..000000000 --- a/src/utils/shortvec_arraylist.zig +++ /dev/null @@ -1,34 +0,0 @@ -const std = @import("std"); -const bincode = @import("../bincode/bincode.zig"); -const serialize_short_u16 = @import("varint.zig").serialize_short_u16; -const deserialize_short_u16 = @import("varint.zig").deserialize_short_u16; - -pub fn ShortVecArrayListConfig(comptime Child: type) bincode.FieldConfig { - const S = struct { - pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { - var list: std.ArrayList(Child) = data; - var len = std.math.cast(u16, list.items.len) orelse return error.DataTooLarge; - try serialize_short_u16(writer, len, params); - for (list.items) |item| { - try bincode.write(null, writer, item, params); - } - return; - } - - pub fn deserialize(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !T { - var ally = allocator.?; - var len = try deserialize_short_u16(ally, u16, reader, params); - var list = try std.ArrayList(Child).initCapacity(ally, @as(usize, len)); - for (0..len) |_| { - var item = try bincode.read(ally, Child, reader, params); - try list.append(item); - } - return list; - } - }; - - return bincode.FieldConfig{ - .serializer = S.serialize, - .deserializer = S.deserialize, - }; -} diff --git a/src/utils/varint.zig b/src/utils/varint.zig index 839d7c30e..dad842039 100644 --- a/src/utils/varint.zig +++ b/src/utils/varint.zig @@ -1,65 +1,75 @@ const std = @import("std"); const bincode = @import("../bincode/bincode.zig"); -pub const varint_config = bincode.FieldConfig{ - .serializer = serilaize_varint, - .deserializer = deserialize_varint, -}; - -pub fn serilaize_varint(writer: anytype, data: anytype, _: bincode.Params) !void { - var v = data; - while (v >= 0x80) { - var byte = @as(u8, @intCast(((v & 0x7F) | 0x80))); - v >>= 7; - try writer.writeByte(byte); - } - try writer.writeByte(@as(u8, @intCast(v))); - return; -} - -pub fn deserialize_varint(_: ?std.mem.Allocator, comptime T: type, reader: anytype, _: bincode.Params) !T { - var out: T = 0; +pub fn VarIntConfig(comptime VarInt: type) bincode.FieldConfig(VarInt) { + const S = struct { + pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { + _ = params; + var v = data; + while (v >= 0x80) { + var byte = @as(u8, @intCast(((v & 0x7F) | 0x80))); + v >>= 7; + try writer.writeByte(byte); + } + try writer.writeByte(@as(u8, @intCast(v))); + } - var t_bits: u8 = switch (T) { - u16 => 16, - u32 => 32, - u64 => 64, - else => { - return error.InvalidType; - }, + pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) !VarInt { + _ = params; + _ = allocator; + + var out: VarInt = 0; + + var t_bits: u8 = switch (VarInt) { + u16 => 16, + u32 => 32, + u64 => 64, + else => { + return error.InvalidType; + }, + }; + + const ShiftT: type = switch (VarInt) { + u16 => u4, + u32 => u5, + u64 => u6, + else => unreachable, + }; + + var shift: u32 = 0; + while (shift < t_bits) { + const byte: u8 = try reader.readByte(); + out |= @as(VarInt, @intCast((byte & 0x7F))) << @as(ShiftT, @intCast(shift)); + if (byte & 0x80 == 0) { + if (@as(u8, @intCast(out >> @as(ShiftT, @intCast(shift)))) != byte) { + return error.TruncatedLastByte; + } + if (byte == 0 and (shift != 0 or out != 0)) { + return error.NotValidTrailingZeros; + } + return out; + } + shift += 7; + } + return error.ShiftOverflows; + } }; - const ShiftT: type = switch (T) { - u16 => u4, - u32 => u5, - u64 => u6, - else => unreachable, + return bincode.FieldConfig(VarInt){ + .serializer = S.serialize, + .deserializer = S.deserialize, }; - - var shift: u32 = 0; - while (shift < t_bits) { - const byte: u8 = try reader.readByte(); - out |= @as(T, @intCast((byte & 0x7F))) << @as(ShiftT, @intCast(shift)); - if (byte & 0x80 == 0) { - if (@as(u8, @intCast(out >> @as(ShiftT, @intCast(shift)))) != byte) { - return error.TruncatedLastByte; - } - if (byte == 0 and (shift != 0 or out != 0)) { - return error.NotValidTrailingZeros; - } - return out; - } - shift += 7; - } - return error.ShiftOverflows; } -pub fn serialize_short_u16(writer: anytype, data: anytype, _: bincode.Params) !void { - var val: u16 = data; +pub const var_int_config_u16 = VarIntConfig(u16); +pub const var_int_config_u64 = VarIntConfig(u64); + +pub fn serialize_short_u16(writer: anytype, data: u16, _: bincode.Params) !void { + var value = data; while (true) { - var elem = @as(u8, @intCast((val & 0x7f))); - val >>= 7; - if (val == 0) { + var elem = @as(u8, @intCast((value & 0x7f))); + value >>= 7; + if (value == 0) { try writer.writeByte(elem); break; } else { @@ -69,7 +79,7 @@ pub fn serialize_short_u16(writer: anytype, data: anytype, _: bincode.Params) !v } } -pub fn deserialize_short_u16(_: ?std.mem.Allocator, comptime T: type, reader: anytype, _: bincode.Params) !T { +pub fn deserialize_short_u16(reader: anytype, _: bincode.Params) !u16 { var val: u16 = 0; for (0..MAX_ENCODING_LENGTH) |n| { var elem: u8 = try reader.readByte(); diff --git a/src/version/version.zig b/src/version/version.zig index ccd08b2e9..aa4acd1c4 100644 --- a/src/version/version.zig +++ b/src/version/version.zig @@ -1,4 +1,4 @@ -const varint_config = @import("../utils/varint.zig").varint_config; +const var_int_config_u16 = @import("../utils/varint.zig").var_int_config_u16; pub const CURRENT_VERSION: Version = Version.new(0, 1, 0, 0, 0, 4); @@ -34,8 +34,8 @@ pub const Version = struct { }; } - pub const @"!bincode-config:major" = varint_config; - pub const @"!bincode-config:minor" = varint_config; - pub const @"!bincode-config:patch" = varint_config; - pub const @"!bincode-config:client" = varint_config; + pub const @"!bincode-config:major" = var_int_config_u16; + pub const @"!bincode-config:minor" = var_int_config_u16; + pub const @"!bincode-config:patch" = var_int_config_u16; + pub const @"!bincode-config:client" = var_int_config_u16; }; From be3567551080023998360c55e9959a1e29999e98 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 14:41:54 -0400 Subject: [PATCH 30/48] fix bloom deser --- src/bloom/bloom.zig | 135 +++++++++++++++++++++------------------- src/utils/arraylist.zig | 6 +- src/utils/shortvec.zig | 2 +- src/utils/varint.zig | 2 +- 4 files changed, 75 insertions(+), 70 deletions(-) diff --git a/src/bloom/bloom.zig b/src/bloom/bloom.zig index b66c8870f..fc71a1ba7 100644 --- a/src/bloom/bloom.zig +++ b/src/bloom/bloom.zig @@ -18,10 +18,7 @@ pub const Bloom = struct { num_bits_set: u64, pub const @"!bincode-config:keys" = ArrayListConfig(u64); - pub const @"!bincode-config:bits" = bincode.FieldConfig{ - .serializer = bincode_serialize_bit_vec, - .deserializer = bincode_deserialize_bit_vec, - }; + pub const @"!bincode-config:bits" = BitVecConfig(); const Self = @This(); @@ -125,20 +122,28 @@ pub const Bloom = struct { } }; -fn bincode_serialize_bit_vec(writer: anytype, data: anytype, params: bincode.Params) !void { - var bitset: DynamicBitSet = data; - var bitvec = BitVec.initFromBitSet(bitset); - try bincode.write(null, writer, bitvec, params); - return; -} +pub fn BitVecConfig() bincode.FieldConfig(DynamicBitSet) { + const S = struct { + pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { + var bitset: DynamicBitSet = data; + var bitvec = BitVec.initFromBitSet(bitset); + try bincode.write(null, writer, bitvec, params); + } -fn bincode_deserialize_bit_vec(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !T { - var ally = allocator.?; - var bitvec = try bincode.read(ally, BitVec, reader, params); - defer bincode.free(ally, bitvec); + pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) !DynamicBitSet { + var ally = allocator.?; + var bitvec = try bincode.read(ally, BitVec, reader, params); + defer bincode.free(ally, bitvec); - var dynamic_bitset = try bitvec.toBitSet(ally); - return dynamic_bitset; + var dynamic_bitset = try bitvec.toBitSet(ally); + return dynamic_bitset; + } + }; + + return bincode.FieldConfig(DynamicBitSet){ + .serializer = S.serialize, + .deserializer = S.deserialize, + }; } test "bloom: helper fcns match rust" { @@ -152,72 +157,72 @@ test "bloom: helper fcns match rust" { defer bloom.deinit(); } -// test "bloom: serializes/deserializes correctly" { -// var bloom = Bloom.init(testing.allocator, 0, null); +test "bloom: serializes/deserializes correctly" { + var bloom = Bloom.init(testing.allocator, 0, null); -// var buf: [10000]u8 = undefined; -// var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); + var buf: [10000]u8 = undefined; + var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); -// var deserialized = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); -// try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); -// } + var deserialized = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); + try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); +} -// test "bloom: serializes/deserializes correctly with set bits" { -// var bloom = Bloom.init(testing.allocator, 128, null); -// try bloom.add_key(10); -// // required for memory leaks -// defer bloom.deinit(); +test "bloom: serializes/deserializes correctly with set bits" { + var bloom = Bloom.init(testing.allocator, 128, null); + try bloom.add_key(10); + // required for memory leaks + defer bloom.deinit(); -// var buf: [10000]u8 = undefined; -// var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); + var buf: [10000]u8 = undefined; + var out = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); -// var deserialized: Bloom = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); -// defer deserialized.deinit(); + var deserialized: Bloom = try bincode.readFromSlice(testing.allocator, Bloom, out, bincode.Params.standard); + defer deserialized.deinit(); -// try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); -// } + try testing.expect(bloom.num_bits_set == deserialized.num_bits_set); +} -// test "bloom: rust: serialized bytes equal rust (no keys)" { -// // note: need to init with len 2^i -// var bloom = Bloom.init(testing.allocator, 128, null); -// defer bloom.deinit(); -// try bloom.add_key(1); +test "bloom: rust: serialized bytes equal rust (no keys)" { + // note: need to init with len 2^i + var bloom = Bloom.init(testing.allocator, 128, null); + defer bloom.deinit(); + try bloom.add_key(1); -// const v: [1]u8 = .{1}; -// bloom.add(&v); + const v: [1]u8 = .{1}; + bloom.add(&v); -// var buf: [10000]u8 = undefined; -// var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); + var buf: [10000]u8 = undefined; + var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); -// const rust_bytes = .{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; + const rust_bytes = .{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; -// try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); -// } + try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); +} -// test "bloom: rust: serialized bytes equal rust (multiple keys)" { -// var bloom = Bloom.init(testing.allocator, 128, null); -// defer bloom.deinit(); +test "bloom: rust: serialized bytes equal rust (multiple keys)" { + var bloom = Bloom.init(testing.allocator, 128, null); + defer bloom.deinit(); -// try bloom.add_key(1); -// try bloom.add_key(2); -// try bloom.add_key(3); + try bloom.add_key(1); + try bloom.add_key(2); + try bloom.add_key(3); -// var buf: [10000]u8 = undefined; + var buf: [10000]u8 = undefined; -// const v: [2]u8 = .{ 1, 2 }; -// bloom.add(&v); + const v: [2]u8 = .{ 1, 2 }; + bloom.add(&v); -// const x: [2]u8 = .{ 3, 4 }; -// bloom.add(&x); + const x: [2]u8 = .{ 3, 4 }; + bloom.add(&x); -// var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); + var bytes = try bincode.writeToSlice(buf[0..], bloom, bincode.Params.standard); -// // let mut bloom = Bloom::new(128, vec![1, 2, 3]); -// // bloom.add(&[1, 2]); -// // bloom.add(&[3, 4]); -// // println!("{:?}", bincode::serialize(&bloom).unwrap()); + // let mut bloom = Bloom::new(128, vec![1, 2, 3]); + // bloom.add(&[1, 2]); + // bloom.add(&[3, 4]); + // println!("{:?}", bincode::serialize(&bloom).unwrap()); -// const rust_bytes = .{ 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 66, 16, 32, 0, 128, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0 }; + const rust_bytes = .{ 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 66, 16, 32, 0, 128, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0 }; -// try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); -// } + try testing.expectEqualSlices(u8, &rust_bytes, bytes[0..bytes.len]); +} diff --git a/src/utils/arraylist.zig b/src/utils/arraylist.zig index 455f38787..04658e5c0 100644 --- a/src/utils/arraylist.zig +++ b/src/utils/arraylist.zig @@ -1,7 +1,7 @@ const std = @import("std"); const bincode = @import("../bincode/bincode.zig"); -pub fn ArrayListConfig(comptime Child: type) bincode.FieldConfig { +pub fn ArrayListConfig(comptime Child: type) bincode.FieldConfig(std.ArrayList(Child)) { const S = struct { pub fn serialize(writer: anytype, data: anytype, params: bincode.Params) !void { var list: std.ArrayList(Child) = data; @@ -12,7 +12,7 @@ pub fn ArrayListConfig(comptime Child: type) bincode.FieldConfig { return; } - pub fn deserialize(allocator: ?std.mem.Allocator, comptime T: type, reader: anytype, params: bincode.Params) !T { + pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) !std.ArrayList(Child) { var ally = allocator.?; var len = try bincode.read(ally, u64, reader, params); var list = try std.ArrayList(Child).initCapacity(ally, @as(usize, len)); @@ -24,7 +24,7 @@ pub fn ArrayListConfig(comptime Child: type) bincode.FieldConfig { } }; - return bincode.FieldConfig{ + return bincode.FieldConfig(std.ArrayList(Child)){ .serializer = S.serialize, .deserializer = S.deserialize, }; diff --git a/src/utils/shortvec.zig b/src/utils/shortvec.zig index 040d3985c..619ab0da9 100644 --- a/src/utils/shortvec.zig +++ b/src/utils/shortvec.zig @@ -60,4 +60,4 @@ pub fn ShortVecArrayListConfig(comptime Child: type) bincode.FieldConfig(std.Arr .serializer = S.serialize, .deserializer = S.deserialize, }; -} \ No newline at end of file +} diff --git a/src/utils/varint.zig b/src/utils/varint.zig index dad842039..51a2ba28b 100644 --- a/src/utils/varint.zig +++ b/src/utils/varint.zig @@ -15,7 +15,7 @@ pub fn VarIntConfig(comptime VarInt: type) bincode.FieldConfig(VarInt) { } pub fn deserialize(allocator: ?std.mem.Allocator, reader: anytype, params: bincode.Params) !VarInt { - _ = params; + _ = params; _ = allocator; var out: VarInt = 0; From 654ca27664a5f36622f83e4d58cb2cef586764c8 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 14:45:18 -0400 Subject: [PATCH 31/48] all tests passing --- src/gossip/crds_table.zig | 162 ++++++++++++----------- src/gossip/gossip_service.zig | 94 +++++++------- src/gossip/node.zig | 92 ++++++------- src/gossip/protocol.zig | 236 +++++++++++++++++----------------- src/gossip/pull_request.zig | 18 +-- src/gossip/pull_response.zig | 118 ++++++++--------- 6 files changed, 359 insertions(+), 361 deletions(-) diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index e78a6eb82..785cc6756 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -127,11 +127,9 @@ pub const CrdsTable = struct { pub fn insert(self: *Self, value: CrdsValue, now: u64, maybe_route: ?GossipRoute) !void { // TODO: check to make sure this sizing is correct or use heap - // var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? - // var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); - // const value_hash = Hash.generateSha256Hash(bytes); - - const value_hash = Hash.random(); + var buf = [_]u8{0} ** 2048; // does this break if its called in parallel? / dangle? + var bytes = try bincode.writeToSlice(&buf, value, bincode.Params.standard); + const value_hash = Hash.generateSha256Hash(bytes); const versioned_value = CrdsVersionedValue{ .value = value, .value_hash = value_hash, @@ -425,80 +423,80 @@ test "gossip.crds_table: insert and get" { _ = x; } -// test "gossip.crds_table: insert and get votes" { -// var kp_bytes = [_]u8{1} ** 32; -// const kp = try KeyPair.create(kp_bytes); -// const pk = kp.public_key; -// var id = Pubkey.fromPublicKey(&pk, true); - -// var vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; -// var crds_value = try CrdsValue.initSigned(CrdsData{ -// .Vote = .{ 0, vote }, -// }, kp); - -// var crds_table = try CrdsTable.init(std.testing.allocator); -// defer crds_table.deinit(); -// try crds_table.insert(crds_value, 0, null); - -// var cursor: usize = 0; -// var buf: [100]*CrdsVersionedValue = undefined; -// var votes = try crds_table.get_votes_with_cursor(&buf, &cursor); - -// try std.testing.expect(votes.len == 1); -// try std.testing.expect(cursor == 1); - -// // try inserting another vote -// var seed: u64 = @intCast(std.time.milliTimestamp()); -// var rand = std.rand.DefaultPrng.init(seed); -// const rng = rand.random(); -// id = Pubkey.random(rng, .{}); -// vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; -// crds_value = try CrdsValue.initSigned(CrdsData{ -// .Vote = .{ 0, vote }, -// }, kp); -// try crds_table.insert(crds_value, 1, null); - -// votes = try crds_table.get_votes_with_cursor(&buf, &cursor); -// try std.testing.expect(votes.len == 1); -// try std.testing.expect(cursor == 2); - -// const v = try crds_table.get_bitmask_matches(std.testing.allocator, 10, 1); -// defer v.deinit(); -// } - -// test "gossip.crds_table: insert and get contact_info" { -// const kp = try KeyPair.create([_]u8{1} ** 32); -// var id = Pubkey.fromPublicKey(&kp.public_key, true); - -// var legacy_contact_info = crds.LegacyContactInfo.default(); -// legacy_contact_info.id = id; -// var crds_value = try CrdsValue.initSigned(CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }, kp); - -// var crds_table = try CrdsTable.init(std.testing.allocator); -// defer crds_table.deinit(); - -// // test insertion -// try crds_table.insert(crds_value, 0, null); - -// // test retrieval -// var buf: [100]*CrdsVersionedValue = undefined; -// var nodes = try crds_table.get_contact_infos(&buf); -// try std.testing.expect(nodes.len == 1); -// try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); - -// // test re-insertion -// const result = crds_table.insert(crds_value, 0, null); -// try std.testing.expectError(CrdsError.DuplicateValue, result); - -// // test re-insertion with greater wallclock -// crds_value.data.LegacyContactInfo.wallclock += 2; -// const v = crds_value.data.LegacyContactInfo.wallclock; -// try crds_table.insert(crds_value, 0, null); - -// // check retrieval -// nodes = try crds_table.get_contact_infos(&buf); -// try std.testing.expect(nodes.len == 1); -// try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == v); -// } +test "gossip.crds_table: insert and get votes" { + var kp_bytes = [_]u8{1} ** 32; + const kp = try KeyPair.create(kp_bytes); + const pk = kp.public_key; + var id = Pubkey.fromPublicKey(&pk, true); + + var vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; + var crds_value = try CrdsValue.initSigned(CrdsData{ + .Vote = .{ 0, vote }, + }, kp); + + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + try crds_table.insert(crds_value, 0, null); + + var cursor: usize = 0; + var buf: [100]*CrdsVersionedValue = undefined; + var votes = try crds_table.get_votes_with_cursor(&buf, &cursor); + + try std.testing.expect(votes.len == 1); + try std.testing.expect(cursor == 1); + + // try inserting another vote + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + id = Pubkey.random(rng, .{}); + vote = crds.Vote{ .from = id, .transaction = Transaction.default(), .wallclock = 10 }; + crds_value = try CrdsValue.initSigned(CrdsData{ + .Vote = .{ 0, vote }, + }, kp); + try crds_table.insert(crds_value, 1, null); + + votes = try crds_table.get_votes_with_cursor(&buf, &cursor); + try std.testing.expect(votes.len == 1); + try std.testing.expect(cursor == 2); + + const v = try crds_table.get_bitmask_matches(std.testing.allocator, 10, 1); + defer v.deinit(); +} + +test "gossip.crds_table: insert and get contact_info" { + const kp = try KeyPair.create([_]u8{1} ** 32); + var id = Pubkey.fromPublicKey(&kp.public_key, true); + + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; + var crds_value = try CrdsValue.initSigned(CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }, kp); + + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + // test insertion + try crds_table.insert(crds_value, 0, null); + + // test retrieval + var buf: [100]*CrdsVersionedValue = undefined; + var nodes = try crds_table.get_contact_infos(&buf); + try std.testing.expect(nodes.len == 1); + try std.testing.expect(nodes[0].value.data.LegacyContactInfo.id.equals(&id)); + + // test re-insertion + const result = crds_table.insert(crds_value, 0, null); + try std.testing.expectError(CrdsError.DuplicateValue, result); + + // test re-insertion with greater wallclock + crds_value.data.LegacyContactInfo.wallclock += 2; + const v = crds_value.data.LegacyContactInfo.wallclock; + try crds_table.insert(crds_value, 0, null); + + // check retrieval + nodes = try crds_table.get_contact_infos(&buf); + try std.testing.expect(nodes.len == 1); + try std.testing.expect(nodes[0].value.data.LegacyContactInfo.wallclock == v); +} diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index 68497ffe1..c37373d9a 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -291,50 +291,50 @@ pub const GossipService = struct { } }; -// test "gossip.gossip_service: process contact_info push packet" { -// const allocator = std.testing.allocator; -// var crds_table = try CrdsTable.init(allocator); -// defer crds_table.deinit(); - -// var packet_channel = PacketChannel.init(allocator, 100); -// defer packet_channel.deinit(); - -// var logger = Logger.init(allocator, .debug); -// defer logger.deinit(); -// logger.spawn(); - -// var packet_handle = try Thread.spawn(.{}, GossipService.process_packets, .{ &packet_channel, &crds_table, allocator, logger }); - -// // send a push message -// var kp_bytes = [_]u8{1} ** 32; -// const kp = try KeyPair.create(kp_bytes); -// const pk = kp.public_key; -// var id = Pubkey.fromPublicKey(&pk, true); - -// // new contact info -// var legacy_contact_info = crds.LegacyContactInfo.default(); -// var crds_data = crds.CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }; -// var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); -// var values = [_]crds.CrdsValue{crds_value}; -// const msg = Protocol{ -// .PushMessage = .{ id, &values }, -// }; - -// // packet -// const peer = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 8000).toEndpoint(); -// var buf = [_]u8{0} ** PACKET_DATA_SIZE; -// var bytes = try bincode.writeToSlice(buf[0..], msg, bincode.Params.standard); -// const packet = Packet.init(peer, buf, bytes.len); -// packet_channel.send(packet); - -// // correct insertion into table -// var buf2: [100]*crds.CrdsVersionedValue = undefined; -// std.time.sleep(std.time.ns_per_s); -// var res = try crds_table.get_contact_infos(&buf2); -// try std.testing.expect(res.len == 1); - -// packet_channel.close(); -// packet_handle.join(); -// } +test "gossip.gossip_service: process contact_info push packet" { + const allocator = std.testing.allocator; + var crds_table = try CrdsTable.init(allocator); + defer crds_table.deinit(); + + var packet_channel = PacketChannel.init(allocator, 100); + defer packet_channel.deinit(); + + var logger = Logger.init(allocator, .debug); + defer logger.deinit(); + logger.spawn(); + + var packet_handle = try Thread.spawn(.{}, GossipService.process_packets, .{ &packet_channel, &crds_table, allocator, logger }); + + // send a push message + var kp_bytes = [_]u8{1} ** 32; + const kp = try KeyPair.create(kp_bytes); + const pk = kp.public_key; + var id = Pubkey.fromPublicKey(&pk, true); + + // new contact info + var legacy_contact_info = crds.LegacyContactInfo.default(); + var crds_data = crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }; + var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); + var values = [_]crds.CrdsValue{crds_value}; + const msg = Protocol{ + .PushMessage = .{ id, &values }, + }; + + // packet + const peer = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 8000).toEndpoint(); + var buf = [_]u8{0} ** PACKET_DATA_SIZE; + var bytes = try bincode.writeToSlice(buf[0..], msg, bincode.Params.standard); + const packet = Packet.init(peer, buf, bytes.len); + packet_channel.send(packet); + + // correct insertion into table + var buf2: [100]*crds.CrdsVersionedValue = undefined; + std.time.sleep(std.time.ns_per_s); + var res = try crds_table.get_contact_infos(&buf2); + try std.testing.expect(res.len == 1); + + packet_channel.close(); + packet_handle.join(); +} diff --git a/src/gossip/node.zig b/src/gossip/node.zig index 49ce75b37..b5cf78865 100644 --- a/src/gossip/node.zig +++ b/src/gossip/node.zig @@ -328,49 +328,49 @@ test "set & get socket on contact info" { try testing.expect(ci.sockets.items[0].eql(&SocketEntry.init(SOCKET_TAG_RPC, 0, 8899))); } -// test "contact info bincode serialize matches rust bincode" { -// var rust_contact_info_serialized_bytes = [_]u8{ -// 57, 54, 18, 6, 106, 202, 13, 245, 224, 235, 33, 252, 254, 251, 161, 17, 248, 108, 25, 214, 169, -// 154, 91, 101, 17, 121, 235, 82, 175, 197, 144, 145, 100, 200, 0, 0, 0, 0, 0, 0, 0, 44, -// 1, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 6, 4, 0, 0, 0, 0, 127, 0, 0, -// 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, -// 127, 0, 0, 1, 6, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, -// 20, 30, -// }; - -// var pubkey = Pubkey.fromString("4rL4RCWHz3iNCdCaveD8KcHfV9YWGsqSHFPo7X2zBNwa") catch unreachable; -// var ci = ContactInfo.initDummyForTest(testing.allocator, pubkey, 100, 200, 300); -// defer ci.deinit(); - -// var buf = std.ArrayList(u8).init(testing.allocator); -// bincode.write(null, buf.writer(), ci, bincode.Params.standard) catch unreachable; -// defer buf.deinit(); - -// try testing.expect(std.mem.eql(u8, &rust_contact_info_serialized_bytes, buf.items)); - -// var stream = std.io.fixedBufferStream(buf.items); -// var ci2 = try bincode.read(testing.allocator, ContactInfo, stream.reader(), bincode.Params.standard); -// defer ci2.deinit(); - -// try testing.expect(ci2.addrs.items.len == 4); -// try testing.expect(ci2.sockets.items.len == 6); -// try testing.expect(ci2.pubkey.equals(&ci.pubkey)); -// try testing.expect(ci2.outset == ci.outset); -// } - -// test "SocketEntry serializer works" { -// testing.log_level = .debug; - -// var se = SocketEntry.init(3, 3, 30304); - -// var buf = std.ArrayList(u8).init(testing.allocator); -// defer buf.deinit(); -// try bincode.write(null, buf.writer(), se, bincode.Params.standard); - -// var stream = std.io.fixedBufferStream(buf.items); -// var other_se = try bincode.read(testing.allocator, SocketEntry, stream.reader(), bincode.Params.standard); - -// try testing.expect(other_se.index == se.index); -// try testing.expect(other_se.key == se.key); -// try testing.expect(other_se.offset == se.offset); -// } +test "contact info bincode serialize matches rust bincode" { + var rust_contact_info_serialized_bytes = [_]u8{ + 57, 54, 18, 6, 106, 202, 13, 245, 224, 235, 33, 252, 254, 251, 161, 17, 248, 108, 25, 214, 169, + 154, 91, 101, 17, 121, 235, 82, 175, 197, 144, 145, 100, 200, 0, 0, 0, 0, 0, 0, 0, 44, + 1, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 6, 4, 0, 0, 0, 0, 127, 0, 0, + 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, + 127, 0, 0, 1, 6, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30, 10, + 20, 30, + }; + + var pubkey = Pubkey.fromString("4rL4RCWHz3iNCdCaveD8KcHfV9YWGsqSHFPo7X2zBNwa") catch unreachable; + var ci = ContactInfo.initDummyForTest(testing.allocator, pubkey, 100, 200, 300); + defer ci.deinit(); + + var buf = std.ArrayList(u8).init(testing.allocator); + bincode.write(null, buf.writer(), ci, bincode.Params.standard) catch unreachable; + defer buf.deinit(); + + try testing.expect(std.mem.eql(u8, &rust_contact_info_serialized_bytes, buf.items)); + + var stream = std.io.fixedBufferStream(buf.items); + var ci2 = try bincode.read(testing.allocator, ContactInfo, stream.reader(), bincode.Params.standard); + defer ci2.deinit(); + + try testing.expect(ci2.addrs.items.len == 4); + try testing.expect(ci2.sockets.items.len == 6); + try testing.expect(ci2.pubkey.equals(&ci.pubkey)); + try testing.expect(ci2.outset == ci.outset); +} + +test "SocketEntry serializer works" { + testing.log_level = .debug; + + var se = SocketEntry.init(3, 3, 30304); + + var buf = std.ArrayList(u8).init(testing.allocator); + defer buf.deinit(); + try bincode.write(null, buf.writer(), se, bincode.Params.standard); + + var stream = std.io.fixedBufferStream(buf.items); + var other_se = try bincode.read(testing.allocator, SocketEntry, stream.reader(), bincode.Params.standard); + + try testing.expect(other_se.index == se.index); + try testing.expect(other_se.key == se.key); + try testing.expect(other_se.offset == se.offset); +} diff --git a/src/gossip/protocol.zig b/src/gossip/protocol.zig index 6fbb90442..8be33efb2 100644 --- a/src/gossip/protocol.zig +++ b/src/gossip/protocol.zig @@ -102,121 +102,121 @@ pub const Pong = struct { const logger = std.log.scoped(.protocol); -// test "gossip.protocol: ping message serializes and deserializes correctly" { -// var keypair = KeyPair.create(null) catch unreachable; - -// var original = Protocol{ .PingMessage = Ping.random(keypair) }; -// var buf = [_]u8{0} ** 1232; - -// var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); - -// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); - -// try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); -// try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); -// try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); -// } - -// test "gossip.protocol: ping message matches rust bytes" { -// var keypair = KeyPair.create(null) catch unreachable; - -// var original = Protocol{ .PingMessage = Ping.random(keypair) }; -// var buf = [_]u8{0} ** 1232; - -// var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); - -// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); - -// try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); -// try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); -// try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); -// } - -// test "gossip.protocol: pull request serializes and deserializes" { -// var rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 190, 193, 13, 216, 175, 227, 117, 168, 246, 219, 213, 39, 67, 249, 88, 3, 238, 151, 144, 15, 23, 142, 153, 198, 47, 221, 117, 132, 218, 28, 29, 115, 248, 253, 211, 101, 137, 19, 174, 112, 43, 57, 251, 110, 173, 14, 71, 0, 186, 24, 36, 61, 75, 241, 119, 73, 86, 93, 136, 249, 167, 40, 134, 14, 0, 0, 0, 0, 25, 117, 21, 11, 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -// var keypair = try KeyPair.fromSecretKey(try std.crypto.sign.Ed25519.SecretKey.fromBytes([_]u8{ -// 125, 52, 162, 97, 231, 139, 58, 13, 185, 212, 57, 142, 136, 12, 21, 127, 228, 71, -// 115, 126, 138, 52, 102, 69, 103, 185, 45, 255, 132, 222, 243, 138, 25, 117, 21, 11, -// 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, -// 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, -// })); - -// var pubkey = Pubkey.fromPublicKey(&keypair.public_key, true); - -// // pull requests only use ContactInfo CRDS data -// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); -// const unspecified_addr = SocketAddr.unspecified(); -// var legacy_contact_info = LegacyContactInfo{ -// .id = pubkey, -// .gossip = gossip_addr, -// .tvu = unspecified_addr, -// .tvu_forwards = unspecified_addr, -// .repair = unspecified_addr, -// .tpu = unspecified_addr, -// .tpu_forwards = unspecified_addr, -// .tpu_vote = unspecified_addr, -// .rpc = unspecified_addr, -// .rpc_pubsub = unspecified_addr, -// .serve_repair = unspecified_addr, -// .wallclock = 0, -// .shred_version = 0, -// }; -// var crds_data = crds.CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }; -// var crds_value = try crds.CrdsValue.initSigned(crds_data, keypair); - -// var filter = CrdsFilter.init(testing.allocator); -// defer filter.deinit(); - -// var pull = Protocol{ .PullRequest = .{ -// filter, -// crds_value, -// } }; - -// var buf = [_]u8{0} ** 1232; -// var serialized = try bincode.writeToSlice(buf[0..], pull, bincode.Params.standard); -// try testing.expectEqualSlices(u8, rust_bytes[0..], serialized); - -// var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); -// try testing.expect(std.meta.eql(pull, deserialized)); -// } - -// test "gossip.protocol: push message serializes and deserializes correctly" { -// var kp_bytes = [_]u8{1} ** 32; -// const kp = try KeyPair.create(kp_bytes); -// const pk = kp.public_key; -// const id = Pubkey.fromPublicKey(&pk, true); - -// const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); -// const unspecified_addr = SocketAddr.unspecified(); - -// var buf = [_]u8{0} ** 1024; - -// var legacy_contact_info = LegacyContactInfo{ -// .id = id, -// .gossip = gossip_addr, -// .tvu = unspecified_addr, -// .tvu_forwards = unspecified_addr, -// .repair = unspecified_addr, -// .tpu = unspecified_addr, -// .tpu_forwards = unspecified_addr, -// .tpu_vote = unspecified_addr, -// .rpc = unspecified_addr, -// .rpc_pubsub = unspecified_addr, -// .serve_repair = unspecified_addr, -// .wallclock = 0, -// .shred_version = 0, -// }; - -// var crds_data = crds.CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }; - -// var rust_bytes = [_]u8{ 2, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 1, 0, 0, 0, 0, 0, 0, 0, 247, 119, 8, 235, 122, 255, 148, 105, 239, 205, 20, 32, 112, 227, 208, 92, 37, 18, 5, 71, 105, 58, 203, 18, 69, 196, 217, 80, 56, 47, 2, 45, 166, 139, 244, 114, 132, 206, 156, 187, 206, 205, 0, 176, 167, 196, 11, 17, 22, 77, 142, 176, 215, 8, 110, 221, 30, 206, 219, 80, 196, 217, 118, 13, 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -// var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); -// var values = [_]crds.CrdsValue{crds_value}; -// var pushmsg = Protocol{ .PushMessage = .{ id, &values } }; -// var bytes = try bincode.writeToSlice(buf[0..], pushmsg, bincode.Params.standard); -// try testing.expectEqualSlices(u8, bytes[0..bytes.len], &rust_bytes); -// } +test "gossip.protocol: ping message serializes and deserializes correctly" { + var keypair = KeyPair.create(null) catch unreachable; + + var original = Protocol{ .PingMessage = Ping.random(keypair) }; + var buf = [_]u8{0} ** 1232; + + var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); + + var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); + + try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); + try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); + try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); +} + +test "gossip.protocol: ping message matches rust bytes" { + var keypair = KeyPair.create(null) catch unreachable; + + var original = Protocol{ .PingMessage = Ping.random(keypair) }; + var buf = [_]u8{0} ** 1232; + + var serialized = try bincode.writeToSlice(buf[0..], original, bincode.Params.standard); + + var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); + + try testing.expect(original.PingMessage.from.equals(&deserialized.PingMessage.from)); + try testing.expect(original.PingMessage.signature.eql(&deserialized.PingMessage.signature)); + try testing.expect(std.mem.eql(u8, original.PingMessage.token[0..], deserialized.PingMessage.token[0..])); +} + +test "gossip.protocol: pull request serializes and deserializes" { + var rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 190, 193, 13, 216, 175, 227, 117, 168, 246, 219, 213, 39, 67, 249, 88, 3, 238, 151, 144, 15, 23, 142, 153, 198, 47, 221, 117, 132, 218, 28, 29, 115, 248, 253, 211, 101, 137, 19, 174, 112, 43, 57, 251, 110, 173, 14, 71, 0, 186, 24, 36, 61, 75, 241, 119, 73, 86, 93, 136, 249, 167, 40, 134, 14, 0, 0, 0, 0, 25, 117, 21, 11, 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + var keypair = try KeyPair.fromSecretKey(try std.crypto.sign.Ed25519.SecretKey.fromBytes([_]u8{ + 125, 52, 162, 97, 231, 139, 58, 13, 185, 212, 57, 142, 136, 12, 21, 127, 228, 71, + 115, 126, 138, 52, 102, 69, 103, 185, 45, 255, 132, 222, 243, 138, 25, 117, 21, 11, + 61, 170, 38, 18, 67, 196, 242, 219, 50, 154, 4, 254, 79, 227, 253, 229, 188, 230, + 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, + })); + + var pubkey = Pubkey.fromPublicKey(&keypair.public_key, true); + + // pull requests only use ContactInfo CRDS data + const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); + const unspecified_addr = SocketAddr.unspecified(); + var legacy_contact_info = LegacyContactInfo{ + .id = pubkey, + .gossip = gossip_addr, + .tvu = unspecified_addr, + .tvu_forwards = unspecified_addr, + .repair = unspecified_addr, + .tpu = unspecified_addr, + .tpu_forwards = unspecified_addr, + .tpu_vote = unspecified_addr, + .rpc = unspecified_addr, + .rpc_pubsub = unspecified_addr, + .serve_repair = unspecified_addr, + .wallclock = 0, + .shred_version = 0, + }; + var crds_data = crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }; + var crds_value = try crds.CrdsValue.initSigned(crds_data, keypair); + + var filter = CrdsFilter.init(testing.allocator); + defer filter.deinit(); + + var pull = Protocol{ .PullRequest = .{ + filter, + crds_value, + } }; + + var buf = [_]u8{0} ** 1232; + var serialized = try bincode.writeToSlice(buf[0..], pull, bincode.Params.standard); + try testing.expectEqualSlices(u8, rust_bytes[0..], serialized); + + var deserialized = try bincode.readFromSlice(testing.allocator, Protocol, serialized, bincode.Params.standard); + try testing.expect(std.meta.eql(pull, deserialized)); +} + +test "gossip.protocol: push message serializes and deserializes correctly" { + var kp_bytes = [_]u8{1} ** 32; + const kp = try KeyPair.create(kp_bytes); + const pk = kp.public_key; + const id = Pubkey.fromPublicKey(&pk, true); + + const gossip_addr = SocketAddr.init_ipv4(.{ 127, 0, 0, 1 }, 1234); + const unspecified_addr = SocketAddr.unspecified(); + + var buf = [_]u8{0} ** 1024; + + var legacy_contact_info = LegacyContactInfo{ + .id = id, + .gossip = gossip_addr, + .tvu = unspecified_addr, + .tvu_forwards = unspecified_addr, + .repair = unspecified_addr, + .tpu = unspecified_addr, + .tpu_forwards = unspecified_addr, + .tpu_vote = unspecified_addr, + .rpc = unspecified_addr, + .rpc_pubsub = unspecified_addr, + .serve_repair = unspecified_addr, + .wallclock = 0, + .shred_version = 0, + }; + + var crds_data = crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }; + + var rust_bytes = [_]u8{ 2, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 1, 0, 0, 0, 0, 0, 0, 0, 247, 119, 8, 235, 122, 255, 148, 105, 239, 205, 20, 32, 112, 227, 208, 92, 37, 18, 5, 71, 105, 58, 203, 18, 69, 196, 217, 80, 56, 47, 2, 45, 166, 139, 244, 114, 132, 206, 156, 187, 206, 205, 0, 176, 167, 196, 11, 17, 22, 77, 142, 176, 215, 8, 110, 221, 30, 206, 219, 80, 196, 217, 118, 13, 0, 0, 0, 0, 138, 136, 227, 221, 116, 9, 241, 149, 253, 82, 219, 45, 60, 186, 93, 114, 202, 103, 9, 191, 29, 148, 18, 27, 243, 116, 136, 1, 180, 15, 111, 92, 0, 0, 0, 0, 127, 0, 0, 1, 210, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + var crds_value = try crds.CrdsValue.initSigned(crds_data, kp); + var values = [_]crds.CrdsValue{crds_value}; + var pushmsg = Protocol{ .PushMessage = .{ id, &values } }; + var bytes = try bincode.writeToSlice(buf[0..], pushmsg, bincode.Params.standard); + try testing.expectEqualSlices(u8, bytes[0..bytes.len], &rust_bytes); +} diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index f2bc974c5..2bfde6b2c 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -312,12 +312,12 @@ test "gossip.pull: helper functions are correct" { } } -// test "gossip.pull: crds filter matches rust bytes" { -// const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; -// var filter = CrdsFilter.init(std.testing.allocator); -// defer filter.deinit(); - -// var buf = [_]u8{0} ** 1024; -// var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); -// try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); -// } +test "gossip.pull: crds filter matches rust bytes" { + const rust_bytes = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0 }; + var filter = CrdsFilter.init(std.testing.allocator); + defer filter.deinit(); + + var buf = [_]u8{0} ** 1024; + var bytes = try bincode.writeToSlice(buf[0..], filter, bincode.Params.standard); + try std.testing.expectEqualSlices(u8, rust_bytes[0..], bytes); +} diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig index b15b8d0dc..e5d5df460 100644 --- a/src/gossip/pull_response.zig +++ b/src/gossip/pull_response.zig @@ -86,62 +86,62 @@ pub fn filter_crds_values( return output; } -// test "gossip.pull: test filter_crds_values" { -// var crds_table = try CrdsTable.init(std.testing.allocator); -// defer crds_table.deinit(); - -// // insert a some value -// const kp = try KeyPair.create([_]u8{1} ** 32); - -// var seed: u64 = @intCast(std.time.milliTimestamp()); -// var rand = std.rand.DefaultPrng.init(seed); -// const rng = rand.random(); - -// for (0..100) |_| { -// // var id = Pubkey.random(rng, .{}); -// // var legacy_contact_info = crds.LegacyContactInfo.default(); -// // legacy_contact_info.wallclock = 40; -// // legacy_contact_info.id = id; -// // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ -// // .LegacyContactInfo = legacy_contact_info, -// // }, kp); - -// var crds_value = try crds.CrdsValue.random(rng, kp); -// try crds_table.insert(crds_value, 0, null); -// } - -// const max_bytes = 10; - -// // recver -// var filters = try crds_pull_req.build_crds_filters(std.testing.allocator, &crds_table, max_bytes); -// defer crds_pull_req.deinit_crds_filters(&filters); -// var filter = filters.items[0]; - -// // corresponding value -// const pk = kp.public_key; -// var id = Pubkey.fromPublicKey(&pk, true); -// var legacy_contact_info = crds.LegacyContactInfo.default(); -// legacy_contact_info.id = id; -// legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); -// var crds_value = try CrdsValue.initSigned(crds.CrdsData{ -// .LegacyContactInfo = legacy_contact_info, -// }, kp); - -// // insert more values which the filters should be missing -// for (0..64) |_| { -// var v2 = try crds.CrdsValue.random(rng, kp); -// try crds_table.insert(v2, 0, null); -// } - -// var values = try filter_crds_values( -// std.testing.allocator, -// &crds_table, -// &crds_value, -// &filter, -// 100, -// @intCast(std.time.milliTimestamp()), -// ); -// defer values.deinit(); - -// try std.testing.expect(values.items.len > 0); -// } +test "gossip.pull: test filter_crds_values" { + var crds_table = try CrdsTable.init(std.testing.allocator); + defer crds_table.deinit(); + + // insert a some value + const kp = try KeyPair.create([_]u8{1} ** 32); + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + + for (0..100) |_| { + // var id = Pubkey.random(rng, .{}); + // var legacy_contact_info = crds.LegacyContactInfo.default(); + // legacy_contact_info.wallclock = 40; + // legacy_contact_info.id = id; + // var crds_value = try crds.CrdsValue.initSigned(crds.CrdsData{ + // .LegacyContactInfo = legacy_contact_info, + // }, kp); + + var crds_value = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(crds_value, 0, null); + } + + const max_bytes = 10; + + // recver + var filters = try crds_pull_req.build_crds_filters(std.testing.allocator, &crds_table, max_bytes); + defer crds_pull_req.deinit_crds_filters(&filters); + var filter = filters.items[0]; + + // corresponding value + const pk = kp.public_key; + var id = Pubkey.fromPublicKey(&pk, true); + var legacy_contact_info = crds.LegacyContactInfo.default(); + legacy_contact_info.id = id; + legacy_contact_info.wallclock = @intCast(std.time.milliTimestamp()); + var crds_value = try CrdsValue.initSigned(crds.CrdsData{ + .LegacyContactInfo = legacy_contact_info, + }, kp); + + // insert more values which the filters should be missing + for (0..64) |_| { + var v2 = try crds.CrdsValue.random(rng, kp); + try crds_table.insert(v2, 0, null); + } + + var values = try filter_crds_values( + std.testing.allocator, + &crds_table, + &crds_value, + &filter, + 100, + @intCast(std.time.milliTimestamp()), + ); + defer values.deinit(); + + try std.testing.expect(values.items.len > 0); +} From 50d611408aa5fe34118e559f47672a591211c785 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:10:04 -0400 Subject: [PATCH 32/48] update docs --- src/gossip/gossip_service.zig | 3 ++ src/gossip/readme.md | 63 +++++++++++++---------------------- 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/src/gossip/gossip_service.zig b/src/gossip/gossip_service.zig index c37373d9a..0ef13f3cc 100644 --- a/src/gossip/gossip_service.zig +++ b/src/gossip/gossip_service.zig @@ -234,15 +234,18 @@ pub const GossipService = struct { }, .PushMessage => |*push| { logger.debugf("got a push message: {any}", .{protocol_message}); + // TODO: verify value matches pubkey const values = push[1]; insert_crds_values(crds_table, values, logger, GossipRoute.PushMessage); }, .PullResponse => |*pull| { logger.debugf("got a pull message: {any}", .{protocol_message}); + // TODO: verify value matches pubkey const values = pull[1]; insert_crds_values(crds_table, values, logger, GossipRoute.PullResponse); }, .PullRequest => |*pull| { + // TODO: verify value matches pubkey var filter = pull[0]; var value = pull[1]; // contact info const now = get_wallclock(); diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 10ebd1f48..a4cef4bf7 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -18,27 +18,13 @@ This function `spawn`ed and is a long running process. It listens to the packet - `pull_response.zig`: logic for sending pull *responses* (/handling incoming pull requests) - `crds_shards.zig`: datastructure which stores gossip data hashes for quick lookup - used in `crds_table` and constructing pull responses -## Technical Explainer +## Datatypes and Datastructures -- there are a few main components in solana's gossip protocol - - this includes communication protocols for sharing data - - and data structures for storing and retrieving data -- this post will explain key implementation details of solana's gossip protocol -- well use the Sig code as our main reference but also reference the solana-labs rust client sometimes too -- we use many of the same variable and structure naming as the labs client -- this post builds off of the technical portion of the [Sig anouncement post](https://blog.syndica.io/introducing-sig-by-syndica-an-rps-focused-solana-validator-client-written-in-zig/#sigs-first-component-gossip-protocol) - -### Gossip Data Structures: CrdsTable - -- gossip data is stored in a Conflict-free Replicated Data Store (CRDS) - -### Gossip Data Types - -- data that is propogated throughout gossip is refered to as a `CrdsData` and a `CrdsValue` +- data types which we track are defined in `crds.zig` which include `CrdsData` and `CrdsValue` - a `CrdsData` is an enum over the possible gossip data types - - a `CrdsValue` contains a `CrdsData` struct and a signature of the `CrdsData` + - a `CrdsValue` contains a `CrdsData` struct and a signature of the `CrdsData` - these are propogated on the network and their signature is verified before processing their data. -- there are many `CrdsData` types used throughout the codebase but the few were interested in right now include: +- there are many `CrdsData` types used throughout the codebase, but ones of particular importance include: - `ContactInfo`/`LegacyContactInfo`: which includes node specific information such as the nodes public key and socket addresses for specific validator tasks (including gossip, tvu, tpu, repair, ...). This structure is critical for discovering the rest of the network. - `Vote`: which includes a validators signature that a specific block is valid. Note, this data is slowly being phased out of the gossip protocol because its not required and takes up a lot of network bandwidth. - `EpochSlots`: ?? @@ -46,10 +32,11 @@ This function `spawn`ed and is a long running process. It listens to the packet ### Storing Gossip Data -- to store gossip data we use an indexable HashMap - - the HashMap uses a `CrdsValueLabel` as its keys and a `CrdsVersionedValue` as its values +- gossip data is stored in a Conflict-free Replicated Data Store (CRDS) located in `crds_table.zig`. +- to store this data we use an indexable HashMap which uses a `CrdsValueLabel` as +its keys and a `CrdsVersionedValue` as its values -#### CRDS ValueLabels +### ValueLabels and VersionedValues - each `CrdsData` type has a corresponding `CrdsValueLabel` which defines how the data is stored/replaced - for example a `LegacyContactInfo` struct includes many socket address fields, however, its corresponding label is only its pubkey @@ -79,36 +66,32 @@ pub const CrdsValueLabel = union(enum) { ``` - assuming each validator corresponds to one pubkey, this means we'll only store one `ContactInfo` per validator. -- when inserting a Crds datatype whos label already exist in the store, we keep the one with the largest wallclock time (ie, the newest) and discard the other. +- when inserting a `CrdsData` whos label already exist in the store, we keep the one with the largest wallclock time (ie, the newest) and discard the other. -#### Storing Specific Data Types +### Storing Specific Data Types - were also interested in storing specific datatypes in the table efficiently -- for example, when broadcasting data throughout the network, it would be nice to have all the `ContactInfo` values which are stored in the CRDS table - +- for example, when broadcasting data to the rest of the network, it would be nice to have all the `ContactInfo` values which are stored in the CRDS table - this is why we use an **indexable** hash map implementation -- for example, when inserting new values into the store (or updating existing values) we recieve its corresponding index from the insertion -- then, for specific data types were interseted in, we can then store these indexs in another array -- to retrieve these values, we can iterate over the indexs, index into the table, and retrieve the correspoinding types -- we follow this approach for all of the data types were interested in including: `ContactInfos`, `Votes`, `EpochSlots`, `DuplicateShreds`, and `ShredVersions` + - for example, when inserting values into the store we recieve its corresponding index from the insertion (`index = crds_table.insert(&versioned_value)`) + - we can then store these indexs in another array (`contact_infos.append(index)`) + - to retrieve these values, we can iterate over the array, index into the table, and retrieve the correspoinding data values + - we follow this approach for all of the data types such as: `ContactInfos`, `Votes`, `EpochSlots`, `DuplicateShreds`, and `ShredVersions` -#### Retrieving Data with Getters +### Retrieving Data Specific Data Types -- we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update -- to efficiently retrieve data from the store we use getter functions such as (eg, `get_votes_with_cursor`) which allows you to retrieve values which are past a certain cursor index +- to efficiently retrieve new data from the store, we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update +- we can then use getter functions such as, `get_votes_with_cursor`, which allows you to retrieve votes which are past a certain cursor index - a listener would track their own cursor and periodically call the getter functions to retrieve new values -## Gossip Protocol: Pull Messages - -### Sending Pull *Requests* - -- pull request are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" +## Protocol: Pull Messages -#### Building Requests +### Building Pull *Requests* -- the idea is to construct bloom filter over the hashes of stored Crds values -- the main struct to do this is called `CrdsFilters` +- pull request are used to retrieve gossip data which the node is missing +- they are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" +- to say this, we construct a bloom filter over the hashes of values stored in the crds table - since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first N bits - for example, if we are paritioning on the first 3 bits of hash values we would use, 2^3 = 8 bloom filters: From a9e03ca07f50a9a7a8acbbeea3f487cdc3deb1a7 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:31:25 -0400 Subject: [PATCH 33/48] update docs --- src/gossip/readme.md | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index a4cef4bf7..c5b06ba5d 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -74,38 +74,41 @@ pub const CrdsValueLabel = union(enum) { - for example, when broadcasting data to the rest of the network, it would be nice to have all the `ContactInfo` values which are stored in the CRDS table - this is why we use an **indexable** hash map implementation - - for example, when inserting values into the store we recieve its corresponding index from the insertion (`index = crds_table.insert(&versioned_value)`) - - we can then store these indexs in another array (`contact_infos.append(index)`) - - to retrieve these values, we can iterate over the array, index into the table, and retrieve the correspoinding data values + - for example, when inserting values into the store, we recieve its corresponding index from the insertion (`crds_index = crds_table.insert(&versioned_value)`) + - we can then store these indexs in an array (`contact_infos.append(crds_index)`) + - to retrieve these values, we can iterate over the array, index into the table, and retrieve the correspoinding data values (`versioned_value = crds_table[crds_index]`) - we follow this approach for all of the data types such as: `ContactInfos`, `Votes`, `EpochSlots`, `DuplicateShreds`, and `ShredVersions` ### Retrieving Data Specific Data Types -- to efficiently retrieve new data from the store, we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update +- to efficiently retrieve *new* data from the store, we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update - we can then use getter functions such as, `get_votes_with_cursor`, which allows you to retrieve votes which are past a certain cursor index - a listener would track their own cursor and periodically call the getter functions to retrieve new values -## Protocol: Pull Messages +## Protocol Messages: Pull ### Building Pull *Requests* - pull request are used to retrieve gossip data which the node is missing - they are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" - to say this, we construct a bloom filter over the hashes of values stored in the crds table +- the majority of code can be found in `pull_requests.zig` and `src/bloom/bloom.zig` -- since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first N bits -- for example, if we are paritioning on the first 3 bits of hash values we would use, 2^3 = 8 bloom filters: +- since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first `N` bits + - we do this with the `CrdsFilterSet` struct which is a list of `CrdsFilters` +- for example, if we are paritioning on the first 3 bits of hash values we would use, 2^3 = 8 `Bloom` filters: - the first bloom containing hash values whos bits start with 000 - the second bloom containing hash values whos bits start with 001 - ... - and lastly, the eight bloom containing hash values whos bits start with 111 -- for example, if a hash had bits 00101110101, we would only consider its first 3 bits, 001, and would be added to the first bloom filter (`@cast(usize, 001) = 1`) -- you can think of this as a custom hash function for a hash map, where the keys are hashes, the values are bloom filters, and the function is to consider the first N bits of the hash -- the number of bits (called `mask_bits` in the code) we require depends on many factors including the desired false-positive rate of the bloom filters, the number of items in the crds store, and more -- after we construct this filter set (ie, compute the mask_bits and init the bloom filters), we then need to add all the crds values to it (psuedocode below) +- for example, if we were tracking a `Hash` with bits 00101110101, we would only consider its first 3 bits, 001, and so we would add the hash to the first bloom filter (`@cast(usize, 001) = 1`) +- you can think of this as a custom hash function for a hash map, where the keys are `Hash` values, the values are `Bloom` filters, and the function is to consider the first `N` bits of the hash +- the first `N` bits is called the `mask_bits` in the code which depends on many factors including the desired false-positive rate of the bloom filters, the number of items in the crds store, and more +- after we construct this filter set (ie, compute the `mask_bits` and init `2^mask_bits` bloom filters), we then need to track all of the `CrdsValues` to it +- some psuedocode is below ```python -## main function for building pull requests! +## main function for building pull requests def build_crds_filters( crds_store: *CrdsStore ) Vec: @@ -116,15 +119,15 @@ def build_crds_filters( for value in values: filter_set.add(value) - # TODO: CrdsFilterSet => Vec - # return filter_set.consumeForCrdsFilters() + # CrdsFilterSet => Vec + return filter_set.consumeForCrdsFilters() class CrdsFilterSet(): mask_bits: u64 filters: Vec def init(self, num_items): - self.mask_bits = ... + self.mask_bits = ... # compute the mask_bits n_filters = 1 << mask_bits # 2^mask_bits self.filters = [] @@ -132,7 +135,7 @@ class CrdsFilterSet(): self.filters.append(Bloom.random()) def add(hash: Hash): - # compute the hash index + # compute the hash index (ie, the first mask_bits bits of the Hash) # eg: # hash: 001010101010101..1 # mask_bits = 3 @@ -144,8 +147,9 @@ class CrdsFilterSet(): self.filters[index].add(hash) ``` -- we then need to consume the filter set into a vector of filters +- we then need to consume the filter set into a vector of `CrdsFilter` which we'll send to the network - each filter also requires a mask which identifies what filter it is (\what the first N bits of the hash values it contains) + - eg, the mask of the first filter would be `000`, the mask of the second filter would be `001`, the third filter would be `010`, ... ```python def consumeForCrdsFilters(self: CrdsFilterSet) Vec: @@ -161,7 +165,7 @@ class CrdsFilterSet(): ```python fn compute_mask(index: u64, mask_bits: u64) u64: - # shift the index to the first `mask_bits` of the u64 + # shift the index to the first `mask_bits` of the u64 # eg, # index = 1 # mask_bits = 3 From b4d18365306009542964ed5d5ee60cdcf884a900 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:34:26 -0400 Subject: [PATCH 34/48] fix --- src/gossip/readme.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index c5b06ba5d..af6ab0385 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -89,10 +89,9 @@ pub const CrdsValueLabel = union(enum) { ### Building Pull *Requests* -- pull request are used to retrieve gossip data which the node is missing -- they are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" +- pull request are used to retrieve gossip data which the node is missing - they are sent to random peers periodically and say, "i have these values in my crds table, can you send me anything im missing" - to say this, we construct a bloom filter over the hashes of values stored in the crds table -- the majority of code can be found in `pull_requests.zig` and `src/bloom/bloom.zig` + - the majority of code can be found in `pull_requests.zig` and `src/bloom/bloom.zig` - since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first `N` bits - we do this with the `CrdsFilterSet` struct which is a list of `CrdsFilters` @@ -147,8 +146,8 @@ class CrdsFilterSet(): self.filters[index].add(hash) ``` -- we then need to consume the filter set into a vector of `CrdsFilter` which we'll send to the network -- each filter also requires a mask which identifies what filter it is (\what the first N bits of the hash values it contains) +- after adding all values to the `CrdsFilterSet`, we then need to consume the set into a vector of `CrdsFilters` which we'll send to different peers +- to idenitfy which hash bits each filter contains, we use a mask - eg, the mask of the first filter would be `000`, the mask of the second filter would be `001`, the third filter would be `010`, ... ```python @@ -161,7 +160,7 @@ class CrdsFilterSet(): ) ``` -- the logic follows similar to the bit operations above, its computed in `CrdsFilter.compute_mask(index, self.mask_bits)` +- the logic follows similar to the bit operations above and is computed in `CrdsFilter.compute_mask(index, self.mask_bits)` ```python fn compute_mask(index: u64, mask_bits: u64) u64: From 6c2e2a725a90cf73c1b5028ca0e1d05e28b0d7b6 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:50:48 -0400 Subject: [PATCH 35/48] add imgs --- src/gossip/2023-08-07-15-49-57.png | Bin 0 -> 38550 bytes src/gossip/2023-08-07-15-50-23.png | Bin 0 -> 43250 bytes src/gossip/imgs/2023-08-07-15-49-02.png | Bin 0 -> 43504 bytes src/gossip/readme.md | 30 ++++++++++++++---------- 4 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 src/gossip/2023-08-07-15-49-57.png create mode 100644 src/gossip/2023-08-07-15-50-23.png create mode 100644 src/gossip/imgs/2023-08-07-15-49-02.png diff --git a/src/gossip/2023-08-07-15-49-57.png b/src/gossip/2023-08-07-15-49-57.png new file mode 100644 index 0000000000000000000000000000000000000000..37dd4dcd83b32e2ad6e7980f5b750638e15b3139 GIT binary patch literal 38550 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∋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 (64 - shard_bits)` - get the shard: `self.shards[shard_index]` - - insert the crds store index along with the u64 hash + - insert the crds table index along with the `u64_hash` ```python def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): @@ -204,14 +204,16 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): shard.put(crds_index, uhash); ``` -- the logic follows very closely with what we did with `CrdsFilterSet` -- now we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) -- when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to `mask` and return its values +- we insert values into the `CrdsShard` structure whenever we insert a new value in the `CrdsTable` +- now to build the pull response, we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) +- when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to the first `shard_bits` of `mask` and return its values + +![](imgs/2023-08-07-15-49-02.png) ```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: if (self.shard_bits == mask_bits) { - shard = self.shard[mask] + shard = self.shard[(mask >> (64 - self.shard_bits)] crds_indexs = shard.keys() return crds_indexs } else { @@ -219,10 +221,12 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: } ``` -- when `shard_bits < mask_bits`, the mask is tracking more bits than the shard are, so we know if we truncate the mask up to `shard_bits`, we can grab the shard and iterate over those values and to find exact matches +- when `shard_bits < mask_bits`, the mask is tracking more bits than the shards are, so we know if we truncate the mask up to `shard_bits`, we can grab the shard and iterate over those values and to find exact matches - truncating and looking up the shard gives us hashes which have a matching first `shard_bits` - we then need to check to make sure the last `shard_bits - mask_bits` match the mask which we do through iteration +![](2023-08-07-15-49-57.png) + ```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: # ones everywhere except for the first `mask_bits` @@ -256,6 +260,8 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `(mask | mask_ones) >> shard_bits` - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end` +![](2023-08-07-15-50-23.png) + ```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: # ones everywhere except for the first `mask_bits` From 3b83e4623b343c596327da5817f0ab75ae86789d Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:51:09 -0400 Subject: [PATCH 36/48] add imgs --- src/gossip/{ => imgs}/2023-08-07-15-49-57.png | Bin src/gossip/{ => imgs}/2023-08-07-15-50-23.png | Bin src/gossip/readme.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename src/gossip/{ => imgs}/2023-08-07-15-49-57.png (100%) rename src/gossip/{ => imgs}/2023-08-07-15-50-23.png (100%) diff --git a/src/gossip/2023-08-07-15-49-57.png b/src/gossip/imgs/2023-08-07-15-49-57.png similarity index 100% rename from src/gossip/2023-08-07-15-49-57.png rename to src/gossip/imgs/2023-08-07-15-49-57.png diff --git a/src/gossip/2023-08-07-15-50-23.png b/src/gossip/imgs/2023-08-07-15-50-23.png similarity index 100% rename from src/gossip/2023-08-07-15-50-23.png rename to src/gossip/imgs/2023-08-07-15-50-23.png diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 3034b1af2..74d73b17d 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -225,7 +225,7 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - truncating and looking up the shard gives us hashes which have a matching first `shard_bits` - we then need to check to make sure the last `shard_bits - mask_bits` match the mask which we do through iteration -![](2023-08-07-15-49-57.png) +![](imgs/2023-08-07-15-49-57.png) ```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: @@ -260,7 +260,7 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `(mask | mask_ones) >> shard_bits` - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end` -![](2023-08-07-15-50-23.png) +![](imgs/2023-08-07-15-50-23.png) ```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: From ca2ff5b67a9deaa8a45ccb7b1d9fa992418021ab Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 15:58:42 -0400 Subject: [PATCH 37/48] add pics --- src/gossip/readme.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 74d73b17d..e34772874 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -208,7 +208,9 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): - now to build the pull response, we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) - when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to the first `shard_bits` of `mask` and return its values -![](imgs/2023-08-07-15-49-02.png) +
+ +
```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: @@ -225,7 +227,9 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - truncating and looking up the shard gives us hashes which have a matching first `shard_bits` - we then need to check to make sure the last `shard_bits - mask_bits` match the mask which we do through iteration -![](imgs/2023-08-07-15-49-57.png) +
+ +
```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: @@ -260,7 +264,9 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `(mask | mask_ones) >> shard_bits` - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end` -![](imgs/2023-08-07-15-50-23.png) +
+ +
```python def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: From 25bdd0bb9722f94714930814cabea8f3085f54b6 Mon Sep 17 00:00:00 2001 From: x19 <100000306+0xNineteen@users.noreply.github.com> Date: Mon, 7 Aug 2023 16:00:59 -0400 Subject: [PATCH 38/48] Update readme.md --- src/gossip/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index e34772874..54d72e1bf 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -209,7 +209,7 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): - when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to the first `shard_bits` of `mask` and return its values
- +
```python @@ -228,7 +228,7 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - we then need to check to make sure the last `shard_bits - mask_bits` match the mask which we do through iteration
- +
```python @@ -265,7 +265,7 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end`
- +
```python @@ -315,4 +315,4 @@ def filter_crds_values( ## Push Requests -## Ping/Pong \ No newline at end of file +## Ping/Pong From 08b60c5807ec943fee5b1434bf42d105dd87face Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Mon, 7 Aug 2023 16:04:46 -0400 Subject: [PATCH 39/48] update --- src/gossip/readme.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index e34772874..70b0cc30d 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -66,7 +66,7 @@ pub const CrdsValueLabel = union(enum) { ``` - assuming each validator corresponds to one pubkey, this means we'll only store one `ContactInfo` per validator. -- when inserting a `CrdsData` whos label already exist in the store, we keep the one with the largest wallclock time (ie, the newest) and discard the other. +- when inserting a `CrdsData` whos label already exist in the table, we keep the one with the largest wallclock time (ie, the newest) and discard the other. ### Storing Specific Data Types @@ -74,14 +74,14 @@ pub const CrdsValueLabel = union(enum) { - for example, when broadcasting data to the rest of the network, it would be nice to have all the `ContactInfo` values which are stored in the CRDS table - this is why we use an **indexable** hash map implementation - - for example, when inserting values into the store, we recieve its corresponding index from the insertion (`crds_index = crds_table.insert(&versioned_value)`) + - for example, when inserting values into the table, we recieve its corresponding index from the insertion (`crds_index = crds_table.insert(&versioned_value)`) - we can then store these indexs in an array (`contact_infos.append(crds_index)`) - to retrieve these values, we can iterate over the array, index into the table, and retrieve the correspoinding data values (`versioned_value = crds_table[crds_index]`) - we follow this approach for all of the data types such as: `ContactInfos`, `Votes`, `EpochSlots`, `DuplicateShreds`, and `ShredVersions` ### Retrieving Data Specific Data Types -- to efficiently retrieve *new* data from the store, we also track a `cursor` variable which is the head of the store and is monotonically incremented on each insert/update +- to efficiently retrieve *new* data from the table, we also track a `cursor` variable which is the head of the table and is monotonically incremented on each insert/update - we can then use getter functions such as, `get_votes_with_cursor`, which allows you to retrieve votes which are past a certain cursor index - a listener would track their own cursor and periodically call the getter functions to retrieve new values @@ -93,7 +93,7 @@ pub const CrdsValueLabel = union(enum) { - to say this, we construct a bloom filter over the hashes of values stored in the crds table - the majority of code can be found in `pull_requests.zig` and `src/bloom/bloom.zig` -- since there are a lot of values in the crds store, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first `N` bits +- since there are a lot of values in the crds table, instead of constructing one large bloom filter to send to all validators, we partition the crds data across multiple filters based on the hash value's first `N` bits - we do this with the `CrdsFilterSet` struct which is a list of `CrdsFilters` - for example, if we are paritioning on the first 3 bits of hash values we would use, 2^3 = 8 `Bloom` filters: - the first bloom containing hash values whos bits start with 000 @@ -102,17 +102,17 @@ pub const CrdsValueLabel = union(enum) { - and lastly, the eight bloom containing hash values whos bits start with 111 - for example, if we were tracking a `Hash` with bits 00101110101, we would only consider its first 3 bits, 001, and so we would add the hash to the first bloom filter (`@cast(usize, 001) = 1`) - you can think of this as a custom hash function for a hash map, where the keys are `Hash` values, the values are `Bloom` filters, and the function is to consider the first `N` bits of the hash -- the first `N` bits is called the `mask_bits` in the code which depends on many factors including the desired false-positive rate of the bloom filters, the number of items in the crds store, and more +- the first `N` bits is called the `mask_bits` in the code which depends on many factors including the desired false-positive rate of the bloom filters, the number of items in the crds table, and more - after we construct this filter set (ie, compute the `mask_bits` and init `2^mask_bits` bloom filters), we then need to track all of the `CrdsValues` to it - some psuedocode is below ```python ## main function for building pull requests def build_crds_filters( - crds_store: *CrdsStore + crds_table: *CrdsTable ) Vec: - values = crds_store.values() + values = crds_table.values() filter_set = CrdsFilterSet.init(len(value)) for value in values: @@ -260,8 +260,8 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: - if shard_bits = 4 and mask_bits = 2 and our mask is 01 - the possible shards well need to lookup are: 0100, 0101, 0110, 0111 - ie, there will be 4 shards that match the mask represented by the difference in bits - - so, we know we'll have to look up `2^(shard_bits - mask_bits)` number of shards which can be computed using `1 << (shard_bits - mask_bits)` - - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `(mask | mask_ones) >> shard_bits` + - so, we know we'll have to look up `2^(shard_bits - mask_bits)` number of shards which can be computed using `count = 1 << (shard_bits - mask_bits)` + - the final shard would be the mask followed by all ones (ie, 0111 in the example above) at the end which can be computed as `end = (mask | mask_ones) >> shard_bits` - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end`
+ +- new crds data comes from push messages and pull responses + ### ValueLabels and VersionedValues - each `CrdsData` type has a corresponding `CrdsValueLabel` which defines how the data is stored/replaced @@ -107,7 +113,7 @@ pub const CrdsValueLabel = union(enum) { - some psuedocode is below
- +
```python @@ -192,6 +198,10 @@ fn compute_mask(index: u64, mask_bits: u64) u64: - first it calls `crds_table.get_bitmask_matches` which returns the entries in the crds table which match the filters `mask` - to do this efficiently, we introduce a new data structure called `CrdsShards` which is located in `crds_shards.zig` +
+ +
+ #### `CrdsShards` - `CrdsShards` stores hash values efficiently based on the first `shard_bits` of a hash value (similar to the `CrdsFilterSet` structure) @@ -216,9 +226,11 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): ```
- +
+#### `CrdsShards`: Finding hash matches + - now to build the pull response, we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) - when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to the first `shard_bits` of `mask` and return its values @@ -330,3 +342,5 @@ def filter_crds_values( ## Push Requests ## Ping/Pong + +## Prune Messages From 49234c7329c09cbcb60431fd695875224fd4340c Mon Sep 17 00:00:00 2001 From: x19 <100000306+0xNineteen@users.noreply.github.com> Date: Tue, 8 Aug 2023 13:48:26 -0400 Subject: [PATCH 48/48] update pic sizes --- src/gossip/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 06d80b70e..9b2d07d00 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -113,7 +113,7 @@ pub const CrdsValueLabel = union(enum) { - some psuedocode is below
- +
```python @@ -199,7 +199,7 @@ fn compute_mask(index: u64, mask_bits: u64) u64: - to do this efficiently, we introduce a new data structure called `CrdsShards` which is located in `crds_shards.zig`
- +
#### `CrdsShards` @@ -226,7 +226,7 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): ```
- +
#### `CrdsShards`: Finding hash matches
@@ -299,14 +299,14 @@ def find_matches(self: *CrdsShards, mask: u64, mask_bits: u64) Vec: ```python def filter_crds_values( - crds_store: *CrdsStore + crds_table: *CrdsTable filter: *CrdsFilter ) Vec: - var match_indexs = crds_store.get_bitmask_matches(filter.mask, filter.mask_bits); + var match_indexs = crds_table.get_bitmask_matches(filter.mask, filter.mask_bits); values = [] for index in match_indexs: - entry = crds_store[index] + entry = crds_table[index] if (!filter.bloom.contains(entry.hash)): values.append(entry) From 27d1054c6ddfbc50ec56d71c97f97a66c72d92b4 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 08:05:10 -0400 Subject: [PATCH 40/48] change shards to array --- src/gossip/crds_shards.zig | 66 +++++++++--------------- src/gossip/crds_table.zig | 4 +- src/gossip/imgs/2023-08-07-15-50-23.png | Bin 43250 -> 0 bytes src/gossip/imgs/2023-08-07-17-15-29.png | Bin 0 -> 36939 bytes src/gossip/pull_request.zig | 1 - src/gossip/readme.md | 2 +- 6 files changed, 27 insertions(+), 46 deletions(-) delete mode 100644 src/gossip/imgs/2023-08-07-15-50-23.png create mode 100644 src/gossip/imgs/2023-08-07-17-15-29.png diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index e04fb2cfa..0bc825237 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -22,52 +22,45 @@ const RwLock = std.Thread.RwLock; const CrdsPull = @import("./pull_request.zig"); +pub const CRDS_SHARDS_BITS: u32 = 12; +pub const CRDS_SHARDS_LEN: u32 = 1 << CRDS_SHARDS_BITS; + pub const CrdsShards = struct { // shards[k] includes crds values which the first shard_bits of their hash // value is equal to k. Each shard is a mapping from crds values indices to // their hash value. - shards: std.ArrayList(AutoArrayHashMap(usize, u64)), - shard_bits: u32, + shard_bits: u32 = CRDS_SHARDS_BITS, + shards: [CRDS_SHARDS_LEN]AutoArrayHashMap(usize, u64), const Self = @This(); - pub fn init(alloc: std.mem.Allocator, shard_bits: u32) !Self { - const n_shards: usize = @intCast(@as(u64, 1) << @as(u6, @intCast(shard_bits))); - var shards = try std.ArrayList(AutoArrayHashMap(usize, u64)).initCapacity(alloc, n_shards); - for (0..n_shards) |_| { - var shard = AutoArrayHashMap(usize, u64).init(alloc); - shards.appendAssumeCapacity(shard); + pub fn init(alloc: std.mem.Allocator) !Self { + var shards: [CRDS_SHARDS_LEN]AutoArrayHashMap(usize, u64) = undefined; + for (0..CRDS_SHARDS_LEN) |i| { + shards[i] = AutoArrayHashMap(usize, u64).init(alloc); } return Self{ .shards = shards, - .shard_bits = shard_bits, }; } pub fn deinit(self: *Self) void { - for (0..self.shards.capacity) |i| { - self.shards.items[i].deinit(); + for (0..self.shards.len) |i| { + self.shards[i].deinit(); } - self.shards.deinit(); } pub fn insert(self: *Self, crds_index: usize, hash: *const Hash) !void { const uhash = CrdsPull.hash_to_u64(hash); - var shard = self.get_shard(uhash); - try shard.put(crds_index, uhash); + const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); + try self.shards[shard_index].put(crds_index, uhash); } pub fn remove(self: *Self, crds_index: usize, hash: *const Hash) !void { const uhash = CrdsPull.hash_to_u64(hash); - var shard = self.get_shard(uhash); - _ = shard.swapRemove(crds_index); - } - - pub fn get_shard(self: *const Self, uhash: u64) *AutoArrayHashMap(usize, u64) { const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); - var shard = &self.shards.items[shard_index]; - return shard; + _ = self.shards[shard_index].swapRemove(crds_index); } pub fn compute_shard_index(shard_bits: u32, hash: u64) usize { @@ -80,13 +73,10 @@ pub const CrdsShards = struct { const ones = (~@as(u64, 0) >> @as(u6, @intCast(mask_bits))); const match_mask = mask | ones; - // mask = hash request bits - // shard_bits = current organization of this datastructure - if (self.shard_bits < mask_bits) { // shard_bits is smaller, all matches with mask will be in the same shard index + var shard = self.shards[CrdsShards.compute_shard_index(self.shard_bits, mask)]; - const shard = self.get_shard(match_mask); var shard_iter = shard.iterator(); var result = std.ArrayList(usize).init(alloc); while (shard_iter.next()) |entry| { @@ -101,12 +91,8 @@ pub const CrdsShards = struct { return result; } else if (self.shard_bits == mask_bits) { // when bits are equal we know the lookup will be exact - // eg, - // shard_bits == mask_bits == 3 - // mask = ABC, shard = XYZ - // get_shard(ABC) == get_shard(XYZ) + var shard = self.shards[CrdsShards.compute_shard_index(self.shard_bits, mask)]; - const shard = self.get_shard(match_mask); var result = try std.ArrayList(usize).initCapacity(alloc, shard.count()); try result.insertSlice(0, shard.keys()); return result; @@ -119,7 +105,7 @@ pub const CrdsShards = struct { var result = std.ArrayList(usize).init(alloc); var insert_index: usize = 0; for ((end - count)..end) |shard_index| { - const shard = self.shards.items[shard_index]; + const shard = self.shards[shard_index]; try result.insertSlice(insert_index, shard.keys()); insert_index += shard.count(); } @@ -131,7 +117,7 @@ pub const CrdsShards = struct { const CrdsTable = @import("crds_table.zig").CrdsTable; test "gossip.crds_shards: tests CrdsShards" { - var shards = try CrdsShards.init(std.testing.allocator, 10); + var shards = try CrdsShards.init(std.testing.allocator); defer shards.deinit(); const v = Hash.random(); @@ -146,8 +132,8 @@ test "gossip.crds_shards: tests CrdsShards" { fn new_test_crds_value(rng: std.rand.Random, crds_table: *CrdsTable) !CrdsVersionedValue { const keypair = try KeyPair.create(null); var value = try CrdsValue.random(rng, keypair); - const label = value.label(); try crds_table.insert(value, 0, null); + const label = value.label(); const x = crds_table.get(label).?; return x; } @@ -175,25 +161,23 @@ fn filter_crds_values( } test "gossip.crds_shards: test shard find" { - var seed: u64 = @intCast(std.time.milliTimestamp()); - var rand = std.rand.DefaultPrng.init(seed); - const rng = rand.random(); - var crds_table = try CrdsTable.init(std.testing.allocator); defer crds_table.deinit(); - var crds_shards = try CrdsShards.init(std.testing.allocator, 5); - defer crds_shards.deinit(); - // gen ranndom values var values = try std.ArrayList(CrdsVersionedValue).initCapacity(std.testing.allocator, 1000); defer values.deinit(); + + var seed: u64 = @intCast(std.time.milliTimestamp()); + var rand = std.rand.DefaultPrng.init(seed); + const rng = rand.random(); + while (values.items.len < 1000) { const value = try new_test_crds_value(rng, &crds_table); try values.append(value); - try crds_shards.insert(value.ordinal, &value.value_hash); } + var crds_shards = crds_table.shards; // test find with different mask bit sizes (< > == shard bits) for (0..10) |_| { var mask = rng.int(u64); diff --git a/src/gossip/crds_table.zig b/src/gossip/crds_table.zig index 785cc6756..847ad092e 100644 --- a/src/gossip/crds_table.zig +++ b/src/gossip/crds_table.zig @@ -41,8 +41,6 @@ pub const HashAndTime = struct { hash: Hash, timestamp: u64 }; const PurgedQ = std.TailQueue(HashAndTime); const FailedInsertsQ = std.TailQueue(HashAndTime); -const CRDS_SHARDS_BITS: u32 = 12; - /// Cluster Replicated Data Store: stores gossip data /// the self.store uses an AutoArrayHashMap which is a HashMap that also allows for /// indexing values (value = arrayhashmap[0]). This allows us to insert data @@ -88,7 +86,7 @@ pub const CrdsTable = struct { .votes = AutoArrayHashMap(usize, usize).init(allocator), .epoch_slots = AutoArrayHashMap(usize, usize).init(allocator), .duplicate_shreds = AutoArrayHashMap(usize, usize).init(allocator), - .shards = try CrdsShards.init(allocator, CRDS_SHARDS_BITS), + .shards = try CrdsShards.init(allocator), .purged = PurgedQ{}, .failed_inserts = FailedInsertsQ{}, }; diff --git a/src/gossip/imgs/2023-08-07-15-50-23.png b/src/gossip/imgs/2023-08-07-15-50-23.png deleted file mode 100644 index 4ac0bf625703eaf1471cc982f8304e48583b5715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43250 zcmeFZg;!KJMgmia<3W{_$N_TgSg3{g60@5Mfe0vyt&+|UN zZ=Jv3u-44%+53*G>%N8$N(z$bsD!96Ffi!SQm<5CVBoJ|U|=ti9|3ooEF_0uU>@69 ziis∋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: - since we know the final shard and the number of shards were looking for, we can iterate over them from `index = (end-count)..end`
- +
```python From e1868c011ebe8bec9b840b3bc8a32a71b07ab25d Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 08:10:29 -0400 Subject: [PATCH 41/48] update --- src/gossip/crds_shards.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gossip/crds_shards.zig b/src/gossip/crds_shards.zig index 0bc825237..aaa3dba5b 100644 --- a/src/gossip/crds_shards.zig +++ b/src/gossip/crds_shards.zig @@ -54,13 +54,15 @@ pub const CrdsShards = struct { pub fn insert(self: *Self, crds_index: usize, hash: *const Hash) !void { const uhash = CrdsPull.hash_to_u64(hash); const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); - try self.shards[shard_index].put(crds_index, uhash); + const shard = &self.shards[shard_index]; + try shard.put(crds_index, uhash); } pub fn remove(self: *Self, crds_index: usize, hash: *const Hash) !void { const uhash = CrdsPull.hash_to_u64(hash); const shard_index = CrdsShards.compute_shard_index(self.shard_bits, uhash); - _ = self.shards[shard_index].swapRemove(crds_index); + const shard = &self.shards[shard_index]; + _ = shard.swapRemove(crds_index); } pub fn compute_shard_index(shard_bits: u32, hash: u64) usize { From a3c8a9474c3f72e59223eca0ef313d4855fa5d35 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 09:28:24 -0400 Subject: [PATCH 42/48] more imgs --- src/gossip/imgs/2023-08-08-09-12-54.png | Bin 0 -> 173150 bytes src/gossip/imgs/2023-08-08-09-25-00.png | Bin 0 -> 220233 bytes src/gossip/readme.md | 18 +++++++++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 src/gossip/imgs/2023-08-08-09-12-54.png create mode 100644 src/gossip/imgs/2023-08-08-09-25-00.png diff --git a/src/gossip/imgs/2023-08-08-09-12-54.png b/src/gossip/imgs/2023-08-08-09-12-54.png new file mode 100644 index 0000000000000000000000000000000000000000..df239adb3662a36f55fb01e02fe1d7e76db6aef3 GIT binary patch literal 173150 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%0AdYoLnA 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 HYhnKZk12he literal 0 HcmV?d00001 diff --git a/src/gossip/imgs/2023-08-08-09-25-00.png b/src/gossip/imgs/2023-08-08-09-25-00.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb3b7ade62fb03020c3f0eb3834663d6fa3a574 GIT binary patch literal 220233 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

j05#oXc$ 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

(a^miapg7XRrJ{SopPT=pF^ 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

n=^G4jjRa()1tP`W|}O|ORBziZh7 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 literal 0 HcmV?d00001 diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 9ed9967c4..4febe7bea 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -106,6 +106,10 @@ pub const CrdsValueLabel = union(enum) { - after we construct this filter set (ie, compute the `mask_bits` and init `2^mask_bits` bloom filters), we then need to track all of the `CrdsValues` to it - some psuedocode is below +

+ +
+ ```python ## main function for building pull requests def build_crds_filters( @@ -185,12 +189,17 @@ fn compute_mask(index: u64, mask_bits: u64) u64: - sending a pull *response* requires you to iterate over values stored in the Crds table, filter the values to match the `CrdsFilter`'s `mask`, and find values which are not included in the request's `Bloom` filter - the main function which we use is `filter_crds_values` which takes a `CrdsFilter` as input and returns a vector of `CrdsValues` - first it calls `crds_table.get_bitmask_matches` which returns the entries in the crds table which match the filters `mask` - - to do this efficiently, we introduce a new data structure called `CrdsShards` which is located in `crds_shards.zig` + - to do this efficiently, we introduce a new data structure called `CrdsShards` which is located in `crds_shards.zig` #### `CrdsShards` - `CrdsShards` stores hash values efficiently based on the first `shard_bits` of a hash value (similar to the `CrdsFilterSet` structure) -- the main structure is `shards = ArrayList(AutoArrayHashMap(usize, u64)),` where `shards[k]` includes crds values which the first `shard_bits` of their hash value is equal to `k` +- the main structure is `shards = [4096]AutoArrayHashMap(usize, u64),` where `shards[k]` includes crds values which the first `shard_bits` of their hash value is equal to `k` + - `usize` is the index of the value in the crds table + - and `u64` is the hash value represented as a `u64` + - also note that `shard_bits` is hardcoded in the program as `12`, so we will have 2^12 = 4096 shard indexs + +- whenever we insert a new value in the `CrdsTable`, we insert its hash value into the `CrdsShard` structure and so the struct is stored on the `CrdsTable` - the insertion logic is straightforward - take the first 8 bytes of a hash and cast it to a `u64` (`hash_u64 = @as(u64, hash[0..8])`) - compute the first `shard_bits` bits of the `u64` by computing `shard_index = hash_u64 >> (64 - shard_bits)` @@ -204,7 +213,10 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): shard.put(crds_index, uhash); ``` -- we insert values into the `CrdsShard` structure whenever we insert a new value in the `CrdsTable` +
+ +
+ - now to build the pull response, we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) - when `shard_bits == mask_bits` its very straightforward, we just lookup the shard corresponding to the first `shard_bits` of `mask` and return its values From 198e3a5cf033621e5cf832373ce418e0f70c72d8 Mon Sep 17 00:00:00 2001 From: x19 <100000306+0xNineteen@users.noreply.github.com> Date: Tue, 8 Aug 2023 09:33:35 -0400 Subject: [PATCH 43/48] change imgs sizing --- src/gossip/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 4febe7bea..a08578e4c 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -107,7 +107,7 @@ pub const CrdsValueLabel = union(enum) { - some psuedocode is below
- +
```python @@ -214,7 +214,7 @@ def insert(self: *CrdsShards, crds_index: usize, hash: *const Hash): ```
- +
- now to build the pull response, we need to retrieve hash values which match a `mask` (ie, their first `mask_bit` bits are equal to `mask`) From b6303ed3d5474ad84c50cbb18bf749d9c23e23ab Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 09:45:04 -0400 Subject: [PATCH 44/48] fix --- src/bincode/bincode.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bincode/bincode.zig b/src/bincode/bincode.zig index 7a0acbcd6..d0b76188a 100644 --- a/src/bincode/bincode.zig +++ b/src/bincode/bincode.zig @@ -218,7 +218,7 @@ pub fn Deserializer(comptime Reader: type) type { } if (config.deserializer) |deser_fcn| { - @field(data, field.name) = try (deser_fcn(alloc, reader, params) catch getty.de.Error.InvalidValue); + @field(data, field.name) = deser_fcn(alloc, reader, params) catch return getty.de.Error.InvalidValue; continue; } } @@ -433,7 +433,7 @@ pub fn Serializer( continue; } if (config.serializer) |ser_fcn| { - try (ser_fcn(writer, @field(value, field.name), params) catch Error.IO); + ser_fcn(writer, @field(value, field.name), params) catch return Error.IO; continue; } } From bc0ca11afa4f5daf013dae603c2a0cc45e238d05 Mon Sep 17 00:00:00 2001 From: x19 <100000306+0xNineteen@users.noreply.github.com> Date: Tue, 8 Aug 2023 10:00:26 -0400 Subject: [PATCH 45/48] Update readme.md --- src/gossip/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index a08578e4c..573fbc304 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -27,8 +27,8 @@ This function `spawn`ed and is a long running process. It listens to the packet - there are many `CrdsData` types used throughout the codebase, but ones of particular importance include: - `ContactInfo`/`LegacyContactInfo`: which includes node specific information such as the nodes public key and socket addresses for specific validator tasks (including gossip, tvu, tpu, repair, ...). This structure is critical for discovering the rest of the network. - `Vote`: which includes a validators signature that a specific block is valid. Note, this data is slowly being phased out of the gossip protocol because its not required and takes up a lot of network bandwidth. - - `EpochSlots`: ?? - - `DuplicateShred`: ?? + - `EpochSlots`: // TODO + - `DuplicateShred`: // TODO ### Storing Gossip Data From 3a7d532c6b4e30b719207e3fce3c53d3e2be97f6 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 10:22:12 -0400 Subject: [PATCH 46/48] update --- src/gossip/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gossip/readme.md b/src/gossip/readme.md index 573fbc304..04253dcb9 100644 --- a/src/gossip/readme.md +++ b/src/gossip/readme.md @@ -153,6 +153,7 @@ class CrdsFilterSet(): - after adding all values to the `CrdsFilterSet`, we then need to consume the set into a vector of `CrdsFilters` which we'll send to different peers - to idenitfy which hash bits each filter contains, we use a mask - eg, the mask of the first filter would be `000`, the mask of the second filter would be `001`, the third filter would be `010`, ... + - when a node recieves a pull request, the mask will be used to efficiently find all the values whos hash matches the mask (ie, if you recieved the `010` mask, you would look up all hash values whose first 3 bits are `010`) and then find values which are not included in the bloom filter ```python def consumeForCrdsFilters(self: CrdsFilterSet) Vec: @@ -198,6 +199,7 @@ fn compute_mask(index: u64, mask_bits: u64) u64: - `usize` is the index of the value in the crds table - and `u64` is the hash value represented as a `u64` - also note that `shard_bits` is hardcoded in the program as `12`, so we will have 2^12 = 4096 shard indexs + - this allows us to quickly look up all the crds values whos hash matches a pull requests `mask` (compared to iterating over all the crds values) - whenever we insert a new value in the `CrdsTable`, we insert its hash value into the `CrdsShard` structure and so the struct is stored on the `CrdsTable` - the insertion logic is straightforward From 1e1d7e8c0f305a2343af1823446e25cf15a1dd42 Mon Sep 17 00:00:00 2001 From: 0xNineteen <0x39015319@gmail.com> Date: Tue, 8 Aug 2023 13:44:40 -0400 Subject: [PATCH 47/48] update pics --- src/gossip/imgs/2023-08-08-09-12-54.png | Bin 173150 -> 0 bytes src/gossip/imgs/2023-08-08-09-25-00.png | Bin 220233 -> 0 bytes src/gossip/imgs/2023-08-08-12-15-44.png | Bin 0 -> 336865 bytes src/gossip/imgs/2023-08-08-12-35-30.png | Bin 0 -> 69245 bytes src/gossip/imgs/2023-08-08-13-37-04.png | Bin 0 -> 232468 bytes src/gossip/imgs/2023-08-08-13-42-47.png | Bin 0 -> 198188 bytes src/gossip/readme.md | 20 +++++++++++++++++--- 7 files changed, 17 insertions(+), 3 deletions(-) delete mode 100644 src/gossip/imgs/2023-08-08-09-12-54.png delete mode 100644 src/gossip/imgs/2023-08-08-09-25-00.png create mode 100644 src/gossip/imgs/2023-08-08-12-15-44.png create mode 100644 src/gossip/imgs/2023-08-08-12-35-30.png create mode 100644 src/gossip/imgs/2023-08-08-13-37-04.png create mode 100644 src/gossip/imgs/2023-08-08-13-42-47.png diff --git a/src/gossip/imgs/2023-08-08-09-12-54.png b/src/gossip/imgs/2023-08-08-09-12-54.png deleted file mode 100644 index df239adb3662a36f55fb01e02fe1d7e76db6aef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173150 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%0AdYoLnA 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 HYhnKZk12he diff --git a/src/gossip/imgs/2023-08-08-09-25-00.png b/src/gossip/imgs/2023-08-08-09-25-00.png deleted file mode 100644 index 5eb3b7ade62fb03020c3f0eb3834663d6fa3a574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220233 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

j05#oXc$ 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

(a^miapg7XRrJ{SopPT=pF^ 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

ZH*;;6s!WSvl+nI?5m^rJhxO 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�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

@*| z(}No(c}3ECY#mI>6HlC~O>4gb8vO1N#(@Wa7yjnf5;>T##})pi&&36vM9lq9q9yAH zkxb6hj-H{2X4o$S6GGZS{1(zx1*P9{Yt9mS$J>zFb22@ygfs!ibo2$JR)cVu`!`1Z zz4@L8SoIbiXS<0%{FiJh?d2;DR53YV{zRo-x?p`g5udy!vYIoGFu9g3Da<$)Kf`B? zrsQH&4VC#KzED6AXL3>T<+m`7m{zMNce2TwA~WpOkrc7RkE*JAPO@;1q>5)kuuw8H;{xwH zkujjI)W3SNvAZV2#Ad3QTo9J}97JS6d$r0tDEAPQv{%TWrp}|jaXh!NyCc@{YH#Pm zrU+?z&C};(Pu`>fc$HxUml~pTJOzOq^tt)!?>dp+dnW8b!NOq8^ey$hP>J@H7Cl|n zx2?B73xr11{uKTN$hL{uaLW0joK#t7Lw~`K*3%&7k#6)w2ZAz0uY@1AZ!u^ekKru} z>$E*JA62F?*-?|75bBO-PLI*1g<=P;h#nm9V~q(0guYSuo7epe%98x5hK|M)Fs(FR z=aJVqaRYB65tj5)Fq3rLA537D0 zQm1|U=(IntXccRxZzUqe(?qHA{%(FwqJ5UaTqxY?K5&WreW(@9N+3CI6n84s2fc1< zJXMLE$!SB4xa@sfTSqkpzl9CUbn>=-xGFfb32P6zXDPGym#``yKH^7({S@Ie?!BNg z#8P-y)km2v~fI!6TJz7U(0j7>V%>0W4|lK`%of{QA{a1 zp;obHweFH(QznvkD9^0|0B(7g$E=70gaKP$0(hf!CeI8D;G6@jNY6LGHwKyIGyNs^ z?gietl}LvDQZs^xUsFGlQIl!On5Z@Y>8+RXnQ{LZoZl9kW;72DjWmT#{}hc`aXX`8 zV|82B<(1Iu+fwF&LhjF++*7`vL!P@JU}SVR)G13mu<|xsSz6FC^Ok9O)(hGK{aO}n zm)&)E@WfH_Xw59mvrw?u13iVcsWp>9`LQE2NH91duX09NIOWCjM-|;0 zKTC-;mDOW%yIto;l%Q=XU{Fv*?bO`|!61Zh+lly4<`vm~c)#w#qp{aW_rtM-v+-q?nw`Cu)P6Q#R%a2CJH@i^u6Rqmb284eW;g14|$p7jrEs8%C))q#z7ItsH#MM~j&P-IY6O?M@ zLVHJz!{;1NoX(teE4D)}HPSBGS0+nSub)G=WVp$F9z zIh1vp9>)~DIcJGU(Qa{eZ^F)2*&xeXUr;Z%&5i6qJFs}{m?+IG&s6T80=fmkd>Q!c z$4xPv&-i?``YA*Cnq97rF#}D>4Uy_o;+fLUqA;M;#V70oTpXg|d`w3#Vspr>r#vIEsp3y)*t91b6@+wWx-mf>|kusu5C zu?clWg-pm6rQMzBg`a4pr}rjnkV$$e*L3HuO2gpVyGbK~B}!YsJ@#1S(#o{Y=k-(N z>$Bod7%Tc;y#0OOaJ~LoKh)1h);mqatOm^!QKHszL9j=lmqD;5IT7P3*LBfQ(nIFQ^PT!8xgC9k}HInK zqm_*LiJQjTls!4xh$!DVE+yN20&3UM%P*5PiGDAnwY%0U*o5Se%xJXl+@8iUP`ur- z$12-qOugYA&E+~WP!Du>bz3W8gh1UnoWm?5ppVPxNsY9pG0MgN6mG75gnK&T5}cG| zX@1ucQIK1D{;|o3?=O`1AH;VKf-XV?F{S^6j*hCu3lXW?B{MOVpip6}VyIp5{Tb40Z@>E( zIR@uzln~taX7?Ozd9!x$g{#%sLA1mC?K_MXbhM_`npdUx!gYF@&3M;*y(BPAbZMG7yUaizTEE3(C3)d8E;!DCD0uPDBKqS?2-l z^!y~~yk{q+Yw$_dMmMRTO_+%Lg;2fg_4u`AdR9J`eSc7&91e;ZJ<5yx*taq8ws$!X z-)Eyb3KXh8uG27@yo@Zc_;~GyMuYLF$RTMlgj~?bKGd!xE{+w@c83t3Sn8qKT!#gN zk|!VwWB{vykYa4y+c~KcMYR72mm3xMay-+^hmPEl=H^E7_51m{n8Z5unV9kn=OnHl z(Dd|jUvSVVt*JgkD9sh+2|6&H$P~mjI zQ@#xtJ70K|^@4p_SPiuxbdNW3Ewo4-8J*SHvlNoWtSN=`!WxXxridpl6x$jv|L!K# zV(^rf>XHIfajbia8mjo>s_t>i&QZlS_tgx4PXP@!cZ)D3wf$-Xtrb2(HWBwWsVqL@ zr%(WODh{KNJV6UOJ6wgjm8196?KLMD=X5VNJq@|@ghi;J=J7%#*W^yn)pJi$eqNnl zyNv>R{mD7`6x~L}>ywZFX)8sjnUO)j14W0EIG{QLVRm}FSnWw~Xcp2?nz2Z?Vhz*I zLfdn@U_{l$*(XNbIT(s&iyAdY%OiRj_Zt_JU(LCgs>vjpDcl9U?%4PZg0ZUu1GCb4 zNMd^uV_J^1==p1Xbhvnhwu!n86R=Q@$O%2h`v90CW0Ha__Vmb83gpnk+%H7o1$skJ z^kot%Xnz>D-)wt6dsNCKbIe4^@d^~WINlV;`9WN~ z`QF2o0~$_dSDCd|reNI(848C3fb6#8&wDW1zL-AT!J;50h^>YfEoXk&*`wRJt^*2j zVA1d9pFlj!;GiVowT_dGjcw5ezgIw^0K%fwe%6)ZD{@GwmRIYTie^-gHSgPrOmFnR zbj-OrjJxD0CW}6tT;n0(>03LmY|7b_0hRsloj{QK%7^Oc&PX@{@FGU@>6;8h04NsD(w6Qq-+Ef6Q6AZ?`yjn#u=mm zR6jc+yPn)+`*L?Q6YB$&yq?oaBN%6R;WN64(x+LpofhZ@BXOCdZSG@5$g<^yW;MPm zJ3c9B6B}Jbh85kX%_&{)gG=fW93@ue=A{m6By3$#c#Uw~t|P4;bX zZ;BGpb5vV%u+*dqqd~eXH11!9QY7PI_Lk@`J;f*p9GajNW$^g0M-pyo2ydOD3>t*F z-rtXlE86K*x2Y@2*4vA4#Xc3nv;Yeq;qvwFG<|p4^l9M1u3)SJEK^fzPh@=`wVR zuO*3Ji%|g*{4Pq^`VdNjsE(A@ZJX4NijGvM#jA!L*#E@XJc2(jvDrC1rnr*r>knj{ z!Ed)G_%F>P@NkQ#QwTwGSz|>f_!2%o)>^;*THF ztm!DoWltX>fLgS!Pr+^(1Izd3%q_&nt0)m=qsL_Gp2}Bdm5>34*>*!2A^2EPUh)^U zP4V{irw6eH`%fWOnU?$#&&9EaY$Xu2l8rYc9>);7b2e793PatV3 z9E?6l#;C{dXl1=3&CEwIYFUDLzUbuNo)Lv#ohUdskXTreaYq)#mf*d5OFpBQzjwr&g5G`b~lIvJ+`C#z}INF)>i9e(i1T})n_pZcwD2B6?#Di3XbS9R&Fz1`e6 z9q~UQGau{KqBv9L^lo`DerKwcIE`VozlRSI6k`%M zuf*(g59{pvc{1gB$=i*?yW@rq2V?ALFKEKclMoS5M$iJunD@n&lCl>Th4@Lqn!Mcq z+na&E93ky91we>p5%TS=Hjo=lsKfiPP4qXM{+QMX{Y_Ma4@Jk}?sxn1@gvvA)Yl&U zOBuS!4_TvhwO6h_&)BkWRb2$5fpY3NGHnM4pAmV=6LPxxRzeLp%(CdOL|w4LcKPZb z%pvLGoAXNA({UjsikjSykZ8H*`3XJT7=D} zP0U6dT<*T8p>?sJ2hJus+bUpj(KFAfTCf3?Cg*3D7ZZR_yFj#ELh>Wh$PkBd;Z8aBLV4 z%&99nqGVqM+Oq@_osPMZOoU(SPa;S1+srxCL?xeo1iH z-}bruknxUrXP;NfP5xV80w{5SZUE2-hS1_*Rr0x*#2X#p*n4fDa2gaAF&e)#C8s+e zlc8^o{C53uqiKk5Qa|fKS0~=^a$katTa3YwmJmtl_<37G$K%rp$k(n(=96T#L`&g; zM3kDC$Rav-$bs|Q4FDrlIN964?nWTtaHpk<_t~5YU&$EWw51N4m=V%_2R5YBBl_Xd zax((*atq6q>~v5|@A$M(nWfif2&)a<3)9P5Bp*8EoF2LYv+@Kg;hHj#x2vFFuY0j~ zZ-0EXhp^qzul}wJ6{)(b)Ls5Pi8v^~e*SjDkUCjH^=WLE0iD$-9ywpU6rrT7MC6gm zaeQt@+t(!o9t^I~Y+=shr<9OIKPjr0B_OM)gvhCXhj#RY-ns3$WBe-RqWl@+Mraqm zFH*`DdLWhNrk`|I3qWmjcuD}lAigh|j^~i!A=&=qH=*l>n3Va%0w1*{gP|8~jyAvF zQ_(SLqBhhvW>%%f4Uq;ru<~AzNEavWh!di@%+KSVVB>Hfs6WB z_Xe4Z+Q{jl_tF3S_@m_kJ!B4vv44s2HEKt`K!UHR%~zkq>ytHd!##8e3No)A$mwlt z-F$vxc(_O72(7>txerZl_YM}Ix)B(>37H_Y3bbG}QO{F8HXw2kSda+>aC2n;3n1MsO&S313U+3%M`pz4LN&_0*69s z>7uyo4ujF-P3en!h9XhqQ(krb^8P8&GGapzD-ueE#_toc6Z^uiI*q=jD>n$AqH%vt z1zLF=eWe_lP}h?K62k~A2CXKMu&TVEX|KBPP$nbl7UjIw=jY-beABMw`7_z8Bob)> zeXmdekLC3dmgSwtBJ-}ek?vsUs3A`JjxfundSRPT0eyjkJ3qXp;?TsES|`t^cG5RG znB>^?or`!WT&Jm(8?@0(jMp}J)?^_vb#`G=g+(A>wMKjql+C7=V#Mv&blRK5Q;@l} z_k(*{KSG9R%xZJQ@=Exp$dUbNTOSEAxr#Zu3aPV#j8GfR0ux*GB-P1bXE`VHewUO_ z4O^K;x1N5w%)xe=F&{d}0S5cF{n6lN2o{MAyNXAE&aWC3$xjju6SJ0`(Q!_t&A-6l zh#}~Vs>jaM<>Pbg@dn2WctZJ#G6ICCZ4j$_j7_z%Gt6F2W6VyH`O>`Q_Gd6qsLE-~ z#7DSACCt|pg?cm~d0$HF>VGM^bb$<0NKWbg^gJ8B`)22Yd~plAtBi6$i7TkZwHG_7 zWwdOujDtJaGn%r3u)D-|47`#eNr5OW_fo#bUspqEEikaio|n zMmt6jT*ELm;N!9f2m2Zk%{n|rleRe_E;6J-4V04R>NXcfZ!aykhP*j1!GlYL#;;v?t=6vnjh&nyIHlA;G63 z%$av_<6nty8y*Zaj$q2TM@9(3*G{x^Jj(g`-V*k@w?#=7~FPyJcD}%iQK-pmBuR^Lyj_ z1RbWR(R=tX?@ggQ0mw@Cw|7bRV6JibYe`pS3>S!aI@!J{xtfnr%p#9hG(U)6;Q^vfl} zPPX)l)EDgf+qX1Ht!n#mE{o&_0g|T&NOV&+JkLP#L0^wJV5lW(2=K^KbI4Kfi zvXYv@uwcgY#LwQd5gl9fRUtV7U|^eIfYv;U8iJ@@w!!Yh3kl`skpN1ut2`(m_e+W6 z(shmhn%jJvD8a^So!NII@Crx`YoKAA_@dTB^dp#yI5;vtkwPg zsGx=J9U21Hvcr3eyv8K?>pNFl#I&ART)?X=QGUG0E!W!omEE06G(1evie9o%APE?p z!H#5I z%I}KEg;vMPrnpgUov~}s<}rwj$PfgO#Qo*O%OwdX6($Hu7z80>wivOMJ;HWFIDPiF z#BF#5J~Nt816Zw!v&9x9>-W`WxjiVm+yDq96fk(45@GPgN3rM(nYbQPNBY&2hy{Cs zy9tDuPI%Co#GN8Vo=Esbch&G$#-mlXMjNGj{h!21MtJ$%GuFcjozr~MNtxA_s4(KN zIyB7PFjTRZGcg!4_PwLqUc$y?8$N>M`LF9^*b>2i7DO=N+ z%YPFE1qWpE2CgC17Sbx8@rqWmU$R7C%s)jUM4A>ZpSL1shcO9(!)O969|hwsXq_j3 z{aW12{#}PPUKtC?JL`2)$b9&QE>_nlz#$FMG)~E!t0ZLnY_Jw-rS&CkmXIXT+>+z2 zhwH`RqTLnBOb5$_>}Sq&(n6aObjDxC{&5CBIphjibaS$--TJ-TEi0F8l(n+135e8( zmwu{OfmhxN$_a9R*At@KGa@VT5l-Q=isq<~-$*PH8ri>L)cD!7T&`{J?euoY)QOqZ zegFB)#K6Rt$@_GR^btfr@L1a8IT{rwgBbp^RBU5bH|R?ey?|uwjm&fHuHGR;W+T6r zgVVe?@7fYGea6p25$-O5$!IB>w=ZioXMCIjLPmr1&F({d6bv>Ps2P+6a_#P^(Z)7Y zxP?Dsz|@uG@N(yP8`Z57nB8MmA30!fnKgQX!jFIKOm<6uAt#NjyEzYUyS|f4wopBP zBi7irABp#!%qh+tR@KcefkLIU)Lc+}`}lZRROCD`i0z7|DvjsO({SbP;zO_)R~OH# zb0rn%-TWwkLr3~eUDQ?gB|=iCn#&!|`+l}fho^Pzgskf{Y(n_cHTK|Jo^q#FK?Vj@0tU!6eCkHc&f$KL^V z**B{{mY=O;Hlg?H>!T439EEA_cY`WUcX-5IrGUF<2%gz2=$Mv`n)Pz)Z1Jg zofU}+S=;4?STc3&65E%aDGQ9AbH^3z*oP^-$n@-6MFDS!}eH0+f%#)Xi_+PKin& zP7apqWT2Z9vGiA@vY1H4(dNYl0w2bA5kdS>V5qmV6Xz5r=shmz%-2(;5>HH|n2My< zLs_4H2YtNHz)n!Y31b&ZPH1V*PsD#4_4gVT3WY&s7GL+8DL{y$gQ2dAgn_}-Zptcc z%UH~-u83b6k+X5TpFq5+aN zB6DuH<3YE$c2s-+x;p@7vQLjWbHkU((!dmBK&i+6 z7!qwK8G+>jGpTE|R>JplN@dVPL zfA()-o^B=`I-|k@>t9g6-dVK%S!4jpoe$c_@~c4EzMqEQ2gb~#;!tG6StUVNKIG`; zZcg3#$VJt5j15LrDJ#*^Ys0Ln1hqBvg`zKKB_pKPZ<^D zKQ0fwurL@R0%Ov3NM^fzJG`aQ$*-@%bEHhUC4p_Y{E#9bApX(;U@7RULA>h7T5s=e zjxq&do2|vsId!p>?EREl%MY3dvzar0G#aIY1%rFMk>E)a^!4z~E%nQ{bUVIP;WpGp z+2(REz-_AH*V`OS`?5DiIhcd8uyhcQ*--kJZ(KN;&8MAjLN4VepMjbDyG{33t-s-# z26zb$Id$P+Y%Vhaw>C6!4b0U(U)fnvxtB~cBS&?N8kEF@^-zYVvfaf%=9|%7D4$tQ z>Vq%zAUr;EwvY3Gn50u2z~*?ln$C8n6shbHkI>hMM3md z%aNKi`rXW_OChf!mF;Qhd5+sB1A8GqU*@|uNETLAB@q>n7FHv>Pkyi#=9ZfbV-ytZ z=c^aZQ}rWXb$=3?sS|8@oF*J%={CG5B`xOor)AluF&}bja^BrhlS9p%G~aY$?SRoc zF01s0cpPFS5|VG`-L&u(*s{JT6qG_;W9Q)LnM7-u5KtrQ_;{S!^Nz($>%uZnnqe^9 z8_337d}(R?QtUX$^K;9Ahzlq=ycAyQQ><5zmGT(2GqFRIp3!@#Y2TU#b+eeU8%UC)t@Tt#l#vF6BvTmK**4?AJW*URxz)gS*HW zWKH9XZ#93#`ck)r-<(Leav-)6-tw?Jl@@b_;ibGXw=ppxlgi$z1|9YzJhUadx&3kR zPOdVbZ|L95x8r0#6)-r)T1jdwsSzgkTNUr|?v0MRwm>2ZuYD(3a68l%2H4FUdcJ}g zt?dn49T5iHb!7-RmICIB!?ieH<-AqA5ZgY5^-eWkgOm{I9=PYB6}B*d$0d8gWGi1n zR);W3Lhj>rMRtr<%?~~dv{*=2?m^*<$e@uxF|>M}0qQeK=6rjA>0Z$h=u5bx?T=oL zhUx?%f)m{v$YGAElvT($4RavI5d)>vo7*!xT{-P;)Ec(cJ;bA{ z0Nf5nUF`N86V&O3Bt-d0LT0ydX}yZ5 z(4WnH#j4+e6FA} zf2Y*xpKR~$_JBMaJFSq&)hr1@K(68Ev?_%zIILvSVtIhCxUQ_JbbjrH%=W&+DA+q* z&&joF$pE0Nm~?BB9V~s&qMTR}U4Hoi-%rOzkO6c)UXq!%{P$)%g#;jPlF^Q@jaSZ( zHX~(+?DpJ^X*yq!A>ot`P*~5N{2JQI-Lg;UWPIzYZdz|aI)I7;lOyf=PXx9~)#d8Z ztDtexsMjf<;@3$ekMsUds5g)IBm#{o6F<|s+o4u&)z`{_6K9k58+;X`(edmKOq zz&FcBVwf=O7Yu$BJu2|ic zB{zH{^oIQO5+EFe+)07n%FdpL>AU!o5#AU{%j?AR!RfYb_oqoL02_9s9IgMhe{3oB zFaI+_%V=ZFhxFy*ZI;Aox0uOL^G_MeVKcj9PV4@h$ZA>OxXoM#yb;cRMJ7{AhV_rc zvAu~bF>5|0$m+@UzO>*e|BPnhFLsE40Nqg+@@mlquqfHHkCiHtjH#_6l`0@mfV_@- zi;~e6?AxJUCg;f&=3KE(UbaOCcpQO4ccn+JEJZ&S8t+bMQK{yt*b9Y4z8U$Cfkr?< z=R7N66=B$qu*bg=7r})al7%)=3nQ_mF~?u_g&Y65Z@KsINLC7Gx5xhl5C+&JKNHwM z0is+oK3h}g>|qLOJ+|Olc(_~vp~iN(shLPxg{2)%-nh1;v~wm{S+%af=)ldd%6;9< z#F%^~Ghe1s0Uk!cv*GaXNpk8{__OrUb>%0C1DiGH zIbao6R_&@diNs@S)ZOzbHIleRylCTo4b*aG&KQ;%7J?||lmi_={7<%FC zu>ayd{)1I^CPTgR@MG}TS+0(sga+CVSS*><;2Aw3MD5Z)&^c`QB8R!!IqYh@%vuz- zK*3wc?p=P4VZDUMG-DpDI3Z87*Hua%IsNb~JT8-=z=o|~J(ajfa(z)JIw_|fTdz(uc6c^F@>5$P0DMxI$d)BaFtJru z?Et!=Xh#kjfEwHi@t60AId}x|zk!rarGF^R2h%H}Arm4j_97ec{u6FmeL$CfW&xd3 zL&jL=Ht=<5xN3tz5>&Qa%Q186XEA#DBw+gWc6(s}kmxrs|7=E_=N=Xrrcqo!`l20` z&lzinKLtV&8kt;eT)$Yf)Q{yJf3iEtOEF(QFFE8cyXSsVY@e`UeNqAKidh*eVN&Nx z=Z;MT$J@{Au5J>C0$R#aHEx) zzXO@r=nci3pNlT$T20uMfTd*u@{rjdvo~K8$c4~KHfYsDy2UMbD%%v#z+D{c3^INl z%V)|Lg2=$Y;~!1<=lH%BI@pnz+pV-2ud-TX=0)sILH3K^2V;ekq6M`LK1C?0d~mzl zKs{7{9%l!ULmQ#ae1oOQ@ZdqM89XSv8Fz^FDY(ewDo=V%VqhgOVAf&Sb7i)f{|vZ* zlONpU$=;nuNZPOOVfPt?7pX(lg$e7C_+S5SZL2fNDsM?V6FRALIV#JD-sNFA6)t8p zT()*P_)V5LpZg<6AjnZ_kEaKox#z&`k3EnhijkPbK6UJJ1)VK%hir3Bxb9D&Gas`z zM*GZPG&{sj+A6}tEI^>~4z&sT#xYPBTPWGUe#0qSq`I4I6RRhW3n>7D8>Tq_?Yf>A zX`^V6u>Qdn@JbB5hKnrDmsu340C{Misz51wBDwMz(5B-WNfJ?G^cPs9Pa0_n%0v_d zZC#)-1dpuwY5*c%(kx4tkAH{vpskez;}I2(BNkc6CrP}umq7L=ZMIu@!to3jIrY`B zC}|5_nH2ti)CB*?FKGTNbTJ-nqH^bW1Mw=I)1pQYPecKIyP!d+2%DxH#6M2{iZc(R zR4%E-KFf~{S!0ZZ6s&oln|9k3W&&=z6*@Kcj3`6$Wp{4^{&`t8`j_fU-QKU>GVXK7 z&E_&?*vs=ke48)=p(p-x?L9<=V4OMH@zsY71FG@n$xBA(3~qJ>bDDd04r%sZOk2^? zGPrBAHx{I1cWJk|#WONs*t;2G!-%ZfVTE!F1;WA~f}}tk>5C2lYm0ZHAD9O>$NgcyzsL%aZp1U!P;MZ8dD+6J?7j2%CQ%%&a6ps3|4D^*X~)av(vr-(>d;r{>c^6rGWhlu;2PK9a73To zZeAXm*A!1HR+$08rPEQ;xWzI|{Hxg8!=r$6Mj{2;p4wQ4oOiOH3GrKgg{4{HveFRu z)uUFDMP7O^`eURq7~BARW-kddseQHV#Q8%r8T$*r51ByVGcMtu!v@`(fSQhRuB3r3 zrXIhH`E|LreJs3@bj-=h!*Ezojz0hSqi1&$pjzUusv$`bTpI&h9I* zu*I0-Rk%2TV`_eMi&oJSOY2DCHjM1m_Q*q|?WRwb&v_-^S!{rmR?wZSaV*|kF6y6u zqH@N~qR^%qj9a^9%qqY^f(rjtU$UdUwBzQjFugFcb={>i2h^oHpYC(KrEI~+9gK+!n3Wr#z*Z8~wZ z>|4694+5>JOvRvnwJ~4SBva`Lf+ggw5DNWCQkR5zpYyFN*+F26i$6x9z0T>+*FH&; z=+0G6)Cb}p9vU3WSk1V#qjQf2)P|#>Gq3UP5&hQ-U_aXy=wGGwI3B}pjCDu3s;ogN zDM>wd9!O>|dYy}B<=3Qu!_e7fpH83P;dHJcEXz%+Yu8Yj2U5!Evg_IKxv1RdmGOtN z0bW7|ApK_xJch9j2lL$(uv!}PL|Z*rC8Otjl@C6?&*}PDXlD^bm(=42cD<_O94bj+-%c9-u_r2} zqXIOzU?+;YZNc)rduhe|LqDYdsK2Rn}BlBBJdOXgxZotgN50Ek=q_|9fk*oi?- zLvO+$u%$b?6!R1=~pY4X;_bal)zzcV$Kddq5Ba4 z-~ktlmwOsvsR_U0;Be!`g%8t`mOD^4U_0v+g!&$H%+U6Oy9Y$^!WH9EYio^Pa0$n- zPJWycVptVuBw#6gO=J)hS+vq=PF<>um8>(AoyOZai1xzo=Hi3bLeFhV5MgJ$5uTr5 zwHGO?sPIjX4Ihc5R}@aK$S;Z7%+0^F>8vgi$_?nmGmoY@p|)^i6lNe!PAaalIzI16 z#u8M}J99S>RFbDyIC|j-GMXxT7*;=bi z5OmY(qo82+J>OAuCHqh+AmPYjIKxF@a{A*Qz)!02@r+VLj(x)WeKK(RRg2I+aADRE zS_an<1r92P+mUX$J1;(^X$`>{B8G)P4-)WUOwJdg{5g2|pxo}#390gLJ?_5my8zAC zI~on(e_elg_qhFF^d2oaa>%iIw$yvC$#u|xRn?Obwr7n3GJVV0;+sRXOEwccTuil4 zPxFdM2W@nx%HQdf zCkP-dKaTqF#$~*2D8i@e2-r{l;MgzcsQn#OvFmlZgy1br)!{4nlRG;{fCFRsL3ao6 zKB$VVLyTEzk650^;a6mFTFCXEMNJUXk!#R-$l&aN!opI|(6>U;@2UR1avdXAF=dUW zFwh$}H-*dR8Mne52H-CO+2s$xHZ2^sU#i$`dKq0d+(fqA;+|1oOm9B!ex9_wO{yk= zr>{6J-UAE?6s5qxd&&L7zn78SiIBixIF!Wea72tSa)3+Ocjz02heV(Z7|22snp>1| zOn1*w2WWO2!PQ3mK?uShWzP%Z9jL8Or#58dDhLZB;_l7P#CiQ8{Q1$}RnGN|$(+98 z=!;qG1wo0(u5^0}X>_A#c>A`nWKQo~9R_EiF@6qy{Y#Q=LzS7tR%bDt8GAp_o3FDi zuAZd-CCpQlK1jJg8+aPy5+}2B{XsbZofSgHpCOMX-#G zcifz7>^7n4rC9A6ybV=9g}7+$eD5p@5ZV?AQzji#*Ln2R&fwmChbe^xQUVwxME!$& zg*gYTOxFeXFKdDYdH*Y&t$OEy%-gQz?gA?at2CfJV_oJb2Ha=;WKaOpS%7jZD>glc zEfb|Toz&1ZY@UJkI?R+N<{0g0kP;kYHru?G)lkS-tKkr@%Xy_rqCTJb{N4>2cOC$T z?5!5+s^unj$)$AN%5pvM<(5)=C;HcsO+aKDL$u|CCUkD)rFHCTG%C$l9nK`Y+cBb* ztcXn5UB&xWJ9`n0!&c^xcf9d&x>-dnl7buq4bw?F8y_j}`kF*;fr=J%eEpdD>+Xx^(96+Y| z)BZVA@rsDbXg0WcH2qc7O@$JxS40KFx2;>{3tN;JM#h(Iw}VFXLgb$}d`QIE2U_YN zyD+7jtZsf|6s!H9m58I^RQaErD$8fpHf%!lYhZXM&GJxDok zdwFl)Q>nPc$I1QekM&#Pz^fy~++q_LoMQ1eI8!k-**-+6KuFo0BL~{Pf#3NAzA~Ra zBe5B67fz=~(H#Wo0dgg{mJYqiJ}Kq0y-&G6%e9~Oq+IpN-djjg^ADTmSQtnWEYt*L zr4&2Taky4yW6aDvrjXXlSFAfVwZSe74fwwXobOcH+0bNPz#|#5d*4d_`v;8-(0KJEPO`~MX)%@Eu%+I7=-K=!^w%eKA`;kp zCL+)6EdY9C3kdh{tdZ|eu47gKAFwKNL_=uKn+tI1l8)TuAWjT?;>aoec->~j&Gy8 zhU%_1OLB+}O0Q?Tyyz@^cP(!y83#zv1);VN0V^P35t5YZK^I`SlG9=I(zu3JZ8KYw zOR6R7I{FeE-nS<|5J4HpF@MBobq23sJgaA*;AIRlod*K0JwZw-%#MEbsY;UD3ib~Y z@cY@@olIgCPYVtso4%Lo4{?2leD<2)(VAL%m|RvAkloq(OK*1YcIXrWJzX=iIZ!TCz_IV(?;L2C-icEKUC|95*rd5() zSpkPzoqMNy>%A)nQ|u!GKqc}hEtOtv2mj!5h~5G{k2<@Ntk>g~6*&USI?0S{BGa~t zcTuw$@rFQ!^(cbnO&84=FDRHn{SBIr6YtAi63Oudy}=;)qNi{|b628aJQS{`W;!ew z!tSl%z?JLX)&KDX?9JS?np~WUxN%@W+ul7NR*7P+{%sjBPx-DlGTM#g)-JE0*?<%! zeO9whf;#+b$cy&w$N=Ln%m75!O9Vh_Og^!Jo{_LS^vC8^OFksBh)sLObmyX=^5q+E zr`hR@;RC-HxuD*1$QpeNprt24m_F0EMG^^upj^7xy!^!J;O>|tGD;w4=&goiXivX--BLl~UO7^dzS&o_tn&P;*U$fiJ{K^i8o7d3zo1IWm z5k*9*UHeuI*xI~Gn9_{mrAZTb589+nNUwIjC#OA|G7f!VV8F7>11<{4$$=s-CTMdN zezQCq@N7cBQxpbY7{G6TI^}U*xjg0YJo&}5PQe}Yc#{shRaY{a8bq$ZvJRn>>1}?P zDkglG)saH*ttWgNiZjJtyE`QaET~(4NG#0ZavWvg7auTbYL3W@Ydc~{k8HOLUpaQ*8cdS)23$#@)KGGZ95c;eyAnS#|@=1 z!VItkjQI4?ur*EpX5R}w5oof*UdFNFRmA`*pkGg`9QQs7;iaLYgVa2t%utGn_c zDqK%{pSGc}`_-)7l}`68CCt{VKEdQIgK;CL+r|Ys>~6G!4j)w>W+<10}@c5tS<1`_y; zc>w15F~(1_$2)R0&Oth)Sde4PmJ}*gkel1oSlEg(moR5Z9+CVNj?O^WJd~@;I(^A< z?Q1i5o?vvbbZ^%37p|Z>B>F78mMcpI?)6OWb{KLk5FdUYeR%gq_lO9Pxq)1^TM=KO zrx>qkBf*a-XwBV6Z^;WCKf1g_rT7|c!dY}rjuB{~3ycfGHHEz{Wrqx3W1g1j%osnD zy-LB$H<%*#zYs@Zi6A}z6pi2xQ)Jlr-^i@9fz`KkQY+e&1 z%-PJq>w^nNfe4562k|wo3N#}JLA29#BW?yq?fJj*=$VlXk5T0|=KuVh-TM79a%yOF zC=~QL6gk1;7GFaW(l9wL+ZC#t7c8#Q6fp|ZsR(0L1J%U#Iz>KM;xnV9rYiSo0(aST zH=(%=lyCB`v=v%2@{*;Y-7_s%cd2*Rww!4REZ2eQO)y!K;f*@33FK!NHvg}^ziz+bg_5~VX zR4<00KZ7KF|GjL)k&%!>tuJrEi%=-!uSfV9DkGP_vy>X=>zqTZ@k!<_{T-$!=bZ#uFX97BzKi(5?xA`}N=2ipr!L*wH`3i=HJ80U=6 zHy52u;dZalirdwwP)7*_`4py!2Y#MM%7=u zX<-#*IHt*1+Kc39Ajt~~)pnO8QGiDH5drJWKR>h~p~!PLIN8HF!GJh5Yl5nh>}kw( zRa!2wCOTR|JgZCQ!a7O&d%YSS2nn+`=C_3{_TndUP3{*Na@K34kGiAD>O`+=Ydqw` zaJz<981QgevJETeAm8j`#foL6t=QdJ{o7wR%r`Oa`qeK?fcQc(*vNeel{5VwiIng~ zv|HZgZL?t=Rkn`Ig2TK0kbz?r=Ed`R%$NXQd4xh;GL2RJk>}NknLGF`Cc3w>;Zkzf zC*&qmsKH-veRe_MQ`IF%8Je&#UDqpu9zP2Mk@Sg=nCFl7e6rK8lv%CzMbT1xkawA( zyw8{r&7eX4ZfFqm%pS)TXT`OaTo~8L`#s~knym{DAx!nQe$sVY z1_l2v^lvj&TFaq7oSzhCvEl^guK7G#Xdg-4LjsJwOCdvHFgGMG29+(j5L#PwboBNb~e&_BWZ zQD=iF$;dCHF<;0>KllgCx>+P|I4rm?)On07A=`vy2VarC)er5(9a%;*J74z@7yyFE zSN#FgJkA+yLY4F%zM7##6Y^lqPr;M<3VcO3T)cJMzF3;7SN|KjzoL<(XOI-sZ5PPwFQcTI+W)6I(r8{*8Qf^NP zSurriJ%=~ha<7KFKVsOx4L3#W(H-Q4T8wXDWPWuOT68{=k(D*-a-QRYS8M8d_kzCu zYo;d=wJ7?~2qFBuQici$JC5#X@7Iatxe`OX0*;Nl@C#*Syx1FURZ8!tEh#5vpUeVv zyO>D=Eo!no*%N9AHBtebZyIt^K5h`hC>qJF&ACuBp`A%Y%yuo$u;(BTCcoFY%#8Ml zE-%kfNst}0@0)qPyTsQEdr?P#*7jt_)1&TgvG5sg#&j;dvXIjsm$-{(VM`NavEHgN zTdZp<7;H!{xEmv%_O1Mak-_#xFEG&z&A>o)!43nd3>t;>0Z`#gdin{J?g;t5*%70mXakH!ic{${u62BfGa4Eyw`Cg zy>33hSiSsA@5OpnuR{2fY9SW zlg!Qn%mbN0h?;f(^&|~>;vdV&nf!Ud|DlOq?*si z2o`o2-6aRj;JG<@zQXZ@tAQ=Dj$+PWR)IX>E#l7X`vjL|iYF{Wm9 zs(W)5d$G`CZGR61KP#`ILP2PNbt#R+Engu7=_5LmU0OP(HfK$wh#@78&(CV-c#Eq2 zpl+|hD=xEuVJMKo}q(3xgH#;;*!X5&ep39d z`72rJUpe4^QbB&C#tcZ6fcuPiuOtUur5gnxuzub;iQv7czS zy|~h{gt@Bs_CEKHfcC^9s6c&fA&Hjg(${ z=(Z78wx4y;pF|n`pmUkdNv2U;t=V^~$>ec-%Jsmb$DSp5tAg3-x9W~xN*wbaX`$w0 z3-xd^>TQT(+g52HQ=`7Y4O<94N2#3F=wX_5kZ1e94EX;&J+LrygQ^8h(7R4KDr;zn zdLmWUf5<{g|9h#~5tO!MLDv#7l;X6Ug7Pxw^H1|5`Gb4Z|76nstWh64bt5;>S2xjV zHOr*wFE&8W8j!m4WC9BV)&5QlED+VC^Fti+Pj2mB+j6kq^QVzJU968MNg`fvn8X{@+dhm0~d?0(lcNBKc_H`|Ix9AzDAf zmi*78KQMdd)KF)da~~5UvxDJ?;T+|o0I!nH7sI*!sA%t+IL9}JFqxuXmLGo ze*JHW@y`HnR`C=1Z+v#Oz(!5kB`5lKYWM!A-^GAOwSGmG|M0$sG$GLse4#BPFI8bF zW1e?D{z3_-;VzN91yk56U9j^|$7TVYFV95%1Wa!r?Hnf-mOD)6PHnRN}?{^Bv*$5 z|NF&7a%ldRNVR0#5<5vGPV4&)EWdvRmx&J)10SLa1@;g_P$Y}z#7R^7hpCD-DMVw- zSIFgDa@F%*YIvB-SS8y>;qUvWA?y^br}%-Nx8LZTXEL4KUty^7{txRGgmyyrOo`Nh3I`lZS_4DplC( zbpA6|*g$gL1wq~{^-op#-{Mk+_`SHa#!|p-{TrS9ekxcH*J%Ro;CuVx&mO~c+@@Ux z*sU=G2rX)x`u%?A^3EIFQ8;c?H>VsBUqVToF0Fz{DsBEg@x&iQpfJ$l+WPxu8`0j& z0nMBWYv4Kkh$iUY%Uk*k=9K@L1^i0_?~kyjeI)+=2$aN#6V~LLo#R1*LWQwdz*0!f zlge;vUlS-PBz(;V#Ska_(Q`b%>t%1M>&M#Ug_0J{gVX;DF=VX8Ma;Pi;C`LI_<@g| z19i4m`Wt^CggHSWAshKk|GTOz!oL^KTzi^grNGOa1I~=|`6ytKDzmc#9((=Lg>2Bh z#+KME#?3!~+#vbw{!|BI@{3mtcRj>*sPkM-(PIAJXQBBBqC39I%y_ICA-5jIRbdPCWc0LfwCU?iJ!-m@_Q=HfHzMPDZlR5VlO#tf6cJNdsB#tJoH zc(bxtCr5_B?(UgyS|NxxQf6L!C#lcc;J2DbEH3AK zTx0^9yDNN7H12UpBXj8G1(&LJx)l0(g)S3tq;*#7^2foU$;=vu1icTVWog03x%(!j zd%_uWsim~agUbPXi0PUTpeIYN?=y4z1c^WMSf}K3kPGjd2z_C8Wogxd1RJ{UrQMZS zJ8Tf;v&86lMp`9>Czsga#Oi9R6ffP^^1O&)#ZqovlV2S)z8ds9B29k#J*!z9`2M)4UOqX^qU_&O3~n& zEB`Oa9<&IlMNy!X5-b`!E&9kX;xw6u$9+@vzfnJp1Qi&d?jZ{bdr)-UR(n7%DKQ{x z!_0Z?0+?aw$6_|iKe^10`o60UL@XQHY^QrX$Xkc@_AFp%5eymO34W?w_+ES{& zy!CGI{op{!CRQ^=FMBbaMln0Ny`$i?`8n(J;&6kc*W+k*?v&2*%JzAm&uno$G?zVpE?(US7W>eCg5-KU(-6;*5Zb3Svq@_!` zyOHir*?@H2zdq;O_dVy1`-#C9#@MX2*ZkF-GYx7tfM~}%&RE61W|(lvhU7v>R{VL+ z8VY}-x_tE-15oHK${y|RM!HKXjYXc~#Z=*9HPnVw;Hcdh7wT>%@YDyMy1~@4h=B7`qfiT|IP9$(1AfDqUn5xjUcDn3R6TAb98F>dw?(2IbV`O zzOh%6=pYVmP2^l~A)#YR_y#gEU9nWGJcV~pZFNxd0dYmRWPwQgm#~11Ct2nL`)Q&;nqwC62CZhv0HZ7HOU8@b zvHSCybw>repS~|xYrU_9oi2OrwaioAXO@rJAFo8Xb2oKmFe;!0UR^Y8t~GfkFn={y zd(YJOb1_B2`>k|wZAOV^T(#<)C1PQc!b;;=Fx0tbhG!Ly>;MJ^|2#R%zypHv=Y6Og z20DpOdR`gn?H{u0MEzXeQN-3pe+*c-Bm@uk&gMY;J8e4Fliahq2 zDSpuZLHOyzf7F{lFBThNV0G|Wp7e}9VLr$^gfbS^2&w>DqqJ_|K_v0Z#5cdYSo z>PXhMnT;Hznh%$KKgGf}RKBx3<0zH*5RlpnTlX^fZgh8gv%(?H5to>L_Z{ilvu^Sb zb8Z{rloggvvcspgsT=gptMQ44|r@qsJlk_Z|91sTSW8 z9FZ1(Qe$O^TqJ8wD_P3PPrya&pua)-*`rv<8T<<`1aD$I+Z540C@rUR=QDoBS`nqk z%UNOMM{-gupU`ONi^{=~RS{AKckl7a;!5GWW%AGEEEwRl*O^rHrAOvnP-7Tqx zAkc$YGOtOl&hQmlXy&Je-#Uc9GmJ6Ud7AIXAyLv2kyVZbW8r?=6m+L)PWcD}Snr}f zV&=o4r6$s5R%N21Z=n9`^KUo<0%gxGP4Vtu>~9GJqhwA*26L!MNXhakD}PORz_M$Esfhv`azhT4*J%Ut>GX_@ z5QWL>EK71UcgPR5POj)cl7GDK7K1zn_F#?@c?_sCfa+w!(FBRKCN$L-KtK3QCvCs( zb_|y~7ZZQrEs%>E-<};Jmx9iWt8RR+qmhjTPZR6+{>%%6F)XEJ#cp;a_@Wyd1Bv=3 z?C}#BeMN=6ky z?X43-Q?wDftP#P=V7z=`B~b*Qr0 zbC$mVe(MU_9O%dU+4`?PjxJ?r*#V!FkRf-deQsP}Z^$`jE=Ki=gKX`B{kB*C z-}G0lvkI}ZmIIfz!|*{E-Du_&c3%Fu=yb9#WsghyuZtLJP!)4eK?0^iDvG9sfwM>G zw4`@l5KZ1=9;j@uR=jvEvLRpP(Xc)Tec>s%2sdm1^@Nu!`$Snarx-4c21jO2L-HSOB8IIO`U~=RRVz}7n zJL%@8eQeF#H|JhU6z9lx!Vt_$wmVZC$@mwfbdD4Kqp*8jy*G+lG0`VdOQcWmr=mZi z0r1Fb_Q;u&C3Hl+_0XM3W1{)4H^IS?{B7KpljIIJQDc~sFm8h^x#oRoB$=~lU4 zPD&~EpX}7}x*o92SI=1gIy-7oADiX@3Z3Mz*s4VeJBLGSU__5{bnAuToYNSPS2v>biRH3{vY|5Gb)fYqw_t+#-KxSO> zAr7@vQ4|)$s34FIgBV4XNV@I7T?bT3kY`-`irX}_+b}sW&32;m-m-}y#ftlq$N@Y!h|scJkqI>61@4!KK~qwLH^O{?L&Ud zU(oGX@rNYUOXx2Hmm#nL{HF%GH!L@rl(m+e7{-52`-*k2E{TNxny*7%noe5-pLAZb z^$nt`foCO9VB{%OZhmdu{W{)-p?z=%vv{^GBB7sXuk%^rgd>qN0tBE~E;>X9R$P38 zzmML&4uw=rBVEO5NRW|-c5d2(*PK259_7xf<-HoGn(j2)n+$A8y;h0IeR;^OgKWv6 zcAkP0)!s*@0fguH0OXx@H>!~9bY(qXAx65@ovsNZlvsLOD#~bIsMagJ%x2|c62sAy zcRW?DgZ-hDvxr)`)K$wIq_Q?=!{dtI!VfCh6?41DXuvl6@wAuX8$^Nev`Us*sFDvQ zv%#V~Xgx0>QHJ&(81xyA3Hj501ow`YBnG28rb`I7xD_Q@d1f_UB?bMQVgOg_fGR+&cbf)mkezC>vYi)xd)SiR7CS18aNpFP36(P zw_F?cSKY%HTngNM$+NEB-spg|@r~s?!o-jZeH_G16QDboz$hNf%!@?P4QM(9yp0m5 zo$&l(2JZcW=CWiJ091aR{0CH$#6aOLk_oycTU1nYggr2^4RyJ+Uxh_-#YQy>ZZr-J zO}+0Q&8<=pn`9aA~$3WqNsi~xc0K7?lbxX+^afQVE2&)`U0RQy ziR$L?O7q|s^n#5d#3nH{s>LN~A{QZiTrAp$%Zwu| zHmH2A+lL_N)L+>RLpS$i?mPy28qu#iYDtOsyY%?WFvhyH;*}zusS?j>-rbuQCNwAd zM@_W5GP=jb)Ja$0rg zQ2g)~`F$4{{M;sSC^e0&gT9MF4}$nC2r=yaVBY{1!|%1H4|L`zSaRg$F8{3pAPi`F z#8^r{_PYn74+Rj6u24UEo+M2?YNbgEp&Ly#`>w@)^|c`9%a+I@Z_N1DMZunY$!}WR zd%V-g@xPc)trgP|t$VN*H!k7-Q?&xq0dXpqp5|Wf?-j8DL$ULtW42+hF&7gG_ zLB6AvjC?O>6=5F!E+GL`t{W(Ju7O8g62%(P6re(J)>qjg$hK=>uD(whcLL>z^L%c< z-;OC;a_|n85~CKi(VGSW9`4u3a|E+pI^tR_yV~5a2YeBq?~Jw(9v=?#W;#qK6@&wGf=~#TS{;bHom!FAk>2wsPZ>1=3ocbYXV_>iHSN>t!ut0L^C)*W{ze71 z9;#vk>tQ%gBOf0>Q|q#jm##IfA)&86bz4ps=gi!bQ|e#%{OlF)_*()d@!$~PCcgH~ z7$914PntVn;D7n3itw&Sf649OeMYXoErG4L;OS{5WV}9rKK4<-iKuw|yRxZ;#gU;O z_SDVtdOmuKsI|E8+&>lPE7I&AVV(zj>g+#(?mQZ_2a98E^vz*iPZFGS%D<>n;NBl` zJ7!>ZtPs^rHWfPgd>;=gBm^7Qo}N;LAyPj48?0=Knw3{z;TFr_t_x8ZmnYAX0_&Ga zj)HX`PD@1B%OXbbyKw#s^j2;~R!PSIaYLyER#3qi(inQ$uSZKkh5axGGDY>L{yan93fyhkqOcr3r&qhRqaYmj8G`bHnjIa4r zKJe1SvQ(pu$yqY?o7Ea$3Idyg48GPGPO}>U@p-~hq@SfHoe&-oiD)t> z8F=L3%66$$MpDC#2i7vO2GUjq>ld})b+VPU0&u8?8*_avaCVcS*iAHG1c%VJ<>U12-ZpTioz!#-{3pk|G`V==J+Eg>BYCgL5(o?z zB#Y4>$rYn>0R$(O8bH2h6oH*QQY$XRdtS^aL=^XtOMfqv5)YRiqr;%}f%Kg^Z#T;c zKZLyu3k#jeVzejn6Nm5Mcl-7yr)PsuBYzm_9Dcan;CaTo6(bY(vUp?-L`Y#F4#_=S zbcz#Du94>1yDc{!4LJ0n4g_=jG3pc2-qY-RXzuv4^l;;l+}27 zts~hALH$A%j?dd-O;@QIM|>eFq0GVS*+l9)^7?dAT$2(^* z4|B(kVBc=+qMYT%I>>KrkKo(Znk%6DW?6~lq~SOZ&#cB?bXMy$Zu^2qo(wX^(jO)e zN3g%=aYi6JkP!s+=%z|y@O*16v5QZ}V#}w`O+rSW8F)(X$M}&LOG}2As4N*oFCWeV zIAaKAV`YDEX=lCUMkE$VKiZGr@$KD9tu1qAwy|dS{F&sxiopM)H$qEyq5$5eFeVKw zJBZJ$YoWA;_dWy}-B!vB^XctFvV_LVsf_$i;|GZztU*rp^lOx>lcku*$Ox3knj=s; zUFI4(*T4W|C%QowUM3{8#|gX6dM0Db%zkK6i8Oj027CelVAEi0rIAr=p1>#B4lC8? zdoH)jLzSp+9S9PVo^F=0d?bY|Ki?sv3;#g-eEdo4Knt1pT|iWTNzt-GTC;o|{{D;H z#XK}=V2?5R5XxF#iQ)$5eOX;-ESChTc38U zkVm7xjJuw3O_nluA(mnlb`~{(G=&aTf|cBuV6xQV@1?N}X?-bmF&{^nS%wQ15;Js0 zAL4_vxUT{v6mQsqcW?NLHqgu@t|A_Wc1SfEo1yX~UFd<2yEVvr@BVa&vwba?;R@qH7FOEOz@f+^8f(mYVR}

s(I`;5|rVE_6@nR);eK_Mn#tNloB6h|BCS6bl%mG>AMdW^#WINvC zSx`92kW@o#*c$lwM;j_E1pq(Mk{=kxcT`Q0)V0Qb)Vee9$C^$w@xQ ze>iFf#(QFTjBJbs?>3WsZx!hTiU((6li*hC>fLUtZ0 z1)CSmxox#7%9(4q3P^wt5NWcz$Jdu?S_?xexX3t1;ZII=Hj(`US}$z698$!H_EZ@F zby8a4FOhk<{*$=`9I6vv7fD`T=RA-p+UY1dYVNO{MJvn@2Jk}ZDGsgvU@13&h_jD= zu}h28ztNFE*&IIi4|l4*KqVm3EsDLPb2~qLJ=VhiNt~QstDzDvHy5?4`7{($?3T#L zWsoJsAV`kzdo>VhlwUgbJwy+a4o zD++MvK6r3Q3fhk$UF4S&7AHbHw_kp|9?m6O4XT3pGGk zliQHGaCF1EVi@n7_n?;hf?RYHz<+~@nh@ik|HqvB7W<>`or<|K_QffUCZXsNDF^tZ zjJC(|Hjmq?=rAm+LsqNGf%R^TluRL7o&!~|99PVuwXPZ zCOfOw3B?4Ax^@tO9m+gtEr7EywMDK?2!eeW{U-h1AXi@)hUwx~gps~Aa1trO&5VI} zrCQv3Wl|dgMITS~EJJ$Z1J|SNmt_`>_?;j(Q23r0H~E{roN=%Uev(wiNYtGU@baQJ zf1Jhj5z4Z>Y&WAqZB?TkmA8BKqvkW*`2JuZ?&fJa8#8{GaYtEJ^(RcyX@a-jG4@Cu zh+5cag*H}Ka~{304dW7_uqld`93SX1R&wB*{KhyZ(gv%oM>6WsJQXa9BXo~%?O%bC zf~!7%$%xqh$mw=ssWMK5?%CAU86hX?!*bt?;TiKnkbT6EA;b?DhsAzyL8Fs_Zx#h- z0^%3z9ET;Za7f++8O|)$mk}j5pNqXDaD;ZS$}E?OTXLAZ59J^`Z8{?gD~n z^ZoROHKbkl5)O&7B|ZA>$JYxj14N%5f9)D)iYDNx_&>T5sMl3t>3%!@p20Zp*?iM0 zaFgJ@{dfn+2WDnLC#^Fd-eoiFNYD#|zO1NH<_1>AolBlU=WYrkqt;zcV%7mwjZPbH zM>GgvoCyeF(F77OVFiPu^6^!~?fR>^K}IwTz^ooZaOrJZv67>&lCoh4xFr9K8ZjO# zQV|($c*c2!v_KlO5ktas8Mhv1;;E6Taf2lrH5+6-S%Cyyi*@6ya&)u}?Tkn*^%h>j zWC1qChdF=?7FUAb2Ro6Z;lw~<#NVex;}(?;1kncKK0qB6JN^?es5thqa`@kcv*|nb z!DLtL3RY3_ZVailQ1f@_sjh!>bvZZ^Ny`nbg?2678>vTkm!l(c2|${{=+VOTT%cF& zO`zkLP20(G+3-!nP=~v22hr=_8t`AivmD@Njf}#J8}Vc*$GnpDbokM;;7((OxFzAh zLy(&tUvB<4;vCVIwXH%~6kI*R^qPS1Q9o)WNax&>NULW2~D zV7C(Ex<~xr3oYo7s5^`9M9~s*g%*nDfwZDwlqKyPx^kCF?GbSyCgYBM3awmJ`jZwV z*EKzROiMdat~)gorUp7pfJqE5yvNDrP^+7sDE>sMCZ{bLlhVLUddYBmLIMlsTU?vE zkpBDW8K-AWtTJ<5IFqivMbgjDMTe#eaMjgGiSj=;d4Q}8hx%r^K%%=$t4*R~MOGL| zS#U6S^S0ipt4@;id3V?VB9lXr@-L7zeeLtx{5bmvkRm$!KZ=6?=?h@q( zYxoz>xqQPeKhUVTuVs8?b1FX7nQOAH)0HbCB7)But53=tf=3qI4&dmLorN?VU33e3 zZx~;`&px8t%3V(H$Hp2j>|eMM-+qM6?c&#`_c(XyLIjiX?zHefi1qdBBZ+y1SS6u5 zOA>T5CT-shl`bmTTPl^tO&Z4Sb9V%@q~F8gxgr((DE$5NMrEj_vo`_LxZ`kj=eERz z|C&$eC2@!B`j`hOm#bkORD_Xlg%n=%wlSBYt~72o`8lLrvBfsOv;IVI8vTfO#wjRm zRgj^=h)4aa(63EG`inK--iuW|C>@#7A!xRSMHBlljAc8sGkhM)*%-}J;uU>jKywVoW10%fV{~h&@ivRVPAPm(~Z7EcYh0 z>f&VtAf^0Q3`s|XzFuNu8~c{`+4l9e#pUc8ueB9$4`Q$`>4h=R`ZHKI>cYslN#PeB zQiV6YIGxiqszQikwZqSzQ;yzx+fu;=-oE4@x=& zvtqc)$zr%TZ1OpZ1ErztCqar{#{;eoD!Wgu2Qz75QM6x@d8cO=MJ&(50J`bESx?n1 zFWQ`I5p~{;}muJNr&1kvy&K zqbUuX0iO~$z5#8Xt7D;*l3$ejo6hTJx1_^u ztOz}exY9?CbCmE*NQ_)q5EGyhtU1uBq!sCibb{oHveY^5g-OIjG7k3FG_0?=PAY>&%y1 z@X#;h^bQrUNPuveB;7W#PQzy58_D+BpE+}N>vEQI%5QW1+1dt}U!izAPNYNNvZXzS ztBi5;4|`rl``nCZ&N&YA%Ue@FzsC&n#P$0aHTLgW0CvQ0L=*pXeW{1AdB%Q=()G2{ z4&3E;sG|q?x`UA|09RN|HaM00YoGcL(FN^rxO zD5Wf9d@=tG1m;Dk>hSY^nNZE);}vR`?%u6d`CU520V=`10nvC0lPViM}9hbf;oKWB6EZ9dmbW{6u*SO7UMyE zmgGZLoWjt8)OJ)c1_LHwpi2!S`3H?;W8JGnH8yF>4Hs?}*90t*Pp*eF3Mc?#|itLDtN9<{nN~paLenS;#BCjgPN9cP_JEW zPGZ>8_rWu(!+S!OePA4w*>74ZO%dv=$MBn^Gv0QZ<-M1tM{>SaDj{)Y#Uauh_QVyBMJ`Lb^|i|tMx~r4gWA^w-_kW;m_|e)VkAFA#-4j%5O5X zoj{Kgry*U?TgV69>T@@ii~WW2uo%XuO>I%9UZ0Esn_nx#`fErGs)>L&{%ul!1}uby zgXG{ZxurEjMiS6AZ}X|3rrJvDrSI0)mnbwR+t`&CPuk~b_cytO8WFk-%h+1W0Dn5@ zh!9le(Ih8BI)axgT-zu_I>%oQO$s_v;5?U&f8mL;FxR`&8Sw*h0_7OHlkut)=E2^Q z{T`raj#e#$+G6w6k*ZG!z(1V(+{?2;x#3M5i+l&&mJ1NVx?`$fY@V%cYcByhlSk!bv4P5NKzDk&4;Ad*81zZ{m~8zpT2>A@)OmL zYN*%5p_}>qGLPvf8yDJx1@yTB5js#Rw$<9iJrcUoppoQV<*$34Br6=1oPxOaChV-H z@cl7bkpG2bd~Ri@%NZ?lm&q@^IJV$}_P&>|0pEq4^cbc@#SjJq;MzIQ-6nPLNNll5 zlsXXKAM)M!Fe9v{8{q;i&BmQET>Tpqu!9tzpEKElc#=MNNYnWQ^XqSw^^;>^w~mSc*YmLcU@ z%2ysS)(`bd4!;X0qk0`;L@wc5k~^12Hs!v{{1&t5WTk}-3ry1PG#|nso5P`pc5E(U z+;64uE^xU0eW}dM5g2{ni&TT!?okGOvI0RR3WT~>pUZ>DTr>q-xP zZ~9xRCRT_Q(~dsxo$-&Kp4UzyTZ`&b1nwXk2ZnvrWF)^27uGY~kkmMjIJRR3JiZI4!dBkdSx9^Q+P%FEU4rMz&de5+9Bk`GaHI@`VM(~d;H2@HP{sSZT&tvkOx!|4F` zTI&5xIvjo|=`Np5Pj;mxG9GpGkenrOL!#POAv7QImE{ODi;>)}4qsc#!K(@@jJ=8F z(3vZsrvnj9&D#B~&N_&Hob^sz7IO(_76v^sD{{i1>v#W);squL0EVefxAvsSALZ*R zw(|+tv{xNp8W$wq!@}*~7T4T7Fd#$ZJ*eZd5L#NQa4u74X1VLW2LRp8TD;a~6zNl&}nYf@W zP!cQ7c6hZv%__Qs=JnC;Bp#b`_LjPK@sNzDN+PNeDo%Z^On8&G z?U|U%^XQ5Lf*T}`3CE%GY?%s;=n7}u@4*O3Zb zteisvK1m)d^Bq_1*I4<#QIMLSmq6a^mda6<%L|n|~n8;BvA=Ad>p|25SzgJiWjb z3ljPbjnV|?h|`+oDHy@;8`_azil5iAffO;rwJGT7u-0oUW}@S*k?;QGDc>WsHR`o7 z$M|cOfis1OVz#Oaj6}S=ZI4NRO;NT9sQ%s&VW`db`Y;JrZ2o;`FlwKaQ3Sqs50Ds@Qo5p-Y0pj;_1zg>K}k?B;X}rd0Aw^A66DFzall_=Occ^^)fIY z!z~AkaZ7Ga10$Mvm)6%2Y}>kjRug0L81bU?aLec~yS47b9g*9%Bd$Fj=bvft?38so z;C6Xt?!7j#drR3EB06(sC5Qz&*=;dl(0uRtx|px3v>SdSK8iy$O|?EkaV01oEn}>w z_{!=PXyY6e?X9+!8?s(}Z=@h#fd?i*yoiN=C#G03WaLl(kZ>T z+)}mg5$(GPiW0zNdF)eRZD#j18-#yS+E2~7>E8)oXY#O!#;>wlvO#e&@(JU>A>lpy zD6{?uiI%n+)>6@12DAxO;?>H(^m#=3j|{Ez%dy_VjvU$#+jNgz1!GkY7-Uz6aY5bXNfOH(ZVnA=4GH0sZ_zB7tDpHIb z2_k_=iur@;dsTigX`xw8l_!}ac5>?Pfu}A`t{E!Abj?(qwqiBekd)?@e7P13FkwFu z3)Hd^wP41$#L|~#UN#n8b8aoq4S2bx;UV3?!n^nA5*NK+lWW$ufFPNr#Z@_Z*Z4b%-3AMn zWQmU=F>SJQnJ2MWQY_HeVU~~wljq(W=+%>6H4-}$=N)0r?V@LK`&F)z8#oWSM|=yP zyD196VJJq<#L5@0#H?4BfL&)0;zRqziJ*V>0*iTFV$2xJUz7a&v>F`5GePN)^(06# z?eJ<&CEOU-qbs!y`Bj|{QEM<=D`gp~*=}+$(gnSp=q)?Zo#1qUNbNya#tYLhS~I+Q z-2-Ib^TPp&Y2>$?DQL8qk6VjfiCfUQ|h@ zJ*dMGF_4%(%jEdoppJZ^t~?g;IZk2RX9kC*f?08N^1d>@AABF3NG_+LR1hUt{}wOF z(>LKKjc3--L<{B^vcHrZUO7w;ifq3CD=tY*wTRb!W(oUV)B>UcJXvh8q%g!~SV?L_ zrIsXEfc=b{j-J|au!vbmf}I2jUGz)*y5r8Kf9BV&fET55m|rPLCVL3A4Lg>C;Pleo zd1fq<6ELXj6{|>`lGvrh0S0}0bq`aViOLQkVAFq@wL2E21q?+5B{Y+FuwkUkFoB%3 z`>!NqPO-UIUYn)7f!)ZmPnwX7m zdanV0r5Gh1FmXHy%wPv*SG=Oo_4XujTp}EEqF=A^64s3w=T4k+9n)^?pXaC@ubdB| z$!_A9@#8Y>3-0CbUt=b;S`K_cOdDO-?%ar2h_3F)tBP;#rnexTKfpbq3^tByY zP~cm-;2t1^3w4xB#W)ZqU&HI-WzgI8ShqMR1LR*q6ARV<#uZdC|9n*usf5dcH>m<8@LBwQvHzKs#9Z;> zxp8rPFTK5O@*S;rRahRmLFF1xM#34;xscMprg`_R1O;6vZ0l8y?QNa@Qk{tTI75yo z@w+|g3mVB_uP+i=H-|3mW^C_FwO}i{9BDnsT$0-IC1Pumg;#zUG&seOh!C zAKCY?wjS-|=SqWBW}6nfh{?_!82TNKz^sXis6@ zby`!zY|P5l>+I-il?kWc$KLHB=h@)YYWw{Mob0K{%ZPa>Cr_vHZy%@%}7R0<24!0)h$>r~!;TA*4tKZQbhlrAk2***Xj_6*+6s=T9GL{mQwmHz{z4 zl(`2)fh{Y!p7KjbG8?kth4>C%94tHT1}{nFAYLC&RV2&nPaj^8C66#Q9ZC)0bIu->+P(HF;YCDVSl)Zk++n4zQd0A-o0q|3 ze_+fo&iMF|MNEDqf&YS_!mg z6SK^ME?_>G1+tr^g-9Ku(ZS6yex|DY0h4Xke}i>Byy>};`;)@B6)7pvfCetO0-Msn zxhs!p0dlrd0QCF7hYQ%o`3V@GhZ9ncX9_CXR8_fRopWW--Uan?{?mvS>+Ngd@}b1- z?;8LFV*WJ5@jy*g{s~o-VsG4hNVabzT0qY?>Y)~lB--6U4BI ze%){ZGNl};#yk>?x~9~#ckxZ!AHv{Jx@;PY*w>*)Yx4j3`8rjUn|{xW$f4E+nPF(; z&NRd9f>W}mNy!AXyD5-S@;#^Oi%+qn$WUF*h@cW}++1TZ`; z8W0&!7rc;UKFIC3WY}_;Go*G=K35Xd69t^|&vOR{%xE+EI(-@2_ zwh^~2;Mfft6F_SFeURm!+^n;e2A8m9AuH^1fvC2VtnCniBWY_4dfJ>>O!Y<>T5&#! zCr*8@F|ET$V7vHI-Har`!aqWG8c4cs&nqEm!RH^3pB;odbBeP@!)%W_=k;uAg{w&k ze?=tkG43lKdlqpYD`Id}Oon;Dn?%uiC^|bfK^lpcn)r=wDgjK%#4ak0c6X?HYr5^F zcVhw!!$=<2>p|BrG7O{gL-15D%lgr?m`F~mFmf5v+gXYRIQsQSNN#S+a+cxzH8JfW zBoYKi#q8DjhbIt=SC6P+r~*VS;&TYrp`O+16SGs8GZnS^fv||wuLhBI;P>e@aI7qA z=s`YAHWBEoBX@xFM^p#;*Ebh7P(#*oBjh=P){h>+P?JH>tAt0Q`LvVyo`f^ex+d4F zh7(;hiEqM3Z8%dTC6aQuu@mZXXeQy9m~Y2^(7BDhIxG4rdt@+I{o{HN-wV#Rea14N z`WcmHAtx8{87rPbbDxJ~BYOB*<=!O|

nCdB@-(6EoKTl%NvP(#P3d709)#`pX1AY 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 literal 0 HcmV?d00001 diff --git a/src/gossip/imgs/2023-08-08-12-35-30.png b/src/gossip/imgs/2023-08-08-12-35-30.png new file mode 100644 index 0000000000000000000000000000000000000000..322941105a8fee1efee89b46a616e23cb789ceef GIT binary patch literal 69245 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

H7fVr9T91S^s4hF)aUw` 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 literal 0 HcmV?d00001 diff --git a/src/gossip/imgs/2023-08-08-13-37-04.png b/src/gossip/imgs/2023-08-08-13-37-04.png new file mode 100644 index 0000000000000000000000000000000000000000..778d404b0dfda2bdf36f607f2e1dbbb949c0e978 GIT binary patch literal 232468 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�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�g-Xn4dE=Q@@nMC1@fRls!VbC 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

I~Q30>)1BFz`?;0<^F4 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 D1 + +

n=^G4jjRa()1tP`W|}O|ORBziZh7 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 diff --git a/src/gossip/imgs/2023-08-08-12-15-44.png b/src/gossip/imgs/2023-08-08-12-15-44.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc2966a21d59f4dfc5cb31d0a24433cdfc5a1f5 GIT binary patch literal 336865 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 ZXY)@elHe7UR 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ⅈAKCi)5e`bdyepfQV&r6sm{LlVQ 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%0A)Ie;>XlU!TCVFpeYaUmh8n!7>}XzgqMiNGZ1R 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