mirror of
https://github.com/logos-blockchain/logos-blockchain-pocs.git
synced 2026-01-07 15:43:07 +00:00
1731 lines
478 KiB
Plaintext
1731 lines
478 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "ad657d5a-bd36-4329-b134-6745daff7ae9",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from dataclasses import dataclass, replace\n",
|
|
"from pyvis.network import Network\n",
|
|
"from pyvis.options import Layout\n",
|
|
"import time"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "a9e0b910-c633-4dbe-827c-4ddb804f7a9a",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def phi(f, alpha):\n",
|
|
" return 1 - (1-f)**alpha"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "aa0aadce-a0be-4873-ba23-293be74db313",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"@dataclass\n",
|
|
"class Block:\n",
|
|
" id: int\n",
|
|
" slot: int\n",
|
|
" height: int\n",
|
|
" parent: int\n",
|
|
" leader: int"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "a538cf45-d551-4603-b484-dbbc3f3d0a73",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"@dataclass\n",
|
|
"class NetworkParams:\n",
|
|
" broadcast_delay_mean: int # second\n",
|
|
" pol_proof_time: int # seconds\n",
|
|
" # ---- blend network -- \n",
|
|
" blending_delay: int\n",
|
|
" desimenation_delay_mean: float\n",
|
|
" # desimenation_delay_var: float\n",
|
|
" blend_hops: int\n",
|
|
" no_network_delay: bool = False\n",
|
|
"\n",
|
|
" def sample_blending_delay(self):\n",
|
|
" return np.random.uniform(0, self.blending_delay)\n",
|
|
"\n",
|
|
" def sample_desimenation_delay(self):\n",
|
|
" return np.random.exponential(self.desimenation_delay_mean)\n",
|
|
" # scale = self.desimenation_delay_var / self.desimenation_delay_mean\n",
|
|
" # shape = self.desimenation_delay_mean / scale\n",
|
|
" # return np.random.gamma(shape=shape, scale=scale)\n",
|
|
"\n",
|
|
" def sample_blend_network_delay(self):\n",
|
|
" return sum(self.sample_blending_delay() + self.sample_desimenation_delay() for _ in range(self.blend_hops))\n",
|
|
" \n",
|
|
" def sample_broadcast_delay(self, blocks):\n",
|
|
" return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n",
|
|
"\n",
|
|
" def block_arrival_slot(self, block_slot):\n",
|
|
" if self.no_network_delay:\n",
|
|
" return block_slot\n",
|
|
" # return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_slot) + block_slot\n",
|
|
" return self.pol_proof_time + self.sample_blend_network_delay() + self.sample_broadcast_delay(block_slot) + block_slot\n",
|
|
"\n",
|
|
" def empirical_network_delay(self, N=10000, M=1000):\n",
|
|
" return np.array([self.block_arrival_slot(np.zeros(M)) for _ in range(N)]).reshape(N*M)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "17ef82f8-968c-48b0-bee7-f2642c8b3f3e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"blend_net = NetworkParams(\n",
|
|
" broadcast_delay_mean=0.5,\n",
|
|
" pol_proof_time=1,\n",
|
|
" blending_delay=2,\n",
|
|
" desimenation_delay_mean=0.5,\n",
|
|
" blend_hops=3,\n",
|
|
")\n",
|
|
"no_blend_net = replace(blend_net, blend_hops=0)\n",
|
|
"\n",
|
|
"N = 100\n",
|
|
"M = 10000\n",
|
|
"no_blend_samples = no_blend_net.empirical_network_delay()\n",
|
|
"no_blend_mean = no_blend_samples.mean()\n",
|
|
"blend_samples = blend_net.empirical_network_delay()\n",
|
|
"blend_mean = blend_samples.mean()\n",
|
|
"\n",
|
|
"_ = plt.hist(no_blend_samples, bins=100, density=True, label=\"no-blend\")\n",
|
|
"_ = plt.hist(blend_samples, bins=100, density=True, label=\"blend\")\n",
|
|
"\n",
|
|
"for p in [50, 99, 99.9]:\n",
|
|
" no_blend_pct = np.percentile(no_blend_samples, p)\n",
|
|
" _ = plt.vlines(no_blend_pct, ymin=0, ymax=0.25, color='darkblue', label=f\"no-blend {p}p={no_blend_pct:.1f}s\")\n",
|
|
"\n",
|
|
"for p in [50, 99, 99.9]:\n",
|
|
" blend_pct = np.percentile(blend_samples, p)\n",
|
|
" _ = plt.vlines(blend_pct, ymin=0, ymax=0.25, color='brown', label=f\"blend {p}p={blend_pct:.1f}s\")\n",
|
|
"# _ = plt.vlines(blend_mean, ymin=0, ymax=1, color='brown', label=f\"blend 50p={blend_mean:.1f}s\")\n",
|
|
"# _ = plt.hist(blend_net.block_arrival_slot(np.zeros(1000)), bins=100, density=True, label=\"blend\")\n",
|
|
"_ = plt.legend()\n",
|
|
"_ = plt.xlabel(\"block delay\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "24779de7-284f-4200-9e4a-d2aa6e1b823b",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"@dataclass\n",
|
|
"class Params:\n",
|
|
" SLOTS: int\n",
|
|
" f: float\n",
|
|
" honest_stake: np.array\n",
|
|
" adversary_control: float\n",
|
|
"\n",
|
|
" @property\n",
|
|
" def N(self):\n",
|
|
" return len(self.honest_stake) + 1\n",
|
|
"\n",
|
|
" @property\n",
|
|
" def stake(self):\n",
|
|
" return np.append(self.honest_stake, self.honest_stake.sum() / (1/self.adversary_control - 1))\n",
|
|
" \n",
|
|
" @property\n",
|
|
" def relative_stake(self):\n",
|
|
" return self.stake / self.stake.sum()\n",
|
|
"\n",
|
|
" def slot_prob(self):\n",
|
|
" return phi(self.f, self.relative_stake)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "a90495a8-fcda-4e47-92b4-cc5ceaa9ff9c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"class Sim:\n",
|
|
" def __init__(self, params: Params, network: NetworkParams):\n",
|
|
" self.params = params\n",
|
|
" self.network = network\n",
|
|
" self.leaders = np.zeros((params.N, params.SLOTS), dtype=np.int64)\n",
|
|
" self.blocks = []\n",
|
|
" max_number_of_blocks = int(3 * params.SLOTS * params.f)\n",
|
|
" self.block_slots = np.zeros(max_number_of_blocks, dtype=np.int64)\n",
|
|
" self.block_heights = np.zeros(max_number_of_blocks, dtype=np.int64)\n",
|
|
" self.block_arrivals = np.zeros(shape=(params.N, max_number_of_blocks), dtype=np.int64) # arrival time to each leader for each block\n",
|
|
" self.block_arrivals[:,:] = self.params.SLOTS\n",
|
|
" # self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n",
|
|
"\n",
|
|
" \n",
|
|
" def emit_block(self, leader, slot, height, parent):\n",
|
|
" assert type(leader) in [int, np.int64]\n",
|
|
" assert type(slot) in [int, np.int64]\n",
|
|
" assert type(height) in [int, np.int64]\n",
|
|
" assert type(parent) in [int, np.int64]\n",
|
|
"\n",
|
|
" block = Block(\n",
|
|
" id=len(self.blocks),\n",
|
|
" slot=slot,\n",
|
|
" height=height,\n",
|
|
" parent=parent,\n",
|
|
" leader=leader,\n",
|
|
" )\n",
|
|
" self.blocks.append(block)\n",
|
|
" self.block_slots[block.id] = block.slot\n",
|
|
" self.block_heights[block.id] = block.height\n",
|
|
" \n",
|
|
" # decide when this block will arrive at each node\n",
|
|
" new_block_arrival_by_node = self.network.block_arrival_slot(np.repeat(block.slot, self.params.N))\n",
|
|
"\n",
|
|
" if parent != -1:\n",
|
|
" # the new block cannot arrive before it's parent\n",
|
|
" parent_arrival_by_node = self.block_arrivals[:,parent]\n",
|
|
" new_block_arrival_by_node = np.maximum(new_block_arrival_by_node, parent_arrival_by_node)\n",
|
|
"\n",
|
|
" self.block_arrivals[:,block.id] = new_block_arrival_by_node\n",
|
|
" # self.block_arrivals = np.append(self.block_arrivals, new_block_arrival_by_node.reshape((self.params.N, 1)), axis=1)\n",
|
|
"\n",
|
|
" return block.id\n",
|
|
"\n",
|
|
" def emit_leader_block(self, leader, slot):\n",
|
|
" assert type(leader) in [int, np.int64], type(leader)\n",
|
|
" assert isinstance(slot, int)\n",
|
|
"\n",
|
|
" parent = self.fork_choice(leader, slot)\n",
|
|
" return self.emit_block(\n",
|
|
" leader,\n",
|
|
" slot,\n",
|
|
" height=self.blocks[parent].height + 1,\n",
|
|
" parent=parent,\n",
|
|
" )\n",
|
|
"\n",
|
|
" def fork_choice(self, leader, slot):\n",
|
|
" assert type(leader) in [int, np.int64], type(leader)\n",
|
|
" assert isinstance(slot, int)\n",
|
|
" arrived_blocks = (self.block_arrivals[leader, :len(self.blocks)] <= slot) * self.block_heights[:len(self.blocks)]\n",
|
|
" concurrent = (arrived_blocks == np.max(arrived_blocks)).nonzero()[0]\n",
|
|
" return np.random.choice(concurrent)\n",
|
|
"\n",
|
|
" def plot_spacetime_diagram(self, MAX_SLOT=1000):\n",
|
|
" alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_stake[n])\n",
|
|
" nodes = [f\"$N_{n}$($\\\\alpha$={self.params.relative_stake[n]:.2f})\" for n in alpha_index]\n",
|
|
" messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].slot, arrival_slot, f\"$B_{{{b}}}$\") for b, arrival_slots in enumerate(self.block_arrivals[:,:len(self.blocks)].T) for node, arrival_slot in enumerate(arrival_slots) if arrival_slot < MAX_SLOT]\n",
|
|
" \n",
|
|
" fig, ax = plt.subplots(figsize=(8,4))\n",
|
|
" \n",
|
|
" # Plot vertical lines for each node\n",
|
|
" max_slot = max(s for _,_,start_t, end_t,_ in messages for s in [start_t, end_t])\n",
|
|
" for i, node in enumerate(nodes):\n",
|
|
" ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n",
|
|
" ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n",
|
|
" \n",
|
|
" # Plot messages\n",
|
|
" colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n",
|
|
" for (start, end, start_time, end_time, label), color in zip(messages, colors):\n",
|
|
" start_idx = nodes.index(start)\n",
|
|
" end_idx = nodes.index(end)\n",
|
|
" ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n",
|
|
" arrowprops=dict(arrowstyle='->', color=\"black\", lw=0.5))\n",
|
|
" placement = 0\n",
|
|
" mid_x = start_idx * (1 - placement) + end_idx * placement\n",
|
|
" mid_y = start_time * (1 - placement) + end_time * placement\n",
|
|
" ax.text(mid_x, mid_y, label, ha='center', va='center', \n",
|
|
" bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n",
|
|
" \n",
|
|
" ax.set_xlim(-1, len(nodes))\n",
|
|
" ax.set_ylim(0, max_slot + 70)\n",
|
|
" ax.set_xticks(range(len(nodes)))\n",
|
|
" ax.set_xticklabels([])\n",
|
|
" # ax.set_yticks([])\n",
|
|
" ax.set_title('Space-Time Diagram')\n",
|
|
" ax.set_ylabel('Slot')\n",
|
|
" \n",
|
|
" plt.tight_layout()\n",
|
|
" plt.show()\n",
|
|
"\n",
|
|
" def honest_chain(self):\n",
|
|
" chain_head = max(self.blocks, key=lambda b: b.height)\n",
|
|
" honest_chain = {chain_head.id}\n",
|
|
" \n",
|
|
" curr_block = chain_head\n",
|
|
" while curr_block.parent >= 0:\n",
|
|
" honest_chain.add(curr_block.parent)\n",
|
|
" curr_block = self.blocks[curr_block.parent]\n",
|
|
" return sorted(honest_chain, key=lambda b: self.blocks[b].height)\n",
|
|
"\n",
|
|
" def visualize_chain(self):\n",
|
|
" honest_chain = self.honest_chain()\n",
|
|
" print(\"Honest chain length\", len(honest_chain))\n",
|
|
" honest_chain_set = set(honest_chain)\n",
|
|
" \n",
|
|
" layout = Layout()\n",
|
|
" layout.hierachical = True\n",
|
|
" \n",
|
|
" G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n",
|
|
"\n",
|
|
" for block in self.blocks:\n",
|
|
" # level = slot\n",
|
|
" level = block.height\n",
|
|
" color = \"lightgrey\"\n",
|
|
" if block.id in honest_chain_set:\n",
|
|
" color = \"orange\"\n",
|
|
"\n",
|
|
" G.add_node(int(block.id), level=level, color=color, label=f\"{block.id},{block.slot}\")\n",
|
|
" if block.parent >= 0:\n",
|
|
" G.add_edge(int(block.id), int(block.parent), width=2, color=color)\n",
|
|
" \n",
|
|
" return G.show(\"chain.html\")\n",
|
|
"\n",
|
|
" def run(self, seed=None):\n",
|
|
" from collections import defaultdict\n",
|
|
" timings = defaultdict(float)\n",
|
|
" start_t = time.time()\n",
|
|
" if seed is not None:\n",
|
|
" np.random.seed(seed)\n",
|
|
"\n",
|
|
" # emit the genesis block\n",
|
|
" self.emit_block(\n",
|
|
" leader=0,\n",
|
|
" slot=0,\n",
|
|
" height=1,\n",
|
|
" parent=-1,\n",
|
|
" )\n",
|
|
" self.block_arrivals[:,0] = 0 # all nodes see the genesis block\n",
|
|
"\n",
|
|
" prep_t = time.time()\n",
|
|
"\n",
|
|
"\n",
|
|
" for s in range(1, self.params.SLOTS):\n",
|
|
" slot_start_t = time.time()\n",
|
|
" # the adversary will not participate in the simulation\n",
|
|
" # (implemented by never delivering blocks to the adversary)\n",
|
|
" # self.block_arrivals[-1,:] = self.params.SLOTS\n",
|
|
"\n",
|
|
" self.leaders[:,s] = np.random.random(size=self.params.N) < self.params.slot_prob()\n",
|
|
" leader_lottery_t = time.time()\n",
|
|
"\n",
|
|
" for leader in np.nonzero(self.leaders[:,s])[0]:\n",
|
|
" lead_start_t = time.time()\n",
|
|
" if self.params.adversary_control is not None and leader == self.params.N - 1:\n",
|
|
" continue\n",
|
|
" \n",
|
|
" parent = self.fork_choice(leader, s)\n",
|
|
" fork_choice_t = time.time()\n",
|
|
" \n",
|
|
" self.emit_block(\n",
|
|
" leader,\n",
|
|
" s,\n",
|
|
" height=self.blocks[parent].height + 1,\n",
|
|
" parent=parent,\n",
|
|
" )\n",
|
|
" emit_leader_block_t = time.time()\n",
|
|
"\n",
|
|
" timings[\"forkchoice\"] += fork_choice_t - lead_start_t\n",
|
|
" timings[\"emit_leader_block\"] += emit_leader_block_t - fork_choice_t\n",
|
|
" \n",
|
|
" # self.emit_leader_block(leader, s)\n",
|
|
" slot_end_t = time.time()\n",
|
|
" timings[\"leader\"] += leader_lottery_t - slot_start_t\n",
|
|
" timings[\"emit\"] += slot_end_t - leader_lottery_t\n",
|
|
" timings[\"slot\"] += slot_end_t - slot_start_t\n",
|
|
"\n",
|
|
" end_t = time.time()\n",
|
|
" timings[\"prep\"] = prep_t - start_t\n",
|
|
" timings[\"total\"] = end_t - start_t\n",
|
|
" for phase, duration in timings.items():\n",
|
|
" print(f\"{phase}\\t{duration:.2f}s\")\n",
|
|
"\n",
|
|
" def adverserial_analysis(self, should_plot=False, seed=0, k=2160):\n",
|
|
" from collections import defaultdict\n",
|
|
"\n",
|
|
" timings = defaultdict(float)\n",
|
|
"\n",
|
|
" start_t = time.time()\n",
|
|
" np.random.seed(seed)\n",
|
|
" \n",
|
|
" adversary = self.params.N-1 # adversary is always the last node in our simulations\n",
|
|
"\n",
|
|
" self.block_arrivals[adversary,:len(self.blocks)] = self.block_slots[:len(self.blocks)] # we will say the adversary receives the blocks immidiately\n",
|
|
"\n",
|
|
" honest_chain = self.honest_chain()\n",
|
|
" \n",
|
|
" honest_chain_t = time.time()\n",
|
|
" \n",
|
|
" honest_height_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n",
|
|
"\n",
|
|
" for block_id in honest_chain:\n",
|
|
" honest_height_by_slot[self.blocks[block_id].slot] = 1\n",
|
|
" honest_height_by_slot = honest_height_by_slot.cumsum()\n",
|
|
" \n",
|
|
" honest_height_by_slot_t = time.time()\n",
|
|
" \n",
|
|
" reorg_depths = []\n",
|
|
" if should_plot:\n",
|
|
" plt.figure(figsize=(20, 6))\n",
|
|
" ax = plt.subplot(121)\n",
|
|
" advantage = np.zeros(self.params.SLOTS)\n",
|
|
" \n",
|
|
" adversary_active_slots = np.random.random(size=self.params.SLOTS) < phi(self.params.f, self.params.relative_stake[adversary])\n",
|
|
" adversary_cumsum = adversary_active_slots.cumsum()\n",
|
|
"\n",
|
|
" all_active_slots = (self.leaders.sum(axis=0) + adversary_active_slots) > 0\n",
|
|
" slot_lookahead = int(3 * k / self.params.f)\n",
|
|
" \n",
|
|
" prep_t = time.time()\n",
|
|
" timings[\"honest_chain\"] += honest_chain_t - start_t\n",
|
|
" timings[\"honest_height_by_slot\"] += honest_height_by_slot_t - honest_chain_t\n",
|
|
" timings[\"prep_analysis\"] += prep_t - start_t\n",
|
|
" for b in range(len(self.blocks)):\n",
|
|
" block_start_t = time.time()\n",
|
|
" block = self.blocks[b]\n",
|
|
" if block.id > 0 and block.id % 5000 == 0:\n",
|
|
" print(\"Processing block\", block)\n",
|
|
" \n",
|
|
" nearest_honest_block = block\n",
|
|
" while nearest_honest_block.height >= len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n",
|
|
" nearest_honest_block = self.blocks[nearest_honest_block.parent]\n",
|
|
"\n",
|
|
" nearest_honest_t = time.time()\n",
|
|
" \n",
|
|
" cumulative_rel_height = adversary_cumsum[block.slot+1:block.slot+1 + slot_lookahead] - adversary_cumsum[block.slot]\n",
|
|
"\n",
|
|
" adverserial_height_by_slot = block.height + cumulative_rel_height\n",
|
|
"\n",
|
|
" honest_height_by_slot_lookahead = honest_height_by_slot[block.slot + 1:block.slot+1 + slot_lookahead]\n",
|
|
" \n",
|
|
" adverserial_wins = adverserial_height_by_slot > honest_height_by_slot_lookahead\n",
|
|
" \n",
|
|
" reorg_events = adverserial_wins & all_active_slots[block.slot+1:block.slot+1 + slot_lookahead]\n",
|
|
"\n",
|
|
" \n",
|
|
" reorg_events_t = time.time()\n",
|
|
" reorg_depth = honest_height_by_slot_lookahead[reorg_events] - nearest_honest_block.height\n",
|
|
" reorg_depth_t = time.time()\n",
|
|
" reorg_depths += list(reorg_depth)\n",
|
|
" block_end_t = time.time()\n",
|
|
" timings[\"nearest_honest\"] += nearest_honest_t - block_start_t\n",
|
|
" timings[\"reorg_events\"] += reorg_events_t - nearest_honest_t\n",
|
|
" timings[\"reorg_depth\"] += reorg_depth_t - reorg_events_t\n",
|
|
" timings[\"depth_append\"] += block_end_t - reorg_depth_t\n",
|
|
" \n",
|
|
" if should_plot:\n",
|
|
" if reorg_events.sum() > 0:\n",
|
|
" first_slot = block.slot+1\n",
|
|
" last_slot = first_slot + np.nonzero(reorg_events)[0].max() + 1\n",
|
|
" advantage[first_slot:last_slot] = np.maximum(advantage[first_slot:last_slot], adverserial_height_by_slot[:last_slot-first_slot]-honest_height_by_slot[first_slot:last_slot])\n",
|
|
"\n",
|
|
" for phase, duration in timings.items():\n",
|
|
" print(f\"{phase}\\t{duration:.2f}s\")\n",
|
|
" \n",
|
|
" if should_plot:\n",
|
|
" ax.plot(advantage, color='k', lw=\"0.5\")\n",
|
|
" _ = ax.set_title(f\"max chain weight with adversery controlling {self.params.relative_stake[adversary] * 100:.0f}% of stake\")\n",
|
|
" _ = ax.set_ylabel(\"adversary height advantage\")\n",
|
|
" _ = ax.set_xlabel(\"slot\")\n",
|
|
" _ = ax.legend()\n",
|
|
"\n",
|
|
" ax = plt.subplot(122)\n",
|
|
" _ = ax.grid(True)\n",
|
|
" _ = ax.hist(reorg_depths, density=False, bins=100)\n",
|
|
" _ = ax.set_title(f\"re-org depth with {self.params.relative_stake[adversary] * 100:.0f}% adversary\")\n",
|
|
" _ = ax.set_xlabel(\"re-org depth\")\n",
|
|
" _ = ax.set_ylabel(\"frequency\")\n",
|
|
" return reorg_depths"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "5f2da916-30a0-4b1d-886f-1bc81c17056e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"leader\t0.03s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.05s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.05s\n",
|
|
"avg blocks per slot 0.153\n",
|
|
"Number of blocks 153\n",
|
|
"longest chain 92\n",
|
|
"CPU times: user 47.8 ms, sys: 0 ns, total: 47.8 ms\n",
|
|
"Wall time: 47.7 ms\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%time\n",
|
|
"np.random.seed(0)\n",
|
|
"sim = Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=1000,\n",
|
|
" f=1/5,\n",
|
|
" adversary_control = 0.3,\n",
|
|
" honest_stake = np.random.pareto(10, 1000)\n",
|
|
" ),\n",
|
|
" network=blend_net\n",
|
|
")\n",
|
|
"sim.run(seed=0)\n",
|
|
"\n",
|
|
"n_blocks_per_slot = len(sim.blocks) / sim.params.SLOTS\n",
|
|
"print(\"avg blocks per slot\", n_blocks_per_slot)\n",
|
|
"print(\"Number of blocks\", len(sim.blocks))\n",
|
|
"print(\"longest chain\", max(b.height for b in sim.blocks))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 49,
|
|
"id": "e2a825cf-f915-43ee-8d31-0cb09947c7dc",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"leader\t3.19s\n",
|
|
"emit\t0.57s\n",
|
|
"slot\t3.76s\n",
|
|
"forkchoice\t0.10s\n",
|
|
"emit_leader_block\t0.18s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.79s\n",
|
|
"leader\t3.05s\n",
|
|
"emit\t0.53s\n",
|
|
"slot\t3.58s\n",
|
|
"forkchoice\t0.09s\n",
|
|
"emit_leader_block\t0.17s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.61s\n",
|
|
"leader\t3.58s\n",
|
|
"emit\t0.65s\n",
|
|
"slot\t4.23s\n",
|
|
"forkchoice\t0.12s\n",
|
|
"emit_leader_block\t0.21s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t4.28s\n",
|
|
"leader\t3.08s\n",
|
|
"emit\t0.53s\n",
|
|
"slot\t3.61s\n",
|
|
"forkchoice\t0.09s\n",
|
|
"emit_leader_block\t0.17s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.65s\n",
|
|
"leader\t3.18s\n",
|
|
"emit\t0.55s\n",
|
|
"slot\t3.73s\n",
|
|
"forkchoice\t0.09s\n",
|
|
"emit_leader_block\t0.17s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.77s\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"sims_cgf = []\n",
|
|
"ratios_sims = []\n",
|
|
"for j in range(5):\n",
|
|
" sim_chain_growth_fixed = Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=100000,\n",
|
|
" f=1/30,\n",
|
|
" adversary_control = 10 ** -9,\n",
|
|
" honest_stake = np.random.pareto(10, 1000)\n",
|
|
" ),\n",
|
|
" network=blend_net\n",
|
|
" )\n",
|
|
" sim_chain_growth_fixed.run()\n",
|
|
"\n",
|
|
" sims_cgf.append(sim_chain_growth)\n",
|
|
" \n",
|
|
" ratios_slots = np.full(sim_chain_growth_fixed.params.SLOTS, 0.0)\n",
|
|
" \n",
|
|
" for i in range(len(ratios_slots)):\n",
|
|
" honest = sim_chain_growth_fixed.honest_chain()\n",
|
|
" honest_subarray = [x for x in honest if sim_chain_growth_fixed.blocks[x].slot <= i]\n",
|
|
" ratios_slots[i] = (len(honest_subarray) / (i + 1))\n",
|
|
" \n",
|
|
" ratios_sims.append(ratios_slots)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 61,
|
|
"id": "67861700-6d03-4bd1-8120-a3452f29b098",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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WRez+2cyMzMxatQoeHl5wd7eHq6urnpfZJ7MvHzd95PWnMHl2DRotRxJREREVFbMToYmTJiAHTt2YNGiRVCpVPjuu+8wbdo0+Pn5Yfny5aURo1XpNncPZv9zsbzDICIishpmJ0Pr16/H119/jT59+kChUKBdu3b44IMP8Omnn+KXX34pjRgrtXyNYSvQN7uvl0MkRERE1snsZCgpKQnVqlUDUDA+KCkpCQDQtm1b7Nmzx7LRWQENu8SIiIjKldnJULVq1RAZGQkACA0NxapVqwAUtBi5uLhYNDhrkM9kiIiIqFyZnQwNHz4cp06dAgBMnDgRCxcuhFqtxttvv40JEyZYPMDKLi41u7xDICIismpmT61/++23dd937doVFy9eREREBEJCQtCgQQOLBmcNIqLulXcIREREVs2slqG8vDx06dIFV65c0ZUFBgaid+/eTIRKiJ1kRERE5cusZMjGxganT58urVisEp/RSkREVL7MHjP04osv4vvvvy+NWKxSFVe78g6BiIjIqpk9Zig/Px8//PADtm3bhiZNmsDe3l5v+xdffGGx4KzBj/sjyzsEIiIiq2Z2MnT27Fk0btwYAHD58mW9bZLEPh9z3U0xPpvswLUEtK7uUcbREBERWR+zk6GdO3eWRhxWKy4tx2j5C98exo1ZPco4GiIiIutj9pghIiIiosqEyRARERFZNSZD5UilLe8IiIiIiMlQOXLVcsA5ERFReWMyVI6YChEREZU/s2eTAcCVK1ewc+dOxMXFQavV7+v58MMPLRKYNZBBwsMP5JjXvyHGrjwJfxfb8gmKiIjIypidDH377bd444034OHhAR8fH721hSRJYjJkBmMtQ+4OSgBATj4HFBEREZUFs5OhTz75BDNmzMB7771XGvFYFemhp7ROejJU93iOnDxNOURERERkfcweM3Tv3j307du3NGKxOg/f/Nc6VIdKUVCalpOPJXuulX1QREREVsbsZKhv377YsmVLacRidYzdfLWNXPf9p5sull0wREREVsqkbrL58+frvg8JCcGUKVNw6NAh1K9fHzY2Nnp1R48ebdkIKzFjY4bUNvopUp5GCxs5J/0RERGVFpOSoblz5+q9dnBwwO7du7F79269ckmSmAyZweWBdYaea+gHAFAp5Hp1ftwfiRHtq5dpXERERNbEpGQoMjKytOOwSl2yFTiuKhgo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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"slots_list = np.array(range(sim_chain_growth_fixed.params.SLOTS)[100:]) + 100 #remove first few slots\n",
|
|
"\n",
|
|
"for i in range(5):\n",
|
|
" plt.plot(slots_list, ratios_sims[i][100:])\n",
|
|
" plt.plot(slots_list, np.full(len(slots_list), 1/30))\n",
|
|
" plt.xlabel(\"Slot\")\n",
|
|
" plt.ylabel(\"Honest chain growth rate until this slot\")\n",
|
|
" plt.title(\"Honest chain growth rate convergence\")\n",
|
|
" \n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"id": "def10743-5c85-4c77-9d36-64cdac0d6839",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"forkchoice\t6.14s\n",
|
|
"emit_leader_block\t3.56s\n",
|
|
"leader\t3.91s\n",
|
|
"emit\t10.21s\n",
|
|
"slot\t14.12s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t14.17s\n",
|
|
"HONEST RATIO: 0.16885\n",
|
|
"ACTIVE RATIO: 0.16885\n",
|
|
"F RATIO: 0.5\n",
|
|
"forkchoice\t1.40s\n",
|
|
"emit_leader_block\t1.40s\n",
|
|
"leader\t3.46s\n",
|
|
"emit\t3.17s\n",
|
|
"slot\t6.64s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t6.68s\n",
|
|
"HONEST RATIO: 0.12127\n",
|
|
"ACTIVE RATIO: 0.12127\n",
|
|
"F RATIO: 0.25\n",
|
|
"leader\t3.33s\n",
|
|
"emit\t1.49s\n",
|
|
"slot\t4.83s\n",
|
|
"forkchoice\t0.49s\n",
|
|
"emit_leader_block\t0.67s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t4.87s\n",
|
|
"HONEST RATIO: 0.08151\n",
|
|
"ACTIVE RATIO: 0.08151\n",
|
|
"F RATIO: 0.125\n",
|
|
"leader\t3.24s\n",
|
|
"emit\t0.92s\n",
|
|
"slot\t4.16s\n",
|
|
"forkchoice\t0.20s\n",
|
|
"emit_leader_block\t0.42s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t4.20s\n",
|
|
"HONEST RATIO: 0.04998\n",
|
|
"ACTIVE RATIO: 0.04998\n",
|
|
"F RATIO: 0.0625\n",
|
|
"leader\t3.18s\n",
|
|
"emit\t0.54s\n",
|
|
"slot\t3.73s\n",
|
|
"forkchoice\t0.09s\n",
|
|
"emit_leader_block\t0.16s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.76s\n",
|
|
"HONEST RATIO: 0.02682\n",
|
|
"ACTIVE RATIO: 0.02682\n",
|
|
"F RATIO: 0.03125\n",
|
|
"leader\t3.10s\n",
|
|
"emit\t0.41s\n",
|
|
"slot\t3.51s\n",
|
|
"forkchoice\t0.05s\n",
|
|
"emit_leader_block\t0.09s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.55s\n",
|
|
"HONEST RATIO: 0.015\n",
|
|
"ACTIVE RATIO: 0.015\n",
|
|
"F RATIO: 0.015625\n",
|
|
"leader\t3.02s\n",
|
|
"emit\t0.33s\n",
|
|
"slot\t3.35s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.04s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.39s\n",
|
|
"HONEST RATIO: 0.00765\n",
|
|
"ACTIVE RATIO: 0.00765\n",
|
|
"F RATIO: 0.0078125\n",
|
|
"leader\t3.24s\n",
|
|
"emit\t0.34s\n",
|
|
"slot\t3.57s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.03s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.61s\n",
|
|
"HONEST RATIO: 0.00406\n",
|
|
"ACTIVE RATIO: 0.00406\n",
|
|
"F RATIO: 0.00390625\n",
|
|
"leader\t3.17s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.48s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.51s\n",
|
|
"HONEST RATIO: 0.0021\n",
|
|
"ACTIVE RATIO: 0.0021\n",
|
|
"F RATIO: 0.001953125\n",
|
|
"leader\t3.11s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.39s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.43s\n",
|
|
"HONEST RATIO: 0.00104\n",
|
|
"ACTIVE RATIO: 0.00104\n",
|
|
"F RATIO: 0.0009765625\n",
|
|
"leader\t2.98s\n",
|
|
"emit\t0.27s\n",
|
|
"slot\t3.24s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.28s\n",
|
|
"HONEST RATIO: 0.0005\n",
|
|
"ACTIVE RATIO: 0.0005\n",
|
|
"F RATIO: 0.00048828125\n",
|
|
"leader\t3.05s\n",
|
|
"emit\t0.27s\n",
|
|
"slot\t3.32s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.35s\n",
|
|
"HONEST RATIO: 0.00021\n",
|
|
"ACTIVE RATIO: 0.00021\n",
|
|
"F RATIO: 0.000244140625\n",
|
|
"leader\t3.04s\n",
|
|
"emit\t0.27s\n",
|
|
"slot\t3.30s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.34s\n",
|
|
"HONEST RATIO: 0.00013\n",
|
|
"ACTIVE RATIO: 0.00013\n",
|
|
"F RATIO: 0.0001220703125\n",
|
|
"leader\t3.19s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.47s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.51s\n",
|
|
"HONEST RATIO: 9e-05\n",
|
|
"ACTIVE RATIO: 9e-05\n",
|
|
"F RATIO: 6.103515625e-05\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"f_values = [1 / (2**i) for i in range(1, 15)]\n",
|
|
"ratios = []\n",
|
|
"for i in f_values:\n",
|
|
" sim_chain_growth = Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=100000,\n",
|
|
" f=i,\n",
|
|
" adversary_control = 10 ** -9,\n",
|
|
" honest_stake = np.random.pareto(10, 1000)\n",
|
|
" ),\n",
|
|
" network=blend_net\n",
|
|
" )\n",
|
|
" sim_chain_growth.run()\n",
|
|
"\n",
|
|
" active_slots = np.full(sim_chain_growth.params.SLOTS, 0)\n",
|
|
" for b in sim_chain_growth.blocks:\n",
|
|
" if active_slots[b.height - 1] == 0:\n",
|
|
" active_slots[b.height - 1] = 1\n",
|
|
" \n",
|
|
" print(f\"HONEST RATIO: {len(sim_chain_growth.honest_chain()) / sim_chain_growth.params.SLOTS}\")\n",
|
|
" print(f\"ACTIVE RATIO: {active_slots.sum() / sim_chain_growth.params.SLOTS}\")\n",
|
|
" print(f\"F RATIO: {sim_chain_growth.params.f}\")\n",
|
|
" ratios.append(len(sim_chain_growth.honest_chain()) / sim_chain_growth.params.SLOTS / sim_chain_growth.params.f)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 66,
|
|
"id": "e0dfb7d6-3975-4e8c-b4f2-42b7f5f600bf",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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Jc6ePVugzyO/7/Ob3nYtu337tvDz8xPm5ubC1tZWDB06VFy7di3Xb8Lb9kuI7CENvL29hYmJibCwsBC1a9cWX331lXjy5IliPz/55BNRsWJFYWRkJOzt7UWnTp3EpUuX3hr76yRCFLKlKxHlEhUVhUqVKmH+/PmYPHmypsOhEkwul8POzg7du3fP8xYZ5ebq6opatWrh77//1nQoVALpZBsiIiJtkpaWlqv9w6ZNmxAfH6/ykA9EVDg62YaIiEibnD9/HhMnTkTPnj1hY2ODK1eu4LfffkOtWrWUhg0goqLDhIiISMNcXV3h7OyMpUuXKhreDhgwAD/99JPSSMhEVHTYhoiIiIh0HtsQERERkc5jQkREREQ6T+faEMnlcjx58gQWFhYae0YWERERqUYIgeTkZDg5ORXJMyB1LiF68uRJqXkAIhERka55+PAhKlSooPb16lxClPPwwYcPHxb5c1yIiIhIPZKSkuDs7Kz0EGF10rmEKOc2maWlJRMiIiKiEqaomruwUTURERHpPCZEREREpPOYEBEREZHOY0JEREREOo8JEREREek8JkRERESk85gQERERkc5jQkREREQ6jwkRERER6TwmRERERKTzmBARERGRzmNCRERERDpP5x7uWlRuPk7EioBwWBjrY14PT02HQ0RERCpgDZGaZMkFDt18ikM3niJTJtd0OERERKQCJkRqUqe8FazNDJGcnoXL919oOhwiIiJSARMiNZFKJWhRxRYAEBj6TMPREBERkSqYEKlRq2r2AIDA0FgNR0JERESqYEKkRs2r2EEiAUKeJiM68ZWmwyEiIqICYkKkRtZmhvCsUAYAcIK3zYiIiEoMJkRq1soj57YZEyIiIqKSggmRmrX0sAMAnA6PQ0YWu98TERGVBEyI1Kx2eSvYmBkihd3viYiISgwmRGomlUrgWzW7lijwLnubERERlQRMiIqA77+3zQJD2I6IiIioJGBCVARaVLGDVAKExiTjSQK73xMREWk7JkRFoKyZIbycywAATtxlLREREZG2Y0JURFr+2/0+IITtiIiIiLQdE6IiktP9/gy73xMREWk9JkRFpJaTFWzNDZGaIcOlqHhNh0NERERvwYSoiEilErRQdL9nOyIiIiJtxoSoCLVUPMaD7YiIiIi0GROiItSiii2kEuBuTAoes/s9ERGR1tJoQnTy5El07twZ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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.plot(f_values, ratios)\n",
|
|
"plt.xscale('log')\n",
|
|
"plt.xlabel(\"Target slot occupancy rate (f)\")\n",
|
|
"plt.ylabel(\"Honest chain blocks per slot vs f\")\n",
|
|
"plt.title(\"Honest chain block production vs target block production rates\")\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 71,
|
|
"id": "1558fd2d-ec9a-462a-ae69-05cb1636946e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"leader\t3.09s\n",
|
|
"emit\t0.43s\n",
|
|
"slot\t3.52s\n",
|
|
"forkchoice\t0.05s\n",
|
|
"emit_leader_block\t0.10s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.56s\n",
|
|
"HONEST RATIO: 0.01806\n",
|
|
"ACTIVE RATIO: 0.01806\n",
|
|
"F RATIO: 0.02\n",
|
|
"leader\t3.07s\n",
|
|
"emit\t0.36s\n",
|
|
"slot\t3.43s\n",
|
|
"forkchoice\t0.03s\n",
|
|
"emit_leader_block\t0.06s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.46s\n",
|
|
"HONEST RATIO: 0.0096\n",
|
|
"ACTIVE RATIO: 0.0096\n",
|
|
"F RATIO: 0.01\n",
|
|
"leader\t3.11s\n",
|
|
"emit\t0.34s\n",
|
|
"slot\t3.44s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.04s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.48s\n",
|
|
"HONEST RATIO: 0.00642\n",
|
|
"ACTIVE RATIO: 0.00642\n",
|
|
"F RATIO: 0.006666666666666667\n",
|
|
"leader\t3.17s\n",
|
|
"emit\t0.34s\n",
|
|
"slot\t3.50s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.03s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.54s\n",
|
|
"HONEST RATIO: 0.00503\n",
|
|
"ACTIVE RATIO: 0.00503\n",
|
|
"F RATIO: 0.005\n",
|
|
"leader\t3.35s\n",
|
|
"emit\t0.35s\n",
|
|
"slot\t3.70s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.03s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.74s\n",
|
|
"HONEST RATIO: 0.004\n",
|
|
"ACTIVE RATIO: 0.004\n",
|
|
"F RATIO: 0.004\n",
|
|
"leader\t3.22s\n",
|
|
"emit\t0.32s\n",
|
|
"slot\t3.54s\n",
|
|
"forkchoice\t0.02s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.58s\n",
|
|
"HONEST RATIO: 0.00314\n",
|
|
"ACTIVE RATIO: 0.00314\n",
|
|
"F RATIO: 0.0033333333333333335\n",
|
|
"leader\t3.09s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.39s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.42s\n",
|
|
"HONEST RATIO: 0.00277\n",
|
|
"ACTIVE RATIO: 0.00277\n",
|
|
"F RATIO: 0.002857142857142857\n",
|
|
"leader\t3.13s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.44s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.47s\n",
|
|
"HONEST RATIO: 0.00248\n",
|
|
"ACTIVE RATIO: 0.00248\n",
|
|
"F RATIO: 0.0025\n",
|
|
"leader\t3.20s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.51s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.54s\n",
|
|
"HONEST RATIO: 0.00219\n",
|
|
"ACTIVE RATIO: 0.00219\n",
|
|
"F RATIO: 0.0022222222222222222\n",
|
|
"leader\t3.21s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.52s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.56s\n",
|
|
"HONEST RATIO: 0.00183\n",
|
|
"ACTIVE RATIO: 0.00183\n",
|
|
"F RATIO: 0.002\n",
|
|
"leader\t3.20s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.51s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.55s\n",
|
|
"HONEST RATIO: 0.00166\n",
|
|
"ACTIVE RATIO: 0.00166\n",
|
|
"F RATIO: 0.0018181818181818182\n",
|
|
"leader\t3.05s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.34s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.38s\n",
|
|
"HONEST RATIO: 0.00161\n",
|
|
"ACTIVE RATIO: 0.00161\n",
|
|
"F RATIO: 0.0016666666666666668\n",
|
|
"leader\t3.01s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.29s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.32s\n",
|
|
"HONEST RATIO: 0.00154\n",
|
|
"ACTIVE RATIO: 0.00154\n",
|
|
"F RATIO: 0.0015384615384615385\n",
|
|
"leader\t3.18s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.48s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.51s\n",
|
|
"HONEST RATIO: 0.0014\n",
|
|
"ACTIVE RATIO: 0.0014\n",
|
|
"F RATIO: 0.0014285714285714286\n",
|
|
"leader\t3.11s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.40s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.43s\n",
|
|
"HONEST RATIO: 0.00124\n",
|
|
"ACTIVE RATIO: 0.00124\n",
|
|
"F RATIO: 0.0013333333333333333\n",
|
|
"leader\t3.00s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.27s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.30s\n",
|
|
"HONEST RATIO: 0.00121\n",
|
|
"ACTIVE RATIO: 0.00121\n",
|
|
"F RATIO: 0.00125\n",
|
|
"leader\t3.02s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.30s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.33s\n",
|
|
"HONEST RATIO: 0.00117\n",
|
|
"ACTIVE RATIO: 0.00117\n",
|
|
"F RATIO: 0.001176470588235294\n",
|
|
"leader\t3.14s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.43s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.47s\n",
|
|
"HONEST RATIO: 0.00114\n",
|
|
"ACTIVE RATIO: 0.00114\n",
|
|
"F RATIO: 0.0011111111111111111\n",
|
|
"leader\t3.13s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.42s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.45s\n",
|
|
"HONEST RATIO: 0.00114\n",
|
|
"ACTIVE RATIO: 0.00114\n",
|
|
"F RATIO: 0.0010526315789473684\n",
|
|
"leader\t3.31s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.61s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.65s\n",
|
|
"HONEST RATIO: 0.00093\n",
|
|
"ACTIVE RATIO: 0.00093\n",
|
|
"F RATIO: 0.001\n",
|
|
"leader\t3.28s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.58s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.62s\n",
|
|
"HONEST RATIO: 0.00095\n",
|
|
"ACTIVE RATIO: 0.00095\n",
|
|
"F RATIO: 0.0009523809523809524\n",
|
|
"leader\t3.23s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.52s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.56s\n",
|
|
"HONEST RATIO: 0.00095\n",
|
|
"ACTIVE RATIO: 0.00095\n",
|
|
"F RATIO: 0.0009090909090909091\n",
|
|
"leader\t3.41s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.72s\n",
|
|
"forkchoice\t0.01s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.76s\n",
|
|
"HONEST RATIO: 0.00094\n",
|
|
"ACTIVE RATIO: 0.00094\n",
|
|
"F RATIO: 0.0008695652173913044\n",
|
|
"leader\t3.16s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.45s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.48s\n",
|
|
"HONEST RATIO: 0.00085\n",
|
|
"ACTIVE RATIO: 0.00085\n",
|
|
"F RATIO: 0.0008333333333333334\n",
|
|
"leader\t3.12s\n",
|
|
"emit\t0.28s\n",
|
|
"slot\t3.40s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.44s\n",
|
|
"HONEST RATIO: 0.00085\n",
|
|
"ACTIVE RATIO: 0.00085\n",
|
|
"F RATIO: 0.0008\n",
|
|
"leader\t3.38s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.68s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.72s\n",
|
|
"HONEST RATIO: 0.00073\n",
|
|
"ACTIVE RATIO: 0.00073\n",
|
|
"F RATIO: 0.0007692307692307692\n",
|
|
"leader\t3.34s\n",
|
|
"emit\t0.30s\n",
|
|
"slot\t3.64s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.68s\n",
|
|
"HONEST RATIO: 0.00073\n",
|
|
"ACTIVE RATIO: 0.00073\n",
|
|
"F RATIO: 0.0007407407407407407\n",
|
|
"leader\t3.38s\n",
|
|
"emit\t0.31s\n",
|
|
"slot\t3.68s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.72s\n",
|
|
"HONEST RATIO: 0.00073\n",
|
|
"ACTIVE RATIO: 0.00073\n",
|
|
"F RATIO: 0.0007142857142857143\n",
|
|
"leader\t3.23s\n",
|
|
"emit\t0.29s\n",
|
|
"slot\t3.53s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.01s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t3.56s\n",
|
|
"HONEST RATIO: 0.00067\n",
|
|
"ACTIVE RATIO: 0.00067\n",
|
|
"F RATIO: 0.000689655172413793\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"f_values = [1 / (50 * i) for i in range(1, 30)]\n",
|
|
"ratios = []\n",
|
|
"for i in f_values:\n",
|
|
" np.random.seed(0)\n",
|
|
" sim_chain_growth = Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=100000,\n",
|
|
" f=i,\n",
|
|
" adversary_control = 10 ** -9,\n",
|
|
" honest_stake = np.random.pareto(10, 1000)\n",
|
|
" ),\n",
|
|
" network=blend_net\n",
|
|
" )\n",
|
|
" sim_chain_growth.run(seed=0)\n",
|
|
"\n",
|
|
" active_slots = np.full(sim_chain_growth.params.SLOTS, 0)\n",
|
|
" for b in sim_chain_growth.blocks:\n",
|
|
" if active_slots[b.height - 1] == 0:\n",
|
|
" active_slots[b.height - 1] = 1\n",
|
|
" \n",
|
|
" print(f\"HONEST RATIO: {len(sim_chain_growth.honest_chain()) / sim_chain_growth.params.SLOTS}\")\n",
|
|
" print(f\"ACTIVE RATIO: {active_slots.sum() / sim_chain_growth.params.SLOTS}\")\n",
|
|
" print(f\"F RATIO: {sim_chain_growth.params.f}\")\n",
|
|
" ratios.append(len(sim_chain_growth.honest_chain()) / sim_chain_growth.params.SLOTS / sim_chain_growth.params.f)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 72,
|
|
"id": "4d2de249-9d61-498a-b0a3-56f0c5164459",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.plot(f_values, ratios)\n",
|
|
"plt.xscale('log')\n",
|
|
"plt.xlabel(\"Target slot occupancy rate (f)\")\n",
|
|
"plt.ylabel(\"Honest chain blocks per slot vs f\")\n",
|
|
"plt.title(\"Honest chain block production vs target block production rates\")\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"id": "3130e27c-1ce6-439a-a6e7-436990b9315d",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.01s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/tmp/ipykernel_4973/3345309101.py:280: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n",
|
|
" _ = ax.legend()\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAAIjCAYAAACapJ3sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAADiAklEQVR4nOzdeZyN9f//8eeZfTMYjH2N7CLSx65sIZFSlkL5pI+UtYXKvoWQki1Fio9KUvm0EEpFlizZQojIUsQ0ZJg5798ffud858ycGeecOTPnzJnH/XabW53rXMvrOtd1Hed6v67X+20xxhgBAAAAAAAAAAAgU0G+DgAAAAAAAAAAACA3IKkCAAAAAAAAAADgApIqAAAAAAAAAAAALiCpAgAAAAAAAAAA4AKSKgAAAAAAAAAAAC4gqQIAAAAAAAAAAOACkioAAAAAAAAAAAAuIKkCAAAAAAAAAADgApIqAAAAAAAAAAAALiCpAvhQuXLldPfdd3ttfb/++qssFosWLVrktXVmt3Llyql3794eL+vNzy+r3NkXX8dusVg0evRon20fOW/06NGyWCwO09Kes19//bUsFou+/vrrnA0uQB06dEitW7dW/vz5ZbFYtHLlSp/G4+vvHQAAkLf5+n510aJFslgs2rZtW45uNzfdJ+YW3M8C8DWSKgAC3r59+zR69Gj9+uuveWK7yL2WLl2qV155xddh+MTevXvVpUsXVahQQVFRUSpcuLCaNm2qTz/91On8+/fv11133aWYmBjFxcXp4Ycf1h9//OEwz4ULF9SjRw8VLFhQFSpU0JtvvpluPdu2bVNUVJSOHj3q9X3q1auXdu/erQkTJuidd95RvXr1PF7Xxo0bNXr0aF24cMF7AQIAAASg2bNn+/WDhtl5nzh48GDdeuutiouLU1RUlKpWrarRo0crMTEx3bxJSUl67rnnVKJECUVGRur222/XmjVr0s03b948lS9f3v6bOyEhweF9q9WqOnXqaOLEiV7fHwDwVyG+DgCA95QtW1b//POPQkNDfR2Kyw4cOKCgoOzN7+7bt09jxoxR8+bNVa5cuWzbTtp9yantInAsXbpUe/bs0aBBg3yy/aZNm+qff/5RWFhYjm/72LFj+vvvv9WrVy+VKFFCly9f1ocffqh77rlH8+bNU9++fe3znjhxQk2bNlX+/Pk1ceJEJSYm6uWXX9bu3bu1ZcsWe/xPP/20vv76a40ZM0a//PKLHnvsMVWtWlUNGzaUJBljNGDAAA0aNEjly5f36v78888/2rRpk1544QU9+eSTWV7fxo0bNWbMGPXu3VsFChTIeoAAAAABavbs2SpcuLDHPSJ4W07eJ27dulVNmjTRI488ooiICO3YsUMvvfSSvvrqK23YsMEhjt69e2v58uUaNGiQKlWqpEWLFqldu3Zav369GjduLEn67rvv1K9fPw0YMEAVKlTQpEmT9Mwzz2jevHn29bzxxhu6ePGihg4d6tV9AQB/RlIFCCAWi0URERG+DsMt4eHhvg7BawJpX7LDpUuXFB0dHTDb8bUrV64oLCzMq0nJoKAgn32HtGvXTu3atXOY9uSTT6pu3bqaPn26Q1Jl4sSJunTpkn788UeVKVNGklS/fn21atVKixYtss+7atUqTZkyRT179pQk/fTTT/r000/tSZUlS5bo2LFjev75572+P7aqGRIgAADAVf7wO9YfYgg0OXmf+N1336WbdtNNN+npp5/Wli1b9K9//UuStGXLFi1btkxTp07V008/LUnq2bOnatSooWeffVYbN26UdP33dPPmze3V9LGxsRo+fLg9qXLhwgW9+OKLmjdvXsDfD3M/CyA1uv9CrmMbF+DgwYN66KGHlD9/fhUpUkQjRoyQMUa//fabOnbsqNjYWBUrVkzTpk1zWP7q1asaOXKk6tatq/z58ys6OlpNmjTR+vXrHeYbNWqUgoKCtHbtWofpffv2VVhYmHbt2nXDWN99913Vr19fUVFRKliwoJo2barVq1enm++7775T/fr1FRERoQoVKmjx4sUO758/f15PP/20atasqZiYGMXGxqpt27bpYnDWR23v3r0VExOjkydPqlOnToqJiVGRIkX09NNPKyUlJdP4hwwZokKFCskYY5/21FNPyWKx6NVXX7VPO3PmjCwWi+bMmWOflpSUpFGjRqlixYoKDw9X6dKl9eyzzyopKclhG876l/3pp5/UrFkzRUZGqlSpUho/frwWLlwoi8XitEQ6s89v0aJF6tKliyTpjjvukMViyXTMiE8++UQWi0U//fSTfdqHH34oi8Wizp07O8xbtWpVPfjgg073xdXt3ujYZ+Tll19Ww4YNVahQIUVGRqpu3bpavnx5uvmSkpI0ePBgFSlSRPny5dM999yjEydOOMyzfPlyWSwWffPNN+mWnzdvniwWi/bs2WOf9vPPP+v+++9XXFycIiIiVK9ePX3yyScOy9n6K/7mm2/0xBNPKD4+XqVKlZIk/f333xo0aJDKlSun8PBwxcfHq1WrVtq+fbvDOjZv3qy77rpL+fPnV1RUlJo1a6bvv//eYR7b98G+ffvUvXt3FSxYUI0bN7afLzt27Ei3TxMnTlRwcLBOnjyZ6Wd88uRJ9enTRyVKlFB4eLjKly+vfv366erVq/Z5jhw5oi5dutjL6//1r3/pf//7n8N6bOOUvP/++5owYYJKlSqliIgItWjRQr/88ot9vubNm+t///ufjh07Zj9fbE+u2daxbNkyvfjiiypZsqSioqLspfcffPCB6tatq8jISBUuXFgPPfTQDffPGWdjqjRv3lw1atTQvn37dMcddygqKkolS5bUlClT0i1/7Ngx3XPPPYqOjlZ8fLwGDx6sL7/80uNxWoKDg1W6dOl0XV59+OGHuvvuu+0JFUlq2bKlbr75Zr3//vv2af/8848KFixofx0XF6fLly9Lun6zMmzYME2aNEkxMTFuxbVjxw61bdtWsbGxiomJUYsWLfTDDz/Y3x89erTKli0rSXrmmWccjmVGXnvtNVWvXt3+70W9evW0dOlS+/qeeeYZSVL58uXt54ft+3DhwoW68847FR8fr/DwcFWrVs3h+zgzb7/9tkJCQuzrl1y79gAAQNZk9DvW5t1337X/vouLi1PXrl3122+/ubz+devWqUmTJoqOjlaBAgXUsWNH7d+/3+UYrFarRo8erRIlSigqKkp33HGH9u3b5/L4IBcuXFDv3r2VP39+FShQQL169cqwG1N37i82bNigxx9/XIUKFVJsbKx69uypv/76yz5fuXLltHfvXn3zzTf230zNmzd3WFdSUpKGDBmiIkWKKDo6Wvfee2+6bmTTyi33ic7Yfoem/vyXL1+u4OBghweXIiIi1KdPH23atMl+rmX2e1q6fg7VrFkz3WdwI4F+P/vtt9+qS5cuKlOmjL09ZPDgwfrnn38ctmNrrzl8+LDatWunfPnyqUePHho1apRCQ0Odnpd9+/ZVgQIFdOXKFRc+aQDZxgC5zKhRo4wkU7t2bdOtWzcze/Zs0759eyPJTJ8+3VSuXNn069fPzJ492zRq1MhIMt988419+T/++MMUL17cDBkyxMyZM8dMmTLFVK5c2YSGhpodO3bY57t69aqpU6eOKVu2rElISDDGGPPFF18YSWbcuHE3jHP06NFGkmnYsKGZOnWqmTlzpunevbt57rnn7POULVvWVK5c2RQtWtQ8//zzZtasWebWW281FovF7Nmzxz7f1q1bzU033WSGDRtm5s2bZ8aOHWtKlixp8ufPb06ePGmf7+jRo0aSWbhwoX1ar169TEREhKlevbp59NFHzZw5c8x9991nJJnZs2dnug8rVqwwkszu3bvt02655RYTFBRk7r//fvu0Dz74wEiyx5ySkmJat25toqKizKBBg8y8efPMk08+aUJCQkzHjh0dtlG2bFnTq1cv++sTJ06YuLg4U6hQITNmzBjz8ssvmypVqphbbrnFSDJHjx516/M7fPiwGTBggJFknn/+efPOO++Yd955x5w+fdrpPp87d85YLBbz2muv2acNHDjQBAUFmSJFitinnT171kgys2bNcrovN9quq8c+I6VKlTJPPPGEmTVrlpk+fbqpX7++kWRWrVrlMN9DDz1kJJnu3bubWbNmmc6dO5tatWoZSWbUqFHGGGMuX75sYmJizBNPPJFuO3fccYepXr26/fWePXtM/vz5TbVq1czkyZPNrFmzTNOmTY3FYjErVqywz7dw4UIjyVSrVs00a9bMvPbaa+all14yxhjTvXt3ExYWZoYMGWIWLFhgJk+ebDp06GDeffdd+/Jr1641YWFhpkGDBmbatGlmxowZplatWiYsLMxs3rzZPp/t+6BatWqmY8eOZvbs2eb11183CQkJJjIy0gwdOjTdPlWrVs3ceeedmX6+J0+eNCVKlLCfw3PnzjUjRowwVatWNX/99ZcxxpjTp0+bokWLmnz58pkXXnjBTJ8+3X59pP4s1q9fbySZOnXqmLp165oZM2aY0aNHm6ioKFO/fn37fKtXrza1a9c2hQsXtp8vH330kcM6qlWrZmrXrm2mT59uJk2aZC5dumT/rG+77TYzY8YMM2zYMBMZGWnKlStnjzX1Z5Va2uvPtp3169fbpzVr1syUKFHClC5d2gwcONDMnj3b3HnnnUaS+eyzz+zzJSYmmgoVKpjIyEgzbNgw88orr5j69evbr93U68xMYmKi+eOPP8wvv/xipk+fboKDg0337t3t7584ccJIMpMnT0637EMPPWTi4uLsr1u0aGGaN29uDh48aL744gsTGRlpP8+ef/55U79+fWO1Wl2Ky2bPnj0mOjraFC9e3IwbN8689NJLpnz58iY8PNz88MMPxhhjdu3aZWbMmGEkmW7dujkcS2fmz59vJJn777/fzJs3z8ycOdP06dPHDBgwwL6+bt26GUlmxowZ9vMjMTHRGGPMbbfdZnr37m1mzJhhXnvtNdO6det030/GXD/e7du3t7+eN2+esVgs5oUXXrBPc/XaAwAAWZPR71hjjBk/fryxWCzmwQcfNLNnzzZjxowxhQsXTvf7LiNr1qwxISEh5uabbzZTpkyxL1+wYEGH+6nMYnj22WeNJNOhQwcza9Ys89hjj5lSpUqZwoULO/x+dMZqtZqmTZuaoKAg88QTT5jXXnvN3Hnnnfb7kNT3q+7eX9SsWdM0adLEvPrqq6Z///4mKCjING3a1P6b7qOPPjKlSpUyVapUsf9mWr16tcM66tSpY+68807z2muvmaFDh5rg4GDzwAMPZLpPueU+0Rhjrl27Zv744w9z8uRJ8+WXX5oqVaqYfPnymXPnztnnadmypalatWq6Zb/66isjyXzyySfGGGPeeecdExUVZb788ktz8OBB07RpU9OyZUtjjDF79+414eHhZteuXS7FlVqg388+9dRTpl27dmbixIlm3rx5pk+fPiY4ONihHcWY6+014eHh5qabbjK9evUyc+fONYsXLzaHDh0ykhzON2OMSUpKMgULFjSPPvqo2585AO8iqYJcx/bDr2/fvvZpycnJplSpUsZisdj/oTPGmL/++stERkY6/OhLTk42SUlJDuv866+/TNGiRdP9w7R7924TFhZm/v3vf5u//vrLlCxZ0tSrV89cu3Yt0xgPHTpkgoKCzL333mtSUlIc3kvdgFe2bFkjyWzYsME+7ezZsyY8PNyhMfjKlSvp1nP06FETHh5uxo4d6zDNWVJFksN8xhh7A29mbD8IbcmXCxcumKCgINOlSxdTtGhR+3wDBgwwcXFx9n175513TFBQkPn2228d1jd37lwjyXz//fcOn0Hq4/PUU08Zi8XikOA6d+6ciYuLc5pUceXzsyV9XG3UrV69usOP6ltvvdV06dLFSDL79+83xvxfwin1D8i0+5LZdl2NPSOXL192eH316lVTo0YNh2TBzp07jaR0Py67d+/u8CPUGGO6detm4uPjTXJysn3aqVOnTFBQkMO506JFC1OzZk1z5coV+zSr1WoaNmxoKlWqZJ9m+xHauHFjh3UaY0z+/PlN//79M9w3q9VqKlWqZNq0aeNwvVy+fNmUL1/etGrVyj7N9n3QrVu3dOvp1q2bKVGihMO1s3379nTXiDM9e/Y0QUFBZuvWrU7jM8aYQYMGGUkO5/nff/9typcvb8qVK2ffri1RUbVqVYfvnpkzZ6ZLWrZv396ULVs23TZt66hQoYLDsb969aqJj483NWrUMP/88499+qpVq4wkM3LkSPu0rCRVJJnFixfbpyUlJZlixYqZ++67zz5t2rRpRpJZuXKlfdo///xjqlSp4tb19/jjjxtJRpI9gXv+/Hn7+1u3bk0Xj80zzzxjJNnPz59++smUKlXKvr777rvPpKSkmCNHjpjIyEizadMml2JKrVOnTiYsLMwcPnzYPu333383+fLlM02bNrVPs30fT5069Ybr7Nixo8PNnjNTp05N9x1ok/b7wBhj2rRpYypUqOAwLXVSZebMmcZisTg8JODOtQcAALImo9+xv/76qwkODjYTJkxwmL57924TEhKSbroztWvXNvHx8Q6N6Lt27TJBQUGmZ8+eN4zh9OnTJiQkxHTq1Mlhuu3BwRslVVauXGkkmSlTptinJScnmyZNmqT7Le7u/UXdunXN1atX7dOnTJliJJmPP/7YPq169eqmWbNm6eKyraNly5YOv3UGDx5sgoODzYULFzLdr9xwn2iMMZs2bbL//pVkKleunG5b1atXd/qg2d69e40kM3fuXGPM9ePWuXNn+7pKly5tfvrpJ2OMMa1btzb/+c9/XIoprUC+n3W2f8YYM2nSJGOxWMyxY8fs02ztNcOGDUs3f4MGDcztt9/uMM12frl6bwUg+9D9F3Ktf//73/b/Dw4OVr169WSMUZ8+fezTCxQooMqVK+vIkSMO89oGMbZarTp//rySk5NVr169dN0P1ahRQ2PGjNGCBQvUpk0b/fnnn/auUjKzcuVKWa1WjRw5Mt14BxaLxeF1tWrV1KRJE/vrIkWKpIs5PDzcvp6UlBSdO3dOMTExqly5crqYM/Kf//zH4XWTJk0ctuFMkSJFVKVKFW3YsEGS9P333ys4OFjPPPOMzpw5o0OHDkm6XtrauHFj+7598MEHqlq1qqpUqaI///zT/nfnnXdKUrqu1lL74osv1KBBA9WuXds+LS4uTj169HA6vyufn7uaNGmib7/9VtL10t5du3apb9++Kly4sH36t99+qwIFCqhGjRoebycrsUdGRtr//6+//tLFixfVpEkTh/Phs88+kyQNGDDAYVlng6A/+OCDOnv2rEPZ+fLly2W1Wu2l6+fPn9e6dev0wAMP6O+//7Yf13PnzqlNmzY6dOhQui6nHnvsMQUHBztMK1CggDZv3qzff//d6b7t3LlThw4dUvfu3XXu3Dn7di5duqQWLVpow4YNslqtDsukPb+l630C//777w7n25IlSxQZGan77rvP6bal698LK1euVIcOHVSvXr1079vO888++0z169d36KYhJiZGffv21a+//qp9+/Y5LPfII484DABvO/bunKu9evVyOPbbtm3T2bNn9cQTTziMhdK+fXtVqVIlXVdknoqJidFDDz1kfx0WFqb69es7xP7FF1+oZMmSuueee+zTIiIi9Nhjj7m1rUGDBmnNmjV6++231bZtW6WkpDh0uWYrmXfWZ7PtM7DNU7NmTR06dEhbt27VoUOHtHz5cgUFBWno0KG677779K9//UsrVqzQLbfcovLly2vs2LEO3R2mlZKSotWrV6tTp06qUKGCfXrx4sXVvXt3fffdd/Yu2dxRoEABnThxQlu3bnV7Wcnx++DixYv6888/1axZMx05ckQXL15MN/+UKVM0cOBATZ48WS+++KJ9uifXHgAAyJq0v2NXrFghq9WqBx54wOFeqlixYqpUqVKm91KSdOrUKe3cuVO9e/dWXFycfXqtWrXUqlUr+z1CZjGsXbtWycnJeuKJJxymP/XUUy7t02effaaQkBD169fPPi04ODjd8p7cX/Tt21ehoaH21/369VNISIjT/cpI3759He7LmzRpopSUFB07dizT5XLDfaJt+TVr1mjlypV69tlnFR0drcTERId5/vnnH5d+TwcHB+vDDz/UoUOHtG3bNh08eFA1a9bUJ598oi1btmjcuHE6efKkOnTooBIlSqhDhw4Z3uelFsj3s2n379KlS/rzzz/VsGFDGWOcdlGd+lqx6dmzpzZv3qzDhw/bpy1ZskSlS5dWs2bNMtw2gJxBUgW5Vuq+9CUpf/78ioiIUOHChdNNT93HqnS9D/latWopIiJChQoVUpEiRfS///3PaePTM888o1tuuUVbtmzRqFGjVK1atRvGdvjwYQUFBbk0b9r9kKSCBQs6xGy1WjVjxgxVqlRJ4eHhKly4sIoUKaKffvrJacxpRUREqEiRIpluIyOpfzh+++23qlevnurVq6e4uDh9++23SkhI0K5duxx+9B06dEh79+5VkSJFHP5uvvlmSdLZs2cz3N6xY8dUsWLFdNOdTZNc+/zc1aRJE506dUq//PKLNm7cKIvFogYNGqT7LBo1apSlQcKzEvuqVav0r3/9SxEREYqLi1ORIkU0Z84ch/Ph2LFjCgoK0k033eSwbOXKldOtzzZ+wnvvvWef9t5776l27dr24/bLL7/IGKMRI0akO7ajRo2SlP7Yli9fPt22pkyZoj179qh06dKqX7++Ro8e7XCDYEvW9erVK912FixYoKSkpHTnvbPttGrVSsWLF9eSJUskXb+O/vvf/6pjx47Kly+fk0/1uj/++EMJCQk3vBE6duyY08+yatWq9vdTS3u8bX0Tu3Oupt1P2zacxVGlSpUb3hi6qlSpUukSwmnP1WPHjummm25KN19G125GqlSpopYtW6pnz55atWqVEhMT1aFDB3uyw3aDknZ8Jkn2foVT38TY+km2xbFu3TqtXr1aL730kg4cOKCuXbtq0KBBeuuttzR79myHManS+uOPP3T58uUMj7vVanWrr3Ob5557TjExMapfv74qVaqk/v37uzWGyffff6+WLVva+0wvUqSInn/+eUlKd6188803eu655/Tcc885jKMieXbtAQCArEn7++7QoUMyxqhSpUrp/j3ev3+//fd2YmKiTp8+bf+zjb2Q2e/DqlWr2h+YyCwG2zrS/o6Li4tzGF8jI8eOHVPx4sXTjVuXNiZP7i8qVark8DomJkbFixd3OvZmRjz9XZ4b7hOl64PJt2zZUh07dtTkyZM1dOhQdezY0WFM1sjISJd/T0vXz4W6desqIiJCV69e1dChQzVq1CgVLlxYXbt2VWRkpD799FNFRESoe/fuN4wxkO9nJen48eP2xKZtXFtbIiTt7+mQkBD7eC2pPfjggwoPD7ffz168eFGrVq1Sjx490t1zAch5mT9uD/ixtE8LZDRNksOTx++++6569+6tTp066ZlnnlF8fLyCg4M1adIkhycAbI4cOWJvaNq9e7eXoncv5okTJ2rEiBF69NFHNW7cOMXFxSkoKEiDBg1y6anhjLbhisaNG+uNN97QkSNH9O2336pJkyayWCxq3Lixvv32W5UoUUJWq9UhqWK1WlWzZk1Nnz7d6TpLly7tcTxpufL5uctWebBhwwYdOXJEt956q6Kjo9WkSRO9+uqrSkxM1I4dOzRhwgSPtyF5Hvu3336re+65R02bNtXs2bNVvHhxhYaGauHChfaBrd0VHh6uTp066aOPPtLs2bN15swZff/995o4caJ9Htu59vTTT6tNmzZO15P2xivtj3FJeuCBB9SkSRN99NFHWr16taZOnarJkydrxYoVatu2rX07U6dOdahYSi3tDZqz7QQHB6t79+564403NHv2bH3//ff6/fffHSoucpI3zlVn+5kTsuM6c9X999+vxx9/XAcPHlTlypVVvHhxSdefwkzr1KlTiouLc/rUnXS90mTgwIEaNmyYSpYsqXHjxqlhw4Z65JFHJEmPP/64lixZYn+dU6pWraoDBw5o1apV+uKLL/Thhx9q9uzZGjlypMaMGZPpsocPH1aLFi1UpUoVTZ8+XaVLl1ZYWJg+++wzzZgxI92/EdWrV9eFCxf0zjvv6PHHH3e4UfTk2gMAAFmT9ved1WqVxWLR559/7vQ3mO3f4pdfftnhd0LZsmXdSixkFkNO8eT+whs8/W3r7/eJGencubMefvhhLVu2TLfccouk65XWaasypP/7jV2iRIkM1zdjxgyFhIToySef1G+//abvvvtOR48eVbly5TRlyhRVqFBBJ06ccJookAL/fjYlJUWtWrXS+fPn9dxzz6lKlSqKjo7WyZMn1bt373S/z1P3TJJawYIFdffdd2vJkiUaOXKkli9frqSkJJ/dzwJwRFIFec7y5ctVoUIFrVixwiG7b3syITWr1arevXsrNjZWgwYN0sSJE3X//ferc+fOmW7jpptuktVq1b59+zJsmHI35jvuuENvvvmmw/QLFy6kq8zxNluyZM2aNdq6dauGDRsmSWratKnmzJmjEiVKKDo6WnXr1rUvc9NNN2nXrl1q0aKF209QlC1bVr/88ku66c6mucrdGMqUKaMyZcro22+/1ZEjR+yfQdOmTTVkyBB98MEHSklJUdOmTb26XVd9+OGHioiI0JdffunQeLxw4UKH+cqWLSur1arDhw87PM1z4MABp+t98MEH9fbbb2vt2rXav3+/jDH2UmlJ9u6OQkND1bJlyyztQ/HixfXEE0/oiSee0NmzZ3XrrbdqwoQJatu2rf1JJNsTVlnRs2dPTZs2TZ9++qk+//xzFSlSJMMf0DZFihRRbGys9uzZk+l8ZcuWdfpZ/vzzz/b33eXJ9SJdP6a27vVsDhw44FEMnipbtqz27dsnY4zDfmTl2pX+r+sB2xNdJUuWVJEiRbRt27Z0827ZsiXT79w5c+bo77//1tNPPy1J+v333x1uGEuUKOH05tKmSJEiioqKyvC4BwUFeZw0jo6O1oMPPqgHH3xQV69eVefOnTVhwgQNHz5cERERGZ4bn376qZKSkvTJJ584PNWYUdcghQsX1vLly9W4cWO1aNFC3333nf0z8Oa1BwAAPHPTTTfJGKPy5cvbn7B3pmfPng7d0Noaf1P/Pkzr559/VuHChRUdHZ1pDLZ1/PLLLw4PYJw7d86laomyZctq7dq1SkxMdHggI21MntxfHDp0SHfccYf9dWJiok6dOqV27drZp2XXfZi/3ydmJCkpSVar1aFConbt2lq/fr0SEhIUGxtrn75582b7+86cOnVK48eP1wcffKCQkBB7F1i235O2/548eTLDpEqg38/u3r1bBw8e1Ntvv62ePXval1mzZo3b2+nZs6c6duyorVu3asmSJapTp46qV6+epdgBeAfdfyHPsT31kfopj82bN2vTpk3p5p0+fbo2btyo+fPn259o7tevn/78889Mt9GpUycFBQVp7Nix6Z5C8OTpkuDg4HTLffDBB5k2/nlL+fLlVbJkSc2YMUPXrl1To0aNJF1Pthw+fFjLly/Xv/71L4dxZh544AGdPHlSb7zxRrr1/fPPP+nKzVNr06aNNm3apJ07d9qnnT9/3l7y6gnbTcOFCxdcXqZJkyZat26dtmzZYv+xXLt2beXLl08vvfSSIiMjHRJJ3tquK4KDg2WxWJSSkmKf9uuvv2rlypUO87Vt21aS9OqrrzpMf+WVV5yut2XLloqLi9N7772n9957T/Xr13e4iYqPj1fz5s01b948p1UCti4HMpOSkpKu3Dk+Pl4lSpSwl5/XrVtXN910k15++eV0ff+6uh2bWrVqqVatWlqwYIE+/PBDde3a9YZjIgUFBalTp0769NNPnTbc267Fdu3aacuWLQ7fHZcuXdL8+fNVrlw5l7r/Sys6Otqt7pXq1aun+Ph4zZ0716F8//PPP9f+/fvVvn17t2PwVJs2bXTy5El98skn9mlXrlxx+j3gjLNuAa9du6bFixcrMjLS4fO87777tGrVKoeuttauXauDBw+qS5cuTtd//vx5jRo1SlOnTrX3FV20aFF7EkyS9u/fr2LFimUYY3BwsFq3bq2PP/7Y4UnQM2fOaOnSpWrcuLHDTamrzp075/A6LCxM1apVkzFG165dk5Tx94mzf9MuXryY7qY0tVKlSumrr77SP//8o1atWtm3781rDwAAeKZz584KDg7WmDFj0t0DGmPs/25XqFBBLVu2tP/Z7tOKFy+u2rVr6+2333b43bBnzx6tXr3aIfmQkRYtWigkJERz5sxxmD5r1iyX9qFdu3ZKTk52WD4lJUWvvfaaw3ye3F/Mnz/f/vtIuv7QTHJysv3eR7r+u8nb92A2/nyfeOHCBYfPxmbBggWS5DBe5P3336+UlBTNnz/fPi0pKUkLFy7U7bffnuGDQsOGDVPTpk111113Sbr+e1r6vwfL9u/fL0k3/E0dyPezzn6fG2M0c+bMG64/rbZt26pw4cKaPHmyvvnmG6pUAD9CpQrynLvvvlsrVqzQvffeq/bt2+vo0aOaO3euqlWr5tCItH//fo0YMUK9e/dWhw4dJEmLFi1S7dq19cQTT+j999/PcBsVK1bUCy+8oHHjxqlJkybq3LmzwsPDtXXrVpUoUUKTJk1yO+axY8fqkUceUcOGDbV7924tWbLEYaDk7NSkSRMtW7ZMNWvWtPc3ayt1PnjwYLo+Ux9++GG9//77+s9//qP169erUaNGSklJ0c8//6z3339fX375pdMBwCXp2Wef1bvvvqtWrVrpqaeeUnR0tBYsWKAyZcro/PnzHj3VU7t2bQUHB2vy5Mm6ePGiwsPDdeeddyo+Pj7TfV6yZIm9qzPp+o+jhg0b6ssvv1Tz5s0dBh331nZd0b59e02fPl133XWXunfvrrNnz+r1119XxYoV9dNPPzlsv1u3bpo9e7YuXryohg0bau3atRlWDoSGhqpz585atmyZLl26pJdffjndPK+//roaN26smjVr6rHHHlOFChV05swZbdq0SSdOnHDop9eZv//+W6VKldL999+vW265RTExMfrqq6+0detWTZs2TdL1pMaCBQvUtm1bVa9eXY888ohKliypkydPav369YqNjdWnn37q8ufVs2dPe2WCqz9CJ06cqNWrV6tZs2bq27evqlatqlOnTumDDz7Qd999pwIFCmjYsGH673//q7Zt22rAgAGKi4vT22+/raNHj+rDDz/0qB/lunXr6r333tOQIUN02223KSYmxv7940xoaKgmT56sRx55RM2aNVO3bt105swZzZw5U+XKldPgwYPdjsFTjz/+uGbNmqVu3bpp4MCB9vFsbAmMG127jz/+uBISEtS0aVOVLFlSp0+f1pIlS/Tzzz9r2rRpDk85Pv/88/rggw90xx13aODAgUpMTNTUqVNVs2bNDLvuGjFihGrWrOmQdLnvvvs0duxY9evXT2XLltW8efMy7LbQZvz48VqzZo0aN26sJ554QiEhIZo3b56SkpI0ZcoUVz8uB61bt1axYsXUqFEjFS1aVPv379esWbPUvn17+/g/tpvzF154QV27dlVoaKg6dOig1q1bKywsTB06dNDjjz+uxMREvfHGG4qPj3d6s2hTsWJFrV69Ws2bN1ebNm20bt06xcbGevXaAwAA7rvppps0fvx4DR8+XL/++qs6deqkfPny6ejRo/roo4/Ut29f+2/bjEydOlVt27ZVgwYN1KdPH/3zzz967bXXlD9/fo0ePfqGMRQtWlQDBw7UtGnTdM899+iuu+7Srl279Pnnn6tw4cI3/F3XoUMHNWrUSMOGDdOvv/6qatWqacWKFU4fHnL3/uLq1atq0aKFHnjgAR04cECzZ89W48aNdc8999jnqVu3rubMmaPx48erYsWKio+PT1fV7Sl/vk/8+uuvNWDAAN1///2qVKmSrl69qm+//VYrVqxQvXr1HO6Fbr/9dnXp0kXDhw/X2bNnVbFiRb399tv69ddf0/WQYbNlyxa99957Dvec5cqVU7169dS7d2/16dNHCxYs0O23355pxXyg389WqVJFN910k55++mmdPHlSsbGx+vDDDz0a9zU0NFRdu3bVrFmzFBwcrG7durm9DgDZxAC5zKhRo4wk88cffzhM79Wrl4mOjk43f7NmzUz16tXtr61Wq5k4caIpW7asCQ8PN3Xq1DGrVq0yvXr1MmXLljXGGJOcnGxuu+02U6pUKXPhwgWH9c2cOdNIMu+9994NY33rrbdMnTp1THh4uClYsKBp1qyZWbNmjf39smXLmvbt2zuNuVmzZvbXV65cMUOHDjXFixc3kZGRplGjRmbTpk3p5jt69KiRZBYuXHjDz8X2Obri9ddfN5JMv379HKa3bNnSSDJr165Nt8zVq1fN5MmTTfXq1e37X7du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AYC8yWq1KiUlJd30EydOKF++fD6ICAAAAEB2cXtwijp16jht6LNYLIqIiFDFihXVu3dv3XHHHTdc1zfffKP+/fvrtttuU3Jysp5//nm1bt1a+/btU3R0tNNlNm7cqG7dumnSpEm6++67tXTpUnXq1Enbt29XjRo13N0d5CAqVVybj0qV7EWlSmDxt+uDShUAyJtat26tV155RfPnz5d0/d4oMTFRo0aNUrt27XwcHQAAAABvcrvF7q677tKRI0cUHR2tO+64Q3fccYdiYmJ0+PBh3XbbbTp16pRatmypjz/++Ibr+uKLL9S7d29Vr15dt9xyixYtWqTjx4/rxx9/zHCZmTNn6q677tIzzzyjqlWraty4cbr11ls1a9Ysd3cFOYxKFdfmo1Ile1GpElj87fqgUgUA8qZp06bp+++/V7Vq1XTlyhV1797d3vXX5MmTfR0eAAAAAC9yu1Llzz//1NChQzVixAiH6ePHj9exY8e0evVqjRo1SuPGjVPHjh3dWvfFixclSXFxcRnOs2nTJg0ZMsRhWps2bbRy5Uqn8yclJSkpKcn+OiEhwa2YkN7AgQP18MMPq169epKktWvX6p133rnhcn/88YeaNGmS5e3HxsZmaflTp06pd+/ebi939OhRt5cJCwvTggUL9M033+jQoUOSpAsXLqh37976+++/7fOFhIRo48aN6t27t3bt2qU2bdo4rOPxxx+399E9cuRIVahQwe1YPHHixAm9+OKLkqR+/frp9ttvdzrfsmXL9MUXX7i0zkGDBql27dr217///rsOHDigVatW6dy5c+nmv++++9ShQwe99957+vzzz9O9/9RTT2nWrFn2huv69evriSeekHT9O2Xw4MEOlQKbNm1SSMj/ffWFhYXp008/1alTpxQcHKxXX301w0o5T2zYsEFvvfWWtm/frgcffNA+PTg4WFu3blXv3r21Z88eNWrUyGG58PBw+/9fuXLFfs52795drVu39lp8ucnly5f11FNP2btXSUhIUKlSpfTkk08qMjLSPl/79u31888/6/Dhwxmuy2KxaOLEiSpevLhXY0ybIAsLC9MHH3yggwcPZhjH5MmTFR8f79U48rply5Y5rRA6f/68/VoKCQnR66+/roULF+qHH35wmC8oKEgzZ870qy57tmzZotmzZ0uSxo0bp9KlS3u8rsmTJ2v//v0O08LC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3UkVK4f/shpJFXuQVMlusSRVDMNIi99hVpaTpAoAAAAAAImx9dvr6tWr9ctf/lIdO3aUy+XSc889F/U9K1eu1IABA1RQUKAePXpo0aJFSS8n/oukSvYK9xQzSZXwSKrYg6RKdoslqeL/t5NZeS8hqQIAAAAAQGJsbf05cOCA+vbtazqWvn37do0cOVKnn366Nm/erClTpuh//ud/tHz58iSXFF7eRkNv4wuNiNmDpErsSKrYg4nqs5vZevA24KdDnVl5bpFUAQAAAAAgMTHPqWKlESNGaMSIEabXX7hwoUpLS3XHHXdIknr16qU33nhDd911V8BcL0ge75Ok3k4VnizNHiRVYkdSxR52JVW4HzoDSZX4tmX3vYXrBwAAAACQLmztVIlVVVWVysvLA5ZVVFRoypQpYd9TW1ur2tpa3881NTXJKp7lbrvtNn3wwQe+n/v16xf2s37++ee66aabfD+fdtppGjdunF555RU98cQTjdYvKirSggULTJflxRdf1NKlS1VVVaWbb75Zbrdb48aN06FDh9ShQwfT20HiDhw4oHHjxkmSLrroIg0bNkxPPfWUfv3rXzfqYIhVbW2tJk6cqPr6eknSd99953vN7XZrwoQJyssLvG1UV1frzDPPNL2PnJwcX/kl6dtvv1WPHj1UUFAQcn23261HHnlE5513XsjXi4uLG61/7733atmyZfr8889Nl8vro48+CiifWaWlpbrxxhslHWkcvOyyy7R37141b9485m1F4na7NW3aNN92mzVrpnnz5oVc1+Px6G9/+5vOP//8sNurq6vT5ZdfruLiYl+HdapdfvnlkhTxnrRhwwZt27bN1PYKCgrCnk/+du/e3aiumzdvrvvuu6/RupMnT9a+fft8P48cOVLnnntuwDrxPmm/c+dOXzncbrfuv//+gGv5H//4h5555hnl5uZq/vz5KiwslCTt27dPV111lbp16+Y791Lh8ccf16FDh/S73/1OkjR37lxt2bJFPXr00PXXXy/pyLG47LLLVFtbqxEjRuiMM87QNddcI8MwlJubq3nz5qlJkyYht//kk0/qwgsvDFi2Z88eTZs2zVSSIpZ7ksvlUn5+fsjXPvvss0bnx0033aTu3bub2nYo+/bt0+uvv65f/OIXMb1v0aJFAeXcs2ePr2x5eXmaN2+eCgsL9dZbb+nBBx+MuK0tW7botttua7Q8Ly9P69at8223c+fOuuWWW2Iqp1kHDhzQlVdeqYaGBt+yt956S/n5+crPz9fYsWN9HSzdu3cP+P+NJN1///1q3ry5fvGLX+jNN9/UyJEjk1JOAAAAAABCSatOlerqapWUlAQsKykpUU1NjQ4dOhSygWb27NmaOXNmqopoqVWrVunxxx/3/Tx27NiwnSrbt29Xjx49dPnll+vQoUOaNm2axo0bp7fffltjxozRwIEDA9YfM2ZMTGV5/fXXdemll+qee+5RixYt9Pjjj+vgwYOSjjTqInX++c9/6ocfftC6deu0du1aDRs2TE8//bR++ctfqqioKKFt79+/XwcPHvQ10vs3TD/88MO+Og8W3LERyZIlSwK2U1BQoMLCwrAdQjNmzNBVV10Vdh+LFy8O+HnUqFE644wzJB1poI7VunXrVFdXF/P7LrroIt+/DcPQjh079MQTT6hp06YxbyuS2bNna//+/b6fI13LdXV1Wrp0acROlUOHDmnPnj366quvLC1nLD777LOoT6i/++67pu/l06ZNM/XE+4oVKwI63aXwx3Pbtm168sknJR3pBJk3b16jTpV4n7R/7bXXdPjwYUnS+PHjVVdXF3A9rF69Wpdffrnuvfdeff/9975OlW+++UYFBQVau3ZtzPtMxPLly7Vz505fp8rq1av1+OOP6+KLL/atU1dXp+rqat16662688471atXL7Vu3Vp/+tOfNGXKFNXU1ITtVFm8eHGjTpXdu3erqKhIs2bNMlVGs/ekvXv3hv0dVlVVFXAvWLBggbZv355Qp8ru3bv1yiuvxNypsmzZMv3f//1fwM/ec/eKK67Q/v37VVhYqI0bN2rkyJEaNmxYxO21atWq0TK3263Nmzf7OtX972lW27t3rzwej+68807fstzcXLVo0UKLFy8O+B3hf155/fWvf1VpaalOOukkvfrqq3SqAAAAAABSKq06VeIxffp0TZ061fdzTU2NunTpYmOJzMvJyVHr1q19P0dqrPN4PGrevLlat26tH374wfc0r2EYatWqVcB2JIV9MjfS9lu3bq0WLVpIkgoLC30Ne0itoqIiFRUVqWXLlgH1bMWwLR6PR02aNGl0vkjW1Xms28nPzw9ZHq9Qc6pEWj+aeJMl/uXweDwqLCxMqBzhuN3ugO1G6jjyeDxRn+w3DENNmjTxNeqnmmEYKigo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lXmCO5miycThvxIpR/DwX7EeTwAAAAAAEkWnikORVIEZTFTvHE5NqkR76t/upAjDf0XefyYmVaJtn+G/AmVqUiXecjBRPQAAAADAbo5oPZ0/f766d++uwsJCDRkyRGvXro24/tKlS9WzZ08VFhaqT58+eumll1JU0tQhqQIzSKo4B0mV+Ni9/2AkVSKzIqkSbfuZnlRhovrEysFE9QAAAAAAu9neqfLUU09p6tSpuvHGG7Vx40b17dtXFRUV2r17d8j133rrLV1wwQWaMGGCNm3apLPPPltnn3223n///RSXPLlIqsCMZCRV6FSJj1OTKpkwp0oqO6mcnFQx+55kIqmSOKuTKrGuZ5ZTEiAkVQAAAAAATmN7S/mdd96pSy65ROPHj9fxxx+vhQsXqqioSI888kjI9e+55x6deeaZuvrqq9WrVy/dfPPNGjBggObNm5fikicXSRWYYXVSxbtNxI6kSnzM7N/u4+mUpIrZ9yQTSZXEWZ1UiXU9s5ySACGpAgAAAABwGlvnVDl8+LA2bNig6dOn+5bl5OSovLxcVVVVId9TVVWlqVOnBiyrqKjQc889F3L92tpa1dbW+n6uqalJvOAJqK2t1e9+97uo623dulVz5swJWOZ2u/Xwww/r9ddfb7R+8Odyu936y1/+osGDB4fcfn5+vl5//XWNGzcualn27t2r3r17R10Pqed2u/XII49o/PjxWr9+van6jGTLli3WFCwLud1uLV26VB999JGqqqqUl5ea22t+fr5WrVoVsu7XrVun8vJy3X333XrmmWdCvn/z5s3KycmR2+3W8uXLEz6HYvXGG28oPz9fhmGEvSd5PB653e6UlMftdmvlypUB5aiqqtLMmTMbrTdr1iy1a9fOt8yKBu28vDytW7fOt//vvvtOAwYM8L2+detW32vbt2/3leXpp5/Wxx9/nPD+o/n3v/+t0aNHy+12a968eTp06JDmzp3rK8dTTz2lLVu2aO3atcrNzfUtb9q0acB2tm3bFrKu165dq2nTpumhhx7SmjVrfMu/+OKL5H2oGNTU1CR0jXz++ecaMmSIZsyYoTZt2ph6z44dOzR27NiI62zdulW/+93vlJ+fH3fZgrndbj333HNJOfaxnKve8/uTTz6RJH322We68sorfeeV2+3W9ddfr9atW1tezmSYM2eO2rdvb3cxAAAAAAAJsLVT5ZtvvlFDQ4NKSkoClpeUlOjDDz8M+Z7q6uqQ61dXV4dcf/bs2Y0aw+zkdrt15513mlq3VatWAT+feeaZGjJkSMh1CwsLA34eN26czjnnHDVr1izk+sXFxdqwYYMaGhpMlaV58+am1kNq3X777dq/f79atGih888/X/X19QltL1UdAZmof//+evXVV31P2gc3IidLq1attH79+pDXcl5enpo2bapRo0aFfX9eXp5ycnLUuXNnVVVVpXwYndzcXBUXF0tSxHtSUVFRSsrTpk0brVu3LqAcOTk5atmyZcB6V111lSZMmBCwrEmTJgnv3+12a9OmTQHXsv/9d9OmTaqrq/OtK0n9+vXznXup0KJFC7lcLg0fPlzSf39XDR48WJWVlZKOnFfe30tXXHGFLrnkkoBtrF+/3vc5/OXk5KhFixY655xzApanqlMtmpdeekk//PBD3O93u90qKCjQ999/H9P7WrRoEfH1jRs3qq6uztL7zgknnKCVK1cm5byKpfOnb9++eu211wLK0bJlSxmGobFjx8Z1PO0UrS4BAACs1v26F33/Lsg1NHew1Pum5aptcOnzOSNtLBkApK+Mb0GdPn16QLKlpqZGXbp0sa08Lpcr7qcpY3lvbm5u1HX5Yp/+3G63r569DdOwh8vlatQRmirRrmWz943gjoNUc8o9yUw58vLykvZkfKRrOVQHt13nXvDnD/c7Ki8vr1EHf7SOeqemDoqKiizp4LP68yXrwQe77mn+Ip3f3vPKqecLAAAAACAz2dqp0rZtW+Xm5mrXrl0By3ft2hV2aIT27dvHtH5BQYEKCgqsKTAAAAAAAAAAAMhatk5U73a7NXDgQK1YscK3zOPxaMWKFSorKwv5nrKysoD1JamysjLs+gAAAAAAAAAAAFawffivqVOnauzYsRo0aJAGDx6su+++WwcOHND48eMlSRdffLE6deqk2bNnS5ImT56sU089VXfccYdGjhypJUuWaP369XrwwQft/BgAAAAAAAAAACDD2d6pct555+k///mPZsyYoerqavXr10/Lli3zTUa/Y8cO5eT8N1Dz4x//WE8++aSuv/56/fGPf9Sxxx6r5557Tr1797brIwAAAAAAAAAAgCxge6eKJE2aNEmTJk0K+drKlSsbLTv33HN17rnnJrlUAAAAAAAAAAAA/2XrnCoAAAAAAAAAAADpgk4V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W1VUVEiS3n//fY0YMULNmjVTSUmJLrroIn3zzTcRt+XxeDRr1ix17txZBQUF6tevn5YtW+Z73Zv6eOqpp3TqqaeqsLBQixcvVn19va688kq1bNlSbdq00bXXXquxY8dGHV5r0aJF6tq1q4qKinTOOefo22+/bbTO888/rwEDBqiwsFBHH320Zs6cqfr6et/rLpdL999/v0aMGKEmTZro6KOP1tNPP+17vbS0VJLUv39/uVwunXbaaQHbv/3229WhQwe1adNGEydOpJMIQNaiUwUAkJCdO3fqggsu0G9/+1tt3bpVK1eu1KhRo2QYRqN1r7nmGv3973/XY489po0bN6pHjx6qqKjQd999py5duujvf/+7JGnbtm3auXOn7rnnnlR/HAAAAAAZ7LHHHpPb7dabb76phQsXau/evTrjjDPUv39/rV+/XsuWLdOuXbv0m9/8JuJ27rnnHt1xxx26/fbb9e6776qiokK/+tWv9PHHHwesd91112ny5MnaunWrKioqdOutt2rx4sV69NFH9eabb6qmpkbPPfdcxH2tWbNGEyZM0KRJk7R582adfvrpuuWWWwLWef3113XxxRdr8uTJ2rJlix544AEtWrRIf/7znwPWu+GGGzR69Gi98847GjNmjM4//3xt3bpVkrR27VpJ0iuvvKKdO3fqmWee8b3vtdde06effqrXXntNjz32mBYtWqRFixZFLDcAZCqXEarVCwAAkzZu3KiBAwfq888/V7du3QJeGzdunPbu3avnnntOBw4cUKtWrbRo0SJdeOGFko7E37t3764pU6bo6quv1sqVK3X66adrz549KZt0EQAAAEB2OO2001RTU6ONGzf6lt1yyy16/fXXtXz5ct+yr776Sl26dNG2bdv0ox/9KOS2OnXqpIkTJ+qPf/yjb9ngwYN10kknaf78+fr8889VWlqqu+++W5MnT/at0759e/3hD3/QH/7wB0lSQ0ODjj76aPXv3z9s58qFF16offv26cUXX/QtO//887Vs2TLffJTl5eUaNmyYpk+f7lvniSee0DXXXKOvv/5a0pGkyu9//3vdf//9vnVOPvlkDRgwQAsWLPCVedOmTerXr59vnXHjxmnlypX69NNPlZubK0n6zW9+o5ycHC1ZsiRkmQEgk5FUAQAkpG/fvho2bJj69Omjc889Vw899JD27NnTaL1PP/1UdXV1Gjp0qG9Zfn6+Bg8e7HsyCgAAAACSaeDAgQE/v/POO3rttdfUrFkz35+ePXtKOvIdZvHixQGvvf7666qpqdHXX38d8N1GkoYOHdrou82gQYN8/963b5927dqlwYMH+5bl5uY2KlOwrVu3asiQIQHLysrKGn2OWbNmBZT1kksu0c6dO3Xw4MGw7ysrKzP1feyEE07wdahIUocOHbR79+6o7wOATJRndwEAAOktNzdXlZWVeuutt/Tyyy/rvvvu05/+9CetWbPG7qIBAAAAQICmTZsG/Lx//3798pe/1K233tpo3Q4dOsjj8QR0aHTq1CmmuUSC95cs+/fv18yZMzVq1KhGrxUWFia8/fz8/ICfXS6XPB5PwtsFgHREUgUAkDCXy6WhQ4dq5syZ2rRpk9xut5599tmAdY455hjf2MVedXV1WrdunY4//nhJktvtlnQkAg8AAAAAyTZgwAB98MEH6t69u3r06BHwp2nTpmrevHnAsiZNmqi4uFgdO3YM+G4jSW+++abvu00oLVq0UElJidatW+db1tDQEDAcWSi9evVq9NDa22+/3ehzbNu2rdFn6NGjh3JycsK+7+2331avXr0k8X0MAMwiqQIASMiaNWu0YsUKDR8+XO3atdOaNWv0n//8R7169dK7777rW69p06a67LLLdPXVV6t169bq2rWr5s6dq4MHD2rChAmSpG7dusnlcumFF17Qz3/+czVp0kTNmjWz66MBAAAAyHATJ07UQw89pAsuuEDXXHONWrdurU8++URLlizRX/7yl4Ahr/xdffXVuvHGG3XMMceoX79+evTRR7V582YtXrw44v6uuOIKzZ49Wz169FDPnj113333ac+ePXK5XGHfc+WVV2ro0KG6/fbbddZZZ2n58uVatmxZwDozZszQL37xC3Xt2lW//vWvlZOTo3feeUfvv/9+wKT2S5cu1aBBg3TKKado8eLFWrt2rR5++GFJUrt27dSkSRMtW7ZMnTt3VmFhoVq0aGH2UAJA1iCpAgBISHFxsVavXq2f//zn+tGPfqTrr79ed9xxh0aMGNFo3Tlz5mj06NG66KKLNGDAAH3yySdavny5WrVqJelIlH7mzJm67rrrVFJSokmTJqX64wAAAADIIt7ESUNDg4YPH64+ffpoypQpatmyZUDCI9iVV16pqVOnatq0aerTp4+WLVumf/zjHzr22GMj7u/aa6/VBRdcoIsvvlhlZWVq1qyZKioqIg7RdfLJJ+uhhx7SPffco759++rll1/W9ddfH7BORUWFXnjhBb388ss66aSTdPLJJ+uuu+5St27dAtabOXOmlixZohNPPFGPP/64/vrXv/rSNXl5ebr33nv1wAMPqGPHjjrrrLOiHT4AyEouwzAMuwsBAAAAAAAAZBuPx6NevXrpN7/5jW6++eak7svlcunZZ5/V2WefndT9AECmY/gvAAAAAAAAIAW++OILvfzyyzr11FNVW1urefPmafv27brwwgvtLhoAwCSG/wIAAAAAAABSICcnR4sWLdJJJ52koUOH6r333tMrr7zimyweAOB8DP8FAAAAAAAAAABgAkkVAAAAAAAAAAAAE+hUAQAAAAAAAAAAMIFOFQAAAAAAAAAAABPoVAEAAAAAAAAAADCBThUAAAAAAAAAAAAT6FQBAAAAAAAAAAAwgU4VAAAAAAAAAAAAE+hUAQAAAAAAAAAAMOH/A4OH9RA7gA+vAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 2000x600 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"_ = sim.adverserial_analysis(should_plot=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"id": "13b4392d-d4ab-4b97-a7db-2bede9b3de9a",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# sim.visualize_chain()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1f552a04-a9bf-4723-b6a8-8faaa147762e",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Reorg sensitivity to blending delay"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"id": "f2bbb618-96c0-4a6d-b1dc-3b73ebafa5e2",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def reorg_depth_analysis(sim, adv, MAX, **kwargs):\n",
|
|
" max_depth = min(MAX, max(adv) if sum(adv) > 0 else 0)\n",
|
|
" \n",
|
|
" count_by_depth = np.bincount(adv, minlength=max_depth)[:max_depth]\n",
|
|
" \n",
|
|
" # count_by_depth = np.zeros(max_depth)\n",
|
|
" \n",
|
|
" # for d in range(max_depth):\n",
|
|
" # count_by_depth[d] = (adv == d).sum()\n",
|
|
"\n",
|
|
" block_time = 1 / sim.params.f\n",
|
|
" honest_chain_length = len(sim.honest_chain())\n",
|
|
" blocks = len(sim.blocks)\n",
|
|
" expected_blocks = sim.params.SLOTS * sim.params.f\n",
|
|
" plt.plot(np.arange(max_depth), count_by_depth / expected_blocks, **kwargs)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"id": "9cca2f57-1083-446c-b083-1dd158e0e7ca",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"simulating 1/5\n",
|
|
"leader\t0.03s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.04s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.04s\n",
|
|
"simulating 2/5\n",
|
|
"leader\t0.03s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.03s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.04s\n",
|
|
"simulating 3/5\n",
|
|
"leader\t0.03s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.03s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.04s\n",
|
|
"simulating 4/5\n",
|
|
"leader\t0.03s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.03s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.03s\n",
|
|
"simulating 5/5\n",
|
|
"leader\t0.04s\n",
|
|
"emit\t0.01s\n",
|
|
"slot\t0.05s\n",
|
|
"forkchoice\t0.00s\n",
|
|
"emit_leader_block\t0.00s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.06s\n",
|
|
"finished simulation, starting analysis\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.00s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"CPU times: user 203 ms, sys: 993 μs, total: 204 ms\n",
|
|
"Wall time: 204 ms\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%time\n",
|
|
"\n",
|
|
"np.random.seed(0)\n",
|
|
"stake = np.random.pareto(10, 100)\n",
|
|
"SLOTS = 2000\n",
|
|
"\n",
|
|
"\n",
|
|
"sims = [Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=SLOTS,\n",
|
|
" f=1/30,\n",
|
|
" adversary_control = 0.3,\n",
|
|
" honest_stake = stake\n",
|
|
" ),\n",
|
|
" network=replace(blend_net, blending_delay=i),\n",
|
|
") for i in [1,2,3,5]]\n",
|
|
"sims += [Sim(\n",
|
|
" params=Params(\n",
|
|
" SLOTS=int(SLOTS * 3/2),\n",
|
|
" f=1/20,\n",
|
|
" adversary_control = 0.3,\n",
|
|
" honest_stake = stake\n",
|
|
" ),\n",
|
|
" network=replace(blend_net, blend_hops=0),\n",
|
|
")]\n",
|
|
"\n",
|
|
"for i, sim in enumerate(sims):\n",
|
|
" print(f\"simulating {i+1}/{len(sims)}\")\n",
|
|
" sim.run(seed=0)\n",
|
|
"\n",
|
|
"print(\"finished simulation, starting analysis\")\n",
|
|
"advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"id": "1ff938f3-6bc4-4b8e-bd9a-492db140d7b9",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"MAX=min(40, max(max(adv) for adv in advs))\n",
|
|
"\n",
|
|
"for s in range(len(sims) - 1):\n",
|
|
" reorg_depth_analysis(sims[s], advs[s], MAX, label=f\"blending_delay={sims[s].network.blending_delay}s\")\n",
|
|
"\n",
|
|
"reorg_depth_analysis(sims[-1], advs[-1], MAX, label=f\"cardano\")\n",
|
|
"\n",
|
|
"_ = plt.title(f\"reorg depth sensitivity to blend network delay @ {1/sims[s].params.f:.0f}s block time\")\n",
|
|
"_ = plt.xlabel(\"reorg depth\")\n",
|
|
"_ = plt.ylabel(\"frequency\")\n",
|
|
"_ = plt.legend()\n",
|
|
"_ = plt.yscale(\"log\")\n",
|
|
"_ = plt.xlim(0, MAX)\n",
|
|
"_ = plt.ylim(10**-4,None)\n",
|
|
"# _ = plt."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"id": "8c9a369c-2d55-4c07-8bfe-9e270cfed90a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"simulating 1/1\n",
|
|
"leader\t1.04s\n",
|
|
"emit\t0.19s\n",
|
|
"slot\t1.23s\n",
|
|
"forkchoice\t0.03s\n",
|
|
"emit_leader_block\t0.03s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t1.25s\n",
|
|
"finished simulation, starting analysis\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.01s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.05s\n",
|
|
"reorg_depth\t0.01s\n",
|
|
"depth_append\t0.00s\n",
|
|
"cardano parameters\n",
|
|
"simulating 1/1\n",
|
|
"leader\t0.59s\n",
|
|
"emit\t0.13s\n",
|
|
"slot\t0.72s\n",
|
|
"forkchoice\t0.03s\n",
|
|
"emit_leader_block\t0.02s\n",
|
|
"prep\t0.00s\n",
|
|
"total\t0.73s\n",
|
|
"honest_chain\t0.00s\n",
|
|
"honest_height_by_slot\t0.00s\n",
|
|
"prep_analysis\t0.00s\n",
|
|
"nearest_honest\t0.00s\n",
|
|
"reorg_events\t0.03s\n",
|
|
"reorg_depth\t0.00s\n",
|
|
"depth_append\t0.00s\n",
|
|
"CPU times: user 2.06 s, sys: 36 ms, total: 2.1 s\n",
|
|
"Wall time: 2.09 s\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%time\n",
|
|
"PATHS = 1\n",
|
|
"target_block_num = 2000\n",
|
|
"np.random.seed(0)\n",
|
|
"stake = np.random.pareto(10, 100)\n",
|
|
"network = blend_net\n",
|
|
"sim_params = Params(\n",
|
|
" SLOTS=0,\n",
|
|
" f=0.05,\n",
|
|
" adversary_control = 0.3,\n",
|
|
" honest_stake = stake\n",
|
|
")\n",
|
|
"np.random.seed(1)\n",
|
|
"sims = [Sim(\n",
|
|
" params=replace(\n",
|
|
" sim_params,\n",
|
|
" SLOTS=int(target_block_num * block_time),\n",
|
|
" f=1/block_time\n",
|
|
" ),\n",
|
|
" network=network\n",
|
|
") for block_time in np.array([35]).repeat(PATHS)]\n",
|
|
"\n",
|
|
"\n",
|
|
"for i, sim in enumerate(sims):\n",
|
|
" print(f\"simulating {i+1}/{len(sims)}\")\n",
|
|
" sim.run(seed=i)\n",
|
|
"\n",
|
|
"print(\"finished simulation, starting analysis\")\n",
|
|
"advs = [sim.adverserial_analysis() for sim in sims]\n",
|
|
"\n",
|
|
"print(\"cardano parameters\")\n",
|
|
"cardano_block_time = 20\n",
|
|
"cardano_sims = [Sim(\n",
|
|
" params=replace(\n",
|
|
" sim_params,\n",
|
|
" SLOTS=int(target_block_num * cardano_block_time),\n",
|
|
" f=1/cardano_block_time,\n",
|
|
" ),\n",
|
|
" network=replace(network, blend_hops=0)\n",
|
|
") for _ in range(PATHS)]\n",
|
|
"\n",
|
|
"for i, sim in enumerate(cardano_sims):\n",
|
|
" print(f\"simulating {i+1}/{len(cardano_sims)}\")\n",
|
|
" sim.run(seed=i)\n",
|
|
"\n",
|
|
"cardano_advs = [sim.adverserial_analysis() for sim in cardano_sims]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"id": "5f47f6b7-f2bd-4db4-a6a8-358d2081820c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"MAX 25\n",
|
|
"cutoff 20\n",
|
|
"CPU times: user 7.3 ms, sys: 0 ns, total: 7.3 ms\n",
|
|
"Wall time: 7.22 ms\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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Ut3xqlQqzJo1C23atIG7uzuCg4Px3HPPITU1tdo2a/N9qA81ndvx48dXqHvAgAE1tmuJ57amY63s+yuRSPDZZ59V2aalnte6ZLdB5X//+x9ee+01zJkzBydPnkTbtm3Rv39/ZGRkVLr/oUOHMHr0aEycOBGxsbEYOnQohg4diri4uHqu3Dj79+/HlClTcOTIEezcuRMqlQr9+vVDQUFBte/z9PREWlqa7pGYmFhPFd+f1q1b69X9999/V7mvtZ5TrePHj+sd686dOwEAI0aMqPI91nJeCwoK0LZtWyxevLjS1z/99FN8/fXXWLp0KY4ePQp3d3f0798fxcXFVbZp7He+PlV3vIWFhTh58iTeeecdnDx5Eps2bcKlS5cwePDgGts15vtQX2o6twAwYMAAvbrXr19fbZuWem5rOtbyx5iWloZVq1ZBIpHgySefrLZdSzyvdUrYqS5duogpU6bonqvVahEcHCzmzZtX6f4jR44Ujz32mN62rl27ikmTJtVpnaaWkZEhAIj9+/dXuc/q1auFXC6vv6JMZM6cOaJt27YG728r51Rr+vTpokmTJkKj0VT6urWeVwBi8+bNuucajUYEBgaKzz77TLctJydHSKVSsX79+irbMfY7by73Hm9ljh07JgCIxMTEKvcx9vtgDpUd67hx48SQIUOMascazq0h53XIkCHikUceqXYfazivpmaXPSolJSU4ceIE+vbtq9vm4OCAvn374vDhw5W+5/Dhw3r7A0D//v2r3N9S5ebmAgC8vb2r3U+hUCA8PBxhYWEYMmQIzp07Vx/l3bcrV64gODgYjRs3xtixY5GUlFTlvrZyToGy/6e///57TJgwodobdFrreS0vISEB6enpeudOLpeja9euVZ672nznLVlubi4kEgm8vLyq3c+Y74Ml2bdvH/z9/dG8eXO8/PLLyMrKqnJfWzm3N2/exLZt2zBx4sQa97XW81pbdhlUMjMzoVarERAQoLc9ICAA6enplb4nPT3dqP0tkUajwYwZM9C9e3dER0dXuV/z5s2xatUq/PLLL/j++++h0Wjw4IMP4saNG/VYrfG6du2KNWvWYPv27ViyZAkSEhLQo0cP5OfnV7q/LZxTrS1btiAnJwfjx4+vch9rPa/30p4fY85dbb7zlqq4uBizZs3C6NGjq71pnbHfB0sxYMAAfPfdd9i9ezfmz5+P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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%time\n",
|
|
"i = 0\n",
|
|
"j = 0\n",
|
|
"expected_blocks_nomos = sims[i].params.SLOTS * sims[i].params.f\n",
|
|
"expected_blocks_cardano = cardano_sims[j].params.SLOTS * cardano_sims[j].params.f\n",
|
|
"\n",
|
|
"MAX = max(max(adv) for adv in (advs + cardano_advs))\n",
|
|
"print(\"MAX\", MAX)\n",
|
|
"hist_nomos = np.bincount(advs[0], minlength=MAX)\n",
|
|
"hist_cardano = np.bincount(cardano_advs[0], minlength=MAX)\n",
|
|
"\n",
|
|
"cutoff = min(min(np.where(hist_nomos == 0)[0], default=MAX), min(np.where(hist_cardano == 0)[0], default=MAX))\n",
|
|
"print(\"cutoff\", cutoff)\n",
|
|
"\n",
|
|
"plt.plot(np.arange(cutoff), (hist_nomos[:cutoff] / expected_blocks_nomos) / (hist_cardano[:cutoff] / expected_blocks_cardano))\n",
|
|
"plt.ylabel(\"Multiple Increase in Reorgs\")\n",
|
|
"plt.xlabel(\"Reorg Depth\")\n",
|
|
"plt.title(\"Plotting the ratio $\\\\frac{\\\\text{Nomos reorgs}}{\\\\text{Caradano reorgs}}$\")\n",
|
|
"None"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"id": "87c8d0b8-c8d2-4c49-a9c4-2eaefd41c254",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1 / 1\n",
|
|
"CPU times: user 269 ms, sys: 29 ms, total: 298 ms\n",
|
|
"Wall time: 297 ms\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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gnKe18cj/ff2+PFjAK8u13L58mXExcVh48aNePr0qUpeGxEREZV/MqFG+6RkMhl27tyJbt26Kaf5+fnBx8cHy5cvBwAoFArUrl0bo0ePxpQpU4q9jhEjRqB169b46KOP3vh4dnY2srOzlfdTUlJQu3ZtJCcno0qVKsVeHxEREaleSkoKTExMSuX3W/ItS4XJyclBREQE2rRpo5ymoaGBNm3aICwsrEjLePr0KVJTUwEAycnJOHHiBOrVq/fW+efPnw8TExPlrXbt2iV7EURERFSuqXVZev78OeRyOSwsLPJNt7CwwJMnT4q0jHv37qFZs2Zwd3dHs2bNMHr0aLi6ur51/qlTpyI5OVl5e/DgQYleAxEREZVvFX7oAF9fX0RGRhZ5fl1dXejq6pZdICIiIipX1HrLkpmZGTQ1NQsckP306VNYWlpKlIqIiIgqE7UuSzo6OvDy8kJoaKhymkKhQGhoKPz9/SVMRkRERJWF5Lvh0tLSEBMTo7wfFxeHyMhImJqawsbGBhMmTEBQUBC8vb3h6+uLpUuXIj09HYMGDSrTXCEhIQgJCYFcLi/T9RAREZF6k3zogGPHjqFVq1YFpgcFBWHt2rUAgOXLl2PRokV48uQJPDw8sGzZMvj5+akkX2meekhERESqUZq/35KXJXXHskRERFT+VJpxloiIiIikxrJEREREVAiWpbcICQmBi4sLfHx8pI5CREREEuIxS+/AY5aIiIjKHx6zRERERKQiLEtEREREhWBZIiIiIioEyxIRERFRIViW3oJnwxERERHAs+HeiWfDERERlT88G46IiIhIRViWiIiIiArBskRERERUCJYlIiIiokKwLL0Fz4YjIiIigGfDvRPPhiMiIip/eDYcERERkYqwLBEREREVgmWJiIiIqBAsS0RERESFYFkiIiIiKgTLEhEREVEhWJbeguMsEREREcBxlt6J4ywRERGVPxxniYiIiEhFWJaIiIiICsGyRERERFQIliUiIiKiQrAsERERERWCZYmIiIioECxLRERERIVgWSIiIiIqBMvSW3AEbyIiIgI4gvc7cQRvIiKi8ocjeBMRERGpCMsSERERUSFYloiIiIgKwbJEREREVAiWJSIiIqJCsCwRERERFYJliYiIiKgQLEtEREREhWBZIiIiIioEyxIRERFRIViW3oLXhiMiIiKA14Z7J14bjoiI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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%time\n",
|
|
"k = 2160\n",
|
|
"MAX=min(k, max(max(adv) for adv in advs))\n",
|
|
"network_samples = network.empirical_network_delay()\n",
|
|
"network_delay_mean = network_samples.mean()\n",
|
|
"f_index = list({s.params.f for s in sims})\n",
|
|
"hops_index = list({s.network.blend_hops for s in sims})\n",
|
|
"delay_index = list({s.network.blending_delay for s in sims})\n",
|
|
"colors = ['#855C75FF', '#D9AF6BFF', '#AF6458FF', '#736F4CFF', '#526A83FF', '#625377FF', '#68855CFF', '#9C9C5EFF', '#A06177FF', '#8C785DFF', '#467378FF', '#7C7C7CFF']\n",
|
|
"\n",
|
|
"for s in range(len(sims)):\n",
|
|
" print(f'{s+1} / {len(sims)}')\n",
|
|
" block_time = 1 / sims[s].params.f\n",
|
|
" c = colors[f_index.index(sims[s].params.f)]\n",
|
|
" # c = colors[hops_index.index(sims[s].network.blend_hops)]\n",
|
|
" # c = colors[delay_index.index(sims[s].network.blending_delay)]\n",
|
|
" reorg_depth_analysis(sims[s], advs[s], MAX, color=c, lw=\"1\", label=f\"{block_time:.1f}s ~ {block_time / network_delay_mean:.0f}x net delay\")\n",
|
|
" # reorg_depth_analysis(sims[s], advs[s], MAX, color=c, lw=\"1\", label=f\"hops={sims[s].network.blend_hops}\")\n",
|
|
" # reorg_depth_analysis(sims[s], advs[s], MAX, color=c, lw=\"1\", label=f\"blending delay={sims[s].network.blending_delay}\")\n",
|
|
"\n",
|
|
"\n",
|
|
"for s in range(len(cardano_sims)):\n",
|
|
" reorg_depth_analysis(cardano_sims[s], cardano_advs[s], MAX, lw=\"1\", color=\"k\", label=f\"cardano\")\n",
|
|
"\n",
|
|
"_ = plt.title(f\"reorg depth sensitivity\")\n",
|
|
"_ = plt.xlabel(\"reorg depth\")\n",
|
|
"_ = plt.ylabel(\"frequency (per block)\")\n",
|
|
"_ = plt.yscale(\"log\")\n",
|
|
"_ = plt.xlim(0, MAX)\n",
|
|
"_ = plt.ylim(10**-4,None)\n",
|
|
"\n",
|
|
"# avoid duplicate legend entries with the same label\n",
|
|
"handles, labels = plt.gca().get_legend_handles_labels()\n",
|
|
"by_label = dict(zip(labels, handles))\n",
|
|
"_ = plt.legend(by_label.values(), by_label.keys())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"id": "fdc9ae28-5c4f-4ffd-a090-ae7a7225ec4c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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ZeXm5kIsFuPhw4f1sp7l+Tcv1wbf1kxERFSeIp/ffJcQERERKT0mLERERKT0mLAQERGR0mPCQkREREqPCQsREREpPSYsREREpPSYsBAREZHSY8JCRERESo8JSwMwn3XkpR8+R0RE9DpjwkJERERKjwkLERERKT0mLERERKT0mLAQERGR0mPCQkREREqPCQsREREpPSYsREREpPSYsBAREZHSY8JCRERESo8JCxERESk9JixERESk9JiwEBERkdJjwkJERERKjwkLERERKT0mLERERKT0mLAQERGR0mPCQkREREqPCQsREREpPSYsREREpPTUGjuA14n5rCPC12mLBzRiJERERK8WjrAQERGR0mPCQkREREqPCQsREREpPSYsREREpPSYsBAREZHSY8JCRERESo8JCxERESk9JixERESk9GqVsKxfvx7m5ubQ1NSEs7Mz4uPjKy0bEREBkUgkt2lqasqVkclkCA4OhlQqhZaWFjw8PHD16tXahEZERERNkMIJy969exEQEIC5c+fi/PnzcHBwgKenJ7Kzsyuto6+vj9u3bwvbjRs35M4vXboUa9asQXh4OOLi4qCjowNPT08UFBQo3iMiIiJqchROWFauXInx48fD19cX7du3R3h4OLS1tbFt27ZK64hEIkgkEmEzMjISzslkMoSFhWHOnDkYNGgQOnTogB07duDWrVuIioqqsL3CwkLk5ubKbURERNR0KZSwFBUV4dy5c/Dw8PhfAyoq8PDwwJkzZyqtl5eXBzMzM5iYmGDQoEH4+++/hXOpqanIzMyUa1MsFsPZ2bnSNhctWgSxWCxsJiYminSDiIiIXjEKJSx3795FaWmp3AgJABgZGSEzM7PCOtbW1ti2bRsOHTqEr7/+GmVlZejWrRv+/fdfABDqKdJmYGAgHj58KGwZGRmKdIOIiIheMfX+tmZXV1e4uroK+926dYOtrS02btyIL7/8slZtamhoQENDo65CJCIiIiWn0AhLq1atoKqqiqysLLnjWVlZkEgkNWpDXV0dHTt2xLVr1wBAqPcybRIREVHTplDC0qxZM3Tu3BmxsbHCsbKyMsTGxsqNolSltLQUFy9ehFQqBQBYWFhAIpHItZmbm4u4uLgat0lERERNm8JTQgEBARgzZgycnJzQtWtXhIWFIT8/H76+vgCA0aNH44033sCiRYsAAPPnz4eL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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"N = 100\n",
|
|
"M = 10000\n",
|
|
"no_blend_samples = no_blend_net.empirical_network_delay()\n",
|
|
"no_blend_mean = no_blend_samples.mean()\n",
|
|
"blend_samples = blend_net.empirical_network_delay()\n",
|
|
"blend_mean = blend_samples.mean()\n",
|
|
"\n",
|
|
"_ = plt.hist(no_blend_samples, bins=100, density=True, label=\"no-blend\")\n",
|
|
"_ = plt.hist(blend_samples, bins=100, density=True, label=\"blend\")\n",
|
|
"\n",
|
|
"for p in [50, 99, 99.9]:\n",
|
|
" no_blend_pct = np.percentile(no_blend_samples, p)\n",
|
|
" _ = plt.vlines(no_blend_pct, ymin=0, ymax=0.25, color='darkblue', label=f\"no-blend {p}p={no_blend_pct:.1f}s\")\n",
|
|
"\n",
|
|
"for p in [50, 99, 99.9]:\n",
|
|
" blend_pct = np.percentile(blend_samples, p)\n",
|
|
" _ = plt.vlines(blend_pct, ymin=0, ymax=0.25, color='brown', label=f\"blend {p}p={blend_pct:.1f}s\")\n",
|
|
"# _ = plt.vlines(blend_mean, ymin=0, ymax=1, color='brown', label=f\"blend 50p={blend_mean:.1f}s\")\n",
|
|
"# _ = plt.hist(blend_net.block_arrival_slot(np.zeros(1000)), bins=100, density=True, label=\"blend\")\n",
|
|
"_ = plt.legend()\n",
|
|
"_ = plt.xlabel(\"block delay\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "fa860b3d-6cb1-4ee5-a534-ab6fe4440a46",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"id": "48350036-439a-4954-9021-e55b7b5f004a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"2"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"1 + 1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "efdd3166-892f-4f0e-b80f-ba279e3a02f2",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.12"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|