diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index 1b2f6065..074f4a6a 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -33,6 +33,7 @@
- [Reth](/wiki/EL/clients/reth.md)
- [EVM](/wiki/EL/evm.md)
- [Precompiled Contracts](/wiki/EL/precompiled-contracts.md)
+ - [Block Building](/wiki/EL/block-production.md)
- [Data Structures](/wiki/EL/data-structures.md)
- [Transaction anatomy](/wiki/EL/transaction.md)
- [JSON-RPC](/wiki/EL/JSON-RPC.md)
diff --git a/docs/images/el-architecture/excalidraw/forkchoice-updated.excalidraw b/docs/images/el-architecture/excalidraw/forkchoice-updated.excalidraw
new file mode 100644
index 00000000..b0b3da7c
--- /dev/null
+++ b/docs/images/el-architecture/excalidraw/forkchoice-updated.excalidraw
@@ -0,0 +1,4096 @@
+{
+ "type": "excalidraw",
+ "version": 2,
+ "source": "https://excalidraw.com",
+ "elements": [
+ {
+ "type": "rectangle",
+ "version": 841,
+ "versionNonce": 1183436061,
+ "index": "b4r",
+ "isDeleted": false,
+ "id": "7xM1UGFN1JivXs0OBz6J9",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 233.04467944245857,
+ "y": -726.0412241323193,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 633.3333333333322,
+ "height": 111.70728291316534,
+ "seed": 1177000363,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "vJmK1fp5vKY50o0cdn7ZT",
+ "type": "arrow"
+ },
+ {
+ "id": "-Je4WYHOse5B0zTspiiOU",
+ "type": "arrow"
+ },
+ {
+ "id": "huqkJN3fbtLAcwIYkDXd7",
+ "type": "arrow"
+ },
+ {
+ "id": "qGi_riOg8PM3RPSKlquqk",
+ "type": "arrow"
+ },
+ {
+ "id": "uWWBuHlYAWJGil5tufuaT",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888831740,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 407,
+ "versionNonce": 418790149,
+ "index": "b4s",
+ "isDeleted": false,
+ "id": "GhDvh9ShwIp1VErlGZlXz",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 332.73955739363873,
+ "y": -686.8057299346399,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 426.9333190917969,
+ "height": 33.73649459783911,
+ "seed": 1662262949,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885158235,
+ "link": null,
+ "locked": false,
+ "fontSize": 26.98919567827129,
+ "fontFamily": 1,
+ "text": "Engine API: Fork choice updated",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Engine API: Fork choice updated",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 988,
+ "versionNonce": 36808133,
+ "index": "b4t",
+ "isDeleted": false,
+ "id": "U0JxI3CJ5fLRkHkd2lJEl",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 240.87801277579138,
+ "y": -1238.3948655889017,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 580.3333333333322,
+ "height": 97.70728291316536,
+ "seed": 1232109125,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "vJmK1fp5vKY50o0cdn7ZT",
+ "type": "arrow"
+ },
+ {
+ "id": "-Je4WYHOse5B0zTspiiOU",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888505663,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 517,
+ "versionNonce": 676466597,
+ "index": "b4u",
+ "isDeleted": false,
+ "id": "NeYiRZqTMOacN6lghuvxv",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 394.57289072697154,
+ "y": -1205.1593713912223,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 218.26666259765625,
+ "height": 33.73649459783911,
+ "seed": 1907518885,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887073608,
+ "link": null,
+ "locked": false,
+ "fontSize": 26.98919567827129,
+ "fontFamily": 1,
+ "text": "Consensus Layer",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Consensus Layer",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 279,
+ "versionNonce": 1682644357,
+ "index": "b4v",
+ "isDeleted": false,
+ "id": "Nj9MVEArlf7mA2uqvx4Lr",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -203.95532055754256,
+ "y": -953.541224132319,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 237,
+ "height": 134,
+ "seed": 51104939,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "DUOTucfeISRJaYlvcKuiV"
+ }
+ ],
+ "updated": 1713885259674,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 266,
+ "versionNonce": 1853301989,
+ "index": "b4w",
+ "isDeleted": false,
+ "id": "DUOTucfeISRJaYlvcKuiV",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -157.92198773283553,
+ "y": -921.541224132319,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 144.93333435058594,
+ "height": 70,
+ "seed": 2027562405,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885259674,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Payload \nattributes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "Nj9MVEArlf7mA2uqvx4Lr",
+ "originalText": "Payload attributes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 451,
+ "versionNonce": 1699033349,
+ "index": "b4x",
+ "isDeleted": false,
+ "id": "KolO6ZLGcfbVQIr1HU5uL",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 173.54467944245744,
+ "y": -1077.0832531178262,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 257,
+ "height": 287.5420289855073,
+ "seed": 1381559813,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713885256354,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 194,
+ "versionNonce": 1296456979,
+ "index": "b4z",
+ "isDeleted": false,
+ "id": "k3_qQpfndFtnHwZY-Ukam",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 188.3055490076748,
+ "y": -1054.7354270308697,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 234.63333129882812,
+ "height": 33.52173913043478,
+ "seed": 618329867,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642045,
+ "link": null,
+ "locked": false,
+ "fontSize": 26.817391304347826,
+ "fontFamily": 1,
+ "text": "Fork choice state",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Fork choice state",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 245,
+ "versionNonce": 1453846941,
+ "index": "b50",
+ "isDeleted": false,
+ "id": "sEqbmNN_nNy8AcT1iTweF",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 194.2649692975299,
+ "y": -970.5586154366669,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 200.31666564941406,
+ "height": 130.3623188405797,
+ "seed": 1595669483,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642045,
+ "link": null,
+ "locked": false,
+ "fontSize": 20.85797101449275,
+ "fontFamily": 1,
+ "text": "Head block hash\n\nFinalized block hash\n\nSafe block hash",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Head block hash\n\nFinalized block hash\n\nSafe block hash",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 287,
+ "versionNonce": 182302053,
+ "index": "b51",
+ "isDeleted": false,
+ "id": "vJmK1fp5vKY50o0cdn7ZT",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 234.04467944245744,
+ "y": -1180.541224132319,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 150,
+ "height": 535,
+ "seed": 1841881707,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "V_UzrDa44DOPjOBrm69im"
+ }
+ ],
+ "updated": 1713888476384,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "U0JxI3CJ5fLRkHkd2lJEl",
+ "focus": 0.6855963411673234,
+ "gap": 6.833333333333883
+ },
+ "endBinding": {
+ "elementId": "7xM1UGFN1JivXs0OBz6J9",
+ "focus": -0.8809738659579082,
+ "gap": 8.00000000000108
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -150,
+ 65
+ ],
+ [
+ -89,
+ 492
+ ],
+ [
+ -9,
+ 535
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 9,
+ "versionNonce": 423737259,
+ "index": "b52",
+ "isDeleted": false,
+ "id": "V_UzrDa44DOPjOBrm69im",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 45.4144442324683,
+ "y": -911.1726918023876,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 111.81666564941406,
+ "height": 35,
+ "seed": 1584860171,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885243528,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Request",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "vJmK1fp5vKY50o0cdn7ZT",
+ "originalText": "Request",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 62,
+ "versionNonce": 295026387,
+ "index": "b53",
+ "isDeleted": false,
+ "id": "29B4xiJVviN_LhIJNJ7YK",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 465.54467944245744,
+ "y": -483.91622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 265,
+ "height": 230,
+ "seed": 1476718501,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "mKc1ypnTmZP8SnKrNPP2T"
+ },
+ {
+ "id": "7-Qb0KkW2P7uYnXAzDoBX",
+ "type": "arrow"
+ },
+ {
+ "id": "sOEM1ADIYiGnvG9RdXxYZ",
+ "type": "arrow"
+ },
+ {
+ "id": "uWWBuHlYAWJGil5tufuaT",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888851556,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 36,
+ "versionNonce": 213675123,
+ "index": "b54",
+ "isDeleted": false,
+ "id": "mKc1ypnTmZP8SnKrNPP2T",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 537.8613450918715,
+ "y": -403.91622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 120.86666870117188,
+ "height": 70,
+ "seed": 1111790763,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888851556,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Unknown \nPayload?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "29B4xiJVviN_LhIJNJ7YK",
+ "originalText": "Unknown Payload?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 138,
+ "versionNonce": 2136773931,
+ "index": "b55",
+ "isDeleted": false,
+ "id": "n3S3VovWk4fnKbOuouSI1",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -17.705320557542564,
+ "y": -417.91622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 257.5,
+ "height": 85,
+ "seed": 68721931,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "afHX7sBp1OUUTclf84scN"
+ },
+ {
+ "id": "7-Qb0KkW2P7uYnXAzDoBX",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713885596579,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 117,
+ "versionNonce": 1158068171,
+ "index": "b56",
+ "isDeleted": false,
+ "id": "afHX7sBp1OUUTclf84scN",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 22.278009215406655,
+ "y": -392.91622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 177.53334045410156,
+ "height": 35,
+ "seed": 1824958699,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885596579,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Initiate Sync",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "n3S3VovWk4fnKbOuouSI1",
+ "originalText": "Initiate Sync",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 469,
+ "versionNonce": 1414278067,
+ "index": "b57",
+ "isDeleted": false,
+ "id": "7-Qb0KkW2P7uYnXAzDoBX",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 470.90645650574106,
+ "y": -362.93848660120324,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 227.36177706328363,
+ "height": 6.280630762775274,
+ "seed": 1963192645,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "r5bQcwx5gB_Z68bq1zPMe"
+ }
+ ],
+ "updated": 1713888851557,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "29B4xiJVviN_LhIJNJ7YK",
+ "focus": -0.08245405264030108,
+ "gap": 1
+ },
+ "endBinding": {
+ "elementId": "n3S3VovWk4fnKbOuouSI1",
+ "focus": 0.055082964274451626,
+ "gap": 3.75
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -227.36177706328363,
+ -6.280630762775274
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 8,
+ "versionNonce": 555741701,
+ "index": "b58",
+ "isDeleted": false,
+ "id": "r5bQcwx5gB_Z68bq1zPMe",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 335.77139180744064,
+ "y": -385.59284923563484,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 510159845,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885785080,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "7-Qb0KkW2P7uYnXAzDoBX",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 440,
+ "versionNonce": 677420811,
+ "index": "b59",
+ "isDeleted": false,
+ "id": "W6dTc6uV9Y-CGQcYsBhSv",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 418.54467944245744,
+ "y": -79.16622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 361.24999999999994,
+ "height": 327.5,
+ "seed": 327681925,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "mB2HR5VQzEprxguNKo4aq"
+ },
+ {
+ "id": "sOEM1ADIYiGnvG9RdXxYZ",
+ "type": "arrow"
+ },
+ {
+ "id": "KC6QK9dq3d7hBlVK5CtpY",
+ "type": "arrow"
+ },
+ {
+ "id": "UQ1zD42iTq8WrU7LEQPPk",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713886306155,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 499,
+ "versionNonce": 1353846507,
+ "index": "b5A",
+ "isDeleted": false,
+ "id": "mB2HR5VQzEprxguNKo4aq",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 513.8571794424574,
+ "y": 32.20877586768097,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 171,
+ "height": 105,
+ "seed": 981913317,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885761000,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Head block \nhash a valid\nancestor?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "W6dTc6uV9Y-CGQcYsBhSv",
+ "originalText": "Head block hash a valid ancestor?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 198,
+ "versionNonce": 937761523,
+ "index": "b5E",
+ "isDeleted": false,
+ "id": "sOEM1ADIYiGnvG9RdXxYZ",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 593.2648008139549,
+ "y": -247.2036191883442,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 1.7607063411123818,
+ "height": 170.44462624932652,
+ "seed": 1160137195,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "FhDToE7skv_CXFONiKFvD"
+ }
+ ],
+ "updated": 1713888851558,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "29B4xiJVviN_LhIJNJ7YK",
+ "focus": 0.0424956608214578,
+ "gap": 8.240528189205534
+ },
+ "endBinding": {
+ "elementId": "W6dTc6uV9Y-CGQcYsBhSv",
+ "focus": -0.013716201227202653,
+ "gap": 1
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.7607063411123818,
+ 170.44462624932652
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 16,
+ "versionNonce": 1590965227,
+ "index": "b5F",
+ "isDeleted": false,
+ "id": "FhDToE7skv_CXFONiKFvD",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 503.66967944245744,
+ "y": -214.16622413231903,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 182.25,
+ "height": 35,
+ "seed": 1431791915,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885763743,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Either yes/no",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "sOEM1ADIYiGnvG9RdXxYZ",
+ "originalText": "Either yes/no",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 534,
+ "versionNonce": 998854155,
+ "index": "b5G",
+ "isDeleted": false,
+ "id": "KC6QK9dq3d7hBlVK5CtpY",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 780.6003318042849,
+ "y": 83.99138725209008,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 356.11101430483905,
+ "height": 7.50353660331308,
+ "seed": 1360356875,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "oYoitbkQ5mDKuggg45vVf"
+ }
+ ],
+ "updated": 1713888638017,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "W6dTc6uV9Y-CGQcYsBhSv",
+ "gap": 1,
+ "focus": -0.026922028353326067
+ },
+ "endBinding": {
+ "elementId": "dGHHPsplaHTpT-MoKae73",
+ "gap": 1,
+ "focus": -0.221052895966243
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 356.11101430483905,
+ 7.50353660331308
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 6,
+ "versionNonce": 660885733,
+ "index": "b5H",
+ "isDeleted": false,
+ "id": "oYoitbkQ5mDKuggg45vVf",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 929.811345854811,
+ "y": 66.45877586768097,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 1295896741,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713885810835,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "KC6QK9dq3d7hBlVK5CtpY",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 339,
+ "versionNonce": 520187723,
+ "index": "b5I",
+ "isDeleted": false,
+ "id": "O1Jx6ynsuhFUb1_i4aZNc",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1198.5008197933344,
+ "y": -309.22104869372254,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 339.6491228070176,
+ "height": 545.1754385964912,
+ "seed": 1286970667,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713886225509,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 114,
+ "versionNonce": 1027556019,
+ "index": "b5J",
+ "isDeleted": false,
+ "id": "bRX3Lk7EW_vE7XY96o-NZ",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1215.5476034190656,
+ "y": -283.16841711477514,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 218.56666564941406,
+ "height": 34.73684210526316,
+ "seed": 498864491,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642045,
+ "link": null,
+ "locked": false,
+ "fontSize": 27.789473684210524,
+ "fontFamily": 1,
+ "text": "Payload Status",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Payload Status",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 138,
+ "versionNonce": 1545623691,
+ "index": "b5K",
+ "isDeleted": false,
+ "id": "bw_LJvtB-JLAdKsjS4OJx",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1231.307837337194,
+ "y": -201.15087325512604,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 466500843,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713886225509,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 117,
+ "versionNonce": 726775293,
+ "index": "b5L",
+ "isDeleted": false,
+ "id": "ZC0tJHlhJDdmBGAko40Di",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1245.4977238181023,
+ "y": -186.9609867742179,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 74.48332977294922,
+ "height": 26.487788097695216,
+ "seed": 870131819,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Status",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Status",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 199,
+ "versionNonce": 877294675,
+ "index": "b5M",
+ "isDeleted": false,
+ "id": "rDjTssuIeH2tGE6BTFYHB",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1346.0567193461382,
+ "y": -143.4642547480741,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 65.5999984741211,
+ "height": 26.487788097695216,
+ "seed": 1881386667,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "VALID",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "VALID",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 228,
+ "versionNonce": 345735275,
+ "index": "b5O",
+ "isDeleted": false,
+ "id": "e8oxR6LS8CcGVCAeE2FdM",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1223.475019999733,
+ "y": -66.06315395688046,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 134.12280701754386,
+ "seed": 1391497381,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713886225509,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 188,
+ "versionNonce": 1661202013,
+ "index": "b5P",
+ "isDeleted": false,
+ "id": "DJ-PGwpyhF9QcYE1beg5S",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1249.2438538490624,
+ "y": -51.873267475972284,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 189.06666564941406,
+ "height": 26.487788097695216,
+ "seed": 1245787141,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Latest valid hash",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Latest valid hash",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 377,
+ "versionNonce": 842953203,
+ "index": "b5Q",
+ "isDeleted": false,
+ "id": "s9jOs4Pp2EjLVSKu1l-ec",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1252.3467090262209,
+ "y": -9.871203492484199,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 217.4166717529297,
+ "height": 54.03508771929825,
+ "seed": 174484325,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.614035087719298,
+ "fontFamily": 1,
+ "text": "Fork choice state's \n Head block hash",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Fork choice state's \n Head block hash",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 581,
+ "versionNonce": 1329677597,
+ "index": "b5R",
+ "isDeleted": false,
+ "id": "dGHHPsplaHTpT-MoKae73",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1137.711346109124,
+ "y": -408.12455746565234,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 440,
+ "height": 824.2909356725146,
+ "seed": 2115798219,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "KC6QK9dq3d7hBlVK5CtpY",
+ "type": "arrow"
+ },
+ {
+ "id": "huqkJN3fbtLAcwIYkDXd7",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888667461,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 246,
+ "versionNonce": 1821383357,
+ "index": "b5S",
+ "isDeleted": false,
+ "id": "hGOJ0OTZE_V3i1sUE_9oB",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1177.33853909158,
+ "y": -394.74736448319624,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 157.4166717529297,
+ "height": 44.99999999999999,
+ "seed": 828879723,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 35.99999999999999,
+ "fontFamily": 1,
+ "text": "Response",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Response",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 193,
+ "versionNonce": 1257191115,
+ "index": "b5T",
+ "isDeleted": false,
+ "id": "dOpVtgtoMyIW8E8e6k792",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1225.0832071342354,
+ "y": 103.60058873317803,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 902681867,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713886225510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 188,
+ "versionNonce": 2015476627,
+ "index": "b5U",
+ "isDeleted": false,
+ "id": "pa8b4xCLkiK7TAwhxsc_T",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1240.559643322746,
+ "y": 117.79047521408614,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 160.96665954589844,
+ "height": 26.487788097695212,
+ "seed": 1057291179,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.19023047815617,
+ "fontFamily": 1,
+ "text": "Validation error",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Validation error",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 252,
+ "versionNonce": 1620556573,
+ "index": "b5V",
+ "isDeleted": false,
+ "id": "e2DOvjlvCuZz6xQXiZna-",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1341.1186388507817,
+ "y": 161.28720724022998,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 33.06666564941406,
+ "height": 26.487788097695216,
+ "seed": 1876840011,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "null",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "null",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 251,
+ "versionNonce": 2001995435,
+ "index": "b5W",
+ "isDeleted": false,
+ "id": "RyXhfB79cfeuoZHprL-GH",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1230.229405964645,
+ "y": 278.5713489670963,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 1770401189,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713886225510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 256,
+ "versionNonce": 1646973235,
+ "index": "b5X",
+ "isDeleted": false,
+ "id": "zX7Sscb8XZWa0D9EElslp",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1245.7058421531556,
+ "y": 292.76123544800447,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 115.75,
+ "height": 26.487788097695216,
+ "seed": 370880773,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Payload Id",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Payload Id",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 310,
+ "versionNonce": 1200377725,
+ "index": "b5Y",
+ "isDeleted": false,
+ "id": "-2UsVoJFXT8hWyR_0EAMa",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1346.2648376811915,
+ "y": 336.2579674741482,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 33.06666564941406,
+ "height": 26.487788097695216,
+ "seed": 603506789,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "null",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "null",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 665,
+ "versionNonce": 1236443083,
+ "index": "b5Z",
+ "isDeleted": false,
+ "id": "aKSIn9htzpM8ba05Pwoyb",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 348.848250871029,
+ "y": 558.8516330105381,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 508.3928571428571,
+ "height": 440,
+ "seed": 971588875,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "GoFe_X8GFWXBC30iHyhLr"
+ },
+ {
+ "id": "UQ1zD42iTq8WrU7LEQPPk",
+ "type": "arrow"
+ },
+ {
+ "id": "lGlTvKdqStL96LWLUe2mO",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713887093234,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 764,
+ "versionNonce": 1828081739,
+ "index": "b5a",
+ "isDeleted": false,
+ "id": "GoFe_X8GFWXBC30iHyhLr",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 486.89646210498546,
+ "y": 673.8516330105381,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 232.10000610351562,
+ "height": 210,
+ "seed": 238185387,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713886631293,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "The payload \nreferenced by \nhead block hash \n passes \npayload \nvalidation?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "aKSIn9htzpM8ba05Pwoyb",
+ "originalText": "The payload referenced by head block hash passes \npayload validation?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 320,
+ "versionNonce": 1890208933,
+ "index": "b5b",
+ "isDeleted": false,
+ "id": "UQ1zD42iTq8WrU7LEQPPk",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 596.8354441628132,
+ "y": 247.56738722119417,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 6.872923261254982,
+ "height": 310.53623625526996,
+ "seed": 376449899,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "Pz5aUZ-uOA-RddMo3rQA9"
+ }
+ ],
+ "updated": 1713886591114,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "W6dTc6uV9Y-CGQcYsBhSv",
+ "gap": 1,
+ "focus": 0.03301213262669178
+ },
+ "endBinding": {
+ "elementId": "aKSIn9htzpM8ba05Pwoyb",
+ "gap": 1,
+ "focus": 0.024878454732600416
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 6.872923261254982,
+ 310.53623625526996
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 5,
+ "versionNonce": 1464576389,
+ "index": "b5c",
+ "isDeleted": false,
+ "id": "Pz5aUZ-uOA-RddMo3rQA9",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 583.8613469992201,
+ "y": 377.95877586768097,
+ "strokeColor": "#e03131",
+ "backgroundColor": "transparent",
+ "width": 38.36666488647461,
+ "height": 35,
+ "seed": 138916005,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713886310301,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "NO",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "UQ1zD42iTq8WrU7LEQPPk",
+ "originalText": "NO",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 776,
+ "versionNonce": 1079273189,
+ "index": "b5d",
+ "isDeleted": false,
+ "id": "hvWTesNfWB2bnqZdoozhy",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 347.2450762678542,
+ "y": 1193.8397282486328,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 508.3928571428571,
+ "height": 440,
+ "seed": 623975429,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "ndIp2emW_DL2ea30lrolJ"
+ },
+ {
+ "id": "tELrAaGLNswO3G2pf8AXj",
+ "type": "arrow"
+ },
+ {
+ "id": "lGlTvKdqStL96LWLUe2mO",
+ "type": "arrow"
+ },
+ {
+ "id": "57Hi0kF-HPHt7c0b3oaXQ",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713887683738,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 888,
+ "versionNonce": 634353477,
+ "index": "b5e",
+ "isDeleted": false,
+ "id": "ndIp2emW_DL2ea30lrolJ",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 498.81828902768956,
+ "y": 1308.8397282486328,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 205.0500030517578,
+ "height": 210,
+ "seed": 1327059813,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887340499,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "The payload \nreferenced by \nfinalized block \nhash passes \npayload \nvalidation?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "hvWTesNfWB2bnqZdoozhy",
+ "originalText": "The payload referenced by finalized block hash passes \npayload validation?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 90,
+ "versionNonce": 1484007941,
+ "index": "b5f",
+ "isDeleted": false,
+ "id": "tELrAaGLNswO3G2pf8AXj",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 347.0224730868647,
+ "y": 1410.9057857359985,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 370.977793644407,
+ "height": 0.3415587648169094,
+ "seed": 185869259,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "ehNH1sFr1daQ9wPnkJljH"
+ }
+ ],
+ "updated": 1713887340503,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "hvWTesNfWB2bnqZdoozhy",
+ "focus": 0.01505994005994007,
+ "gap": 2.364133843240154
+ },
+ "endBinding": {
+ "elementId": "9-YbwXdLKXvJwWOQ5JZUa",
+ "focus": -0.11333288449022563,
+ "gap": 15.71428571428595
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -370.977793644407,
+ -0.3415587648169094
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 8,
+ "versionNonce": 1736446725,
+ "index": "b5g",
+ "isDeleted": false,
+ "id": "ehNH1sFr1daQ9wPnkJljH",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 135.70420299766826,
+ "y": 1398.244490153395,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 1222660203,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713886830165,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "tELrAaGLNswO3G2pf8AXj",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 83,
+ "versionNonce": 1067408107,
+ "index": "b5h",
+ "isDeleted": false,
+ "id": "9-YbwXdLKXvJwWOQ5JZUa",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -693.9553205575426,
+ "y": 1194.3159187248234,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 654.2857142857142,
+ "height": 487.1428571428574,
+ "seed": 595053451,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "tELrAaGLNswO3G2pf8AXj",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713887027394,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 95,
+ "versionNonce": 1659070021,
+ "index": "b5i",
+ "isDeleted": false,
+ "id": "DfiLQuvgmwQLWgnBnpDY6",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -669.0981777003998,
+ "y": 1228.6016330105376,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 504.5333251953125,
+ "height": 35,
+ "seed": 271210373,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887161645,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Update fork choice state atomically",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Update fork choice state atomically",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 130,
+ "versionNonce": 1937689675,
+ "index": "b5j",
+ "isDeleted": false,
+ "id": "YXq3abc7_wVsFBZvW8S81",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -663.9553205575427,
+ "y": 1334.3159187248234,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 577.9166870117188,
+ "height": 70,
+ "seed": 450866693,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713886984652,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "1. Set head of canonical chain to\n thr block referenced by head block hash ",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "1. Set head of canonical chain to\n thr block referenced by head block hash ",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 243,
+ "versionNonce": 1507533995,
+ "index": "b5k",
+ "isDeleted": false,
+ "id": "IbXQQZ9AhXy2j1JSN1sQu",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": -670.0565212062593,
+ "y": 1455.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 626.4166870117188,
+ "height": 70,
+ "seed": 749368715,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887023078,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "2. Set the most recent finalized block to\n thr block referenced by finalized block hash ",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "2. Set the most recent finalized block to\n thr block referenced by finalized block hash ",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 87,
+ "versionNonce": 1041968325,
+ "index": "b5l",
+ "isDeleted": false,
+ "id": "lGlTvKdqStL96LWLUe2mO",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 604.894680548156,
+ "y": 998.5730217768092,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 4.944338181776629,
+ "height": 195.23475276308443,
+ "seed": 1841683051,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "3RwsHQu_aPf3Oc-bRiMxq"
+ }
+ ],
+ "updated": 1713887340505,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "aKSIn9htzpM8ba05Pwoyb",
+ "focus": -0.031288295671855836,
+ "gap": 1
+ },
+ "endBinding": {
+ "elementId": "hvWTesNfWB2bnqZdoozhy",
+ "focus": -0.027787534636850485,
+ "gap": 1
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -4.944338181776629,
+ 195.23475276308443
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 6,
+ "versionNonce": 1157784645,
+ "index": "b5m",
+ "isDeleted": false,
+ "id": "3RwsHQu_aPf3Oc-bRiMxq",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 579.7042029976678,
+ "y": 1078.5302044391092,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 2056252421,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887108945,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "lGlTvKdqStL96LWLUe2mO",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 1087,
+ "versionNonce": 1120973707,
+ "index": "b5n",
+ "isDeleted": false,
+ "id": "fDdJaoU64671xFPa9MwhA",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 306.10221912499674,
+ "y": 1788.919093327998,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 591.7261904761906,
+ "height": 510,
+ "seed": 125858923,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "JZfe9eFUBU8q8S7s47S1Q"
+ },
+ {
+ "id": "eAJX2Hyq21XewGNx6Zk2E",
+ "type": "arrow"
+ },
+ {
+ "id": "57Hi0kF-HPHt7c0b3oaXQ",
+ "type": "arrow"
+ },
+ {
+ "id": "7afFcGJd2KpSWEavfvfXN",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888131153,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 1269,
+ "versionNonce": 1517474283,
+ "index": "b5o",
+ "isDeleted": false,
+ "id": "JZfe9eFUBU8q8S7s47S1Q",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 463.22543239345845,
+ "y": 1921.419093327998,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 277.6166687011719,
+ "height": 245,
+ "seed": 871149323,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888092606,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Does the payload \nreferenced by \nfinalized or safe \nblock\nbelong to the chain \nreferenced by head \nblock hash ?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "fDdJaoU64671xFPa9MwhA",
+ "originalText": "Does the payload referenced by finalized or safe block\nbelong to the chain referenced by head block hash ?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 81,
+ "versionNonce": 1580787261,
+ "index": "b5q",
+ "isDeleted": false,
+ "id": "K5OOc7V_1CdFK0I-TGGFw",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1293.1875365853143,
+ "y": 1930.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 492.0681265206816,
+ "height": 210.66666666666697,
+ "seed": 1120718437,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "eAJX2Hyq21XewGNx6Zk2E",
+ "type": "arrow"
+ },
+ {
+ "id": "qGi_riOg8PM3RPSKlquqk",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888684189,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 79,
+ "versionNonce": 29373139,
+ "index": "b5r",
+ "isDeleted": false,
+ "id": "n0YsEGGgpXQ188f8QNwl5",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1336.2434976558739,
+ "y": 1953.8647543174552,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 89.68333435058594,
+ "height": 44.52018061320226,
+ "seed": 1522563333,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 35.61614449056181,
+ "fontFamily": 1,
+ "text": "Error",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Error",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 72,
+ "versionNonce": 531584989,
+ "index": "b5t",
+ "isDeleted": false,
+ "id": "fWkKg5mjt90S-q12c4EF4",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1370.0731813541709,
+ "y": 2049.971810278526,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 329.8833312988281,
+ "height": 34.59854014598545,
+ "seed": 1356563109,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 27.67883211678836,
+ "fontFamily": 1,
+ "text": "Invalid forkchoice state",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Invalid forkchoice state",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 163,
+ "versionNonce": 996328869,
+ "index": "b5u",
+ "isDeleted": false,
+ "id": "eAJX2Hyq21XewGNx6Zk2E",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 896.487587832416,
+ "y": 2041.4432900790293,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 387.9499487528983,
+ "height": 8.31990967790398,
+ "seed": 509661195,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "oZDpsHAUZn1btAAcZaaCq"
+ }
+ ],
+ "updated": 1713888092616,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "fDdJaoU64671xFPa9MwhA",
+ "gap": 1,
+ "focus": 0.014733115468412163
+ },
+ "endBinding": {
+ "elementId": "K5OOc7V_1CdFK0I-TGGFw",
+ "gap": 8.75,
+ "focus": 0.06965221910874085
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 387.9499487528983,
+ -8.31990967790398
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 5,
+ "versionNonce": 1347021899,
+ "index": "b5v",
+ "isDeleted": false,
+ "id": "oZDpsHAUZn1btAAcZaaCq",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1062.2792037606073,
+ "y": 2029.7802044391096,
+ "strokeColor": "#e03131",
+ "backgroundColor": "transparent",
+ "width": 49.31666564941406,
+ "height": 45,
+ "seed": 1575143211,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887656198,
+ "link": null,
+ "locked": false,
+ "fontSize": 36,
+ "fontFamily": 1,
+ "text": "NO",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "eAJX2Hyq21XewGNx6Zk2E",
+ "originalText": "NO",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 151,
+ "versionNonce": 1771004005,
+ "index": "b5x",
+ "isDeleted": false,
+ "id": "57Hi0kF-HPHt7c0b3oaXQ",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 603.1875365853143,
+ "y": 1633.6510996289605,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 0,
+ "height": 155.0012399335044,
+ "seed": 644564485,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "BvjWVS8cSIjKydLe2p0uf"
+ }
+ ],
+ "updated": 1713888092618,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "hvWTesNfWB2bnqZdoozhy",
+ "focus": -0.006868828786636338,
+ "gap": 1
+ },
+ "endBinding": {
+ "elementId": "fDdJaoU64671xFPa9MwhA",
+ "focus": 0.004131039801495703,
+ "gap": 1
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 155.0012399335044
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 11,
+ "versionNonce": 110646437,
+ "index": "b5xV",
+ "isDeleted": false,
+ "id": "BvjWVS8cSIjKydLe2p0uf",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 580.7042029976678,
+ "y": 1700.4052044391096,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 1824106725,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713887764209,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "57Hi0kF-HPHt7c0b3oaXQ",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "diamond",
+ "version": 1266,
+ "versionNonce": 759008011,
+ "index": "b5z",
+ "isDeleted": false,
+ "id": "BfCwSE7YpA3RGF2-igdRn",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 271.49110801388576,
+ "y": 2536.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 641.7261904761906,
+ "height": 580,
+ "seed": 1465776165,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "3st3o3yBkCPu1v0fXwBUa"
+ },
+ {
+ "id": "P21MJLoBr_wmtBmlPYj9Z",
+ "type": "arrow"
+ },
+ {
+ "id": "7afFcGJd2KpSWEavfvfXN",
+ "type": "arrow"
+ },
+ {
+ "id": "GfFYhOO7nkdzj__kv-Xp2",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888565856,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 1555,
+ "versionNonce": 123066885,
+ "index": "b60",
+ "isDeleted": false,
+ "id": "3st3o3yBkCPu1v0fXwBUa",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 456.3726525811756,
+ "y": 2686.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 272.1000061035156,
+ "height": 280,
+ "seed": 999664517,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888081461,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "\nIs the payload \nattributes\n timestamp \n> \ntimestamp of block \nreferenced by\nhead block hash?",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "BfCwSE7YpA3RGF2-igdRn",
+ "originalText": "\nIs the payload attributes\n timestamp \n> \ntimestamp of block referenced by\nhead block hash?",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 209,
+ "versionNonce": 460896093,
+ "index": "b61",
+ "isDeleted": false,
+ "id": "wk0Rw2YteS3p5_V33a08d",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1304.6534733249732,
+ "y": 2734.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 492.0681265206816,
+ "height": 210.66666666666697,
+ "seed": 909395659,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "P21MJLoBr_wmtBmlPYj9Z",
+ "type": "arrow"
+ },
+ {
+ "id": "q5UbeysotrMmQ8Efoacdh",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888708317,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 206,
+ "versionNonce": 2004377715,
+ "index": "b62",
+ "isDeleted": false,
+ "id": "EtX2i1Q-4Z-tqpdzVwVP4",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1347.7094343955328,
+ "y": 2757.864754317455,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 89.68333435058594,
+ "height": 44.52018061320226,
+ "seed": 1429681515,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 35.61614449056181,
+ "fontFamily": 1,
+ "text": "Error",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Error",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 240,
+ "versionNonce": 105549381,
+ "index": "b63",
+ "isDeleted": false,
+ "id": "hI0nQsINFzDByxNGZ87Rd",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1381.53911809383,
+ "y": 2853.971810278526,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 363,
+ "height": 34.59854014598545,
+ "seed": 2133020683,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888117616,
+ "link": null,
+ "locked": false,
+ "fontSize": 27.67883211678836,
+ "fontFamily": 1,
+ "text": "Invalid payload attributes",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Invalid payload attributes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 341,
+ "versionNonce": 1199124069,
+ "index": "b65",
+ "isDeleted": false,
+ "id": "P21MJLoBr_wmtBmlPYj9Z",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 898.3084040476151,
+ "y": 2830.886821379966,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 399.04579920436595,
+ "height": 7.186562621105622,
+ "seed": 756004523,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "rElwDGbiV5ImQI9jiilLI"
+ }
+ ],
+ "updated": 1713888122951,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "BfCwSE7YpA3RGF2-igdRn",
+ "focus": -0.002253189078534226,
+ "gap": 1
+ },
+ "endBinding": {
+ "elementId": "wk0Rw2YteS3p5_V33a08d",
+ "focus": -0.02981134021483749,
+ "gap": 7.299270072992044
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 399.04579920436595,
+ 7.186562621105622
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 5,
+ "versionNonce": 2024215205,
+ "index": "b65V",
+ "isDeleted": false,
+ "id": "rElwDGbiV5ImQI9jiilLI",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1103.1708708087435,
+ "y": 2673.5302044391096,
+ "strokeColor": "#e03131",
+ "backgroundColor": "transparent",
+ "width": 38.36666488647461,
+ "height": 35,
+ "seed": 1072254405,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888073413,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "NO",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "P21MJLoBr_wmtBmlPYj9Z",
+ "originalText": "NO",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 97,
+ "versionNonce": 425491557,
+ "index": "b68",
+ "isDeleted": false,
+ "id": "7afFcGJd2KpSWEavfvfXN",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 590.6875365853143,
+ "y": 2281.0302044391096,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 5,
+ "height": 260,
+ "seed": 147064773,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "AGohpqt6XpxMC-GpX7G9v"
+ }
+ ],
+ "updated": 1713888559427,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "fDdJaoU64671xFPa9MwhA",
+ "focus": 0.022706274713114812,
+ "gap": 1
+ },
+ "endBinding": {
+ "elementId": "BfCwSE7YpA3RGF2-igdRn",
+ "focus": -0.03785862593023361,
+ "gap": 1
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -5,
+ 260
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 6,
+ "versionNonce": 1817443659,
+ "index": "b68V",
+ "isDeleted": false,
+ "id": "AGohpqt6XpxMC-GpX7G9v",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 570.7042029976678,
+ "y": 2396.863537772443,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 58319243,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888102828,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "7afFcGJd2KpSWEavfvfXN",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 99,
+ "versionNonce": 1673343269,
+ "index": "b6A",
+ "isDeleted": false,
+ "id": "UVod3hpklXlI65WRpoHVD",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 365.6875365853143,
+ "y": 3424.363537772443,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 490,
+ "height": 158.33333333333346,
+ "seed": 2079397387,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "GfFYhOO7nkdzj__kv-Xp2",
+ "type": "arrow"
+ },
+ {
+ "id": "89jFViNnEVyrD5m60_ohU",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888589330,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 172,
+ "versionNonce": 1320147595,
+ "index": "b6B",
+ "isDeleted": false,
+ "id": "hee45CuOCyG1hFEPVjPbH",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 429.0208699186476,
+ "y": 3457.696871105776,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 373.29998779296875,
+ "height": 105,
+ "seed": 1116408811,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888569075,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Initiate block building via \nthe block building routine\n",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Initiate block building via \nthe block building routine\n",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 376,
+ "versionNonce": 471267301,
+ "index": "b6C",
+ "isDeleted": false,
+ "id": "MS04_q2lUkE2Fcx7K5P8K",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1414.8103436028578,
+ "y": 3277.788245374781,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 339.6491228070176,
+ "height": 545.1754385964912,
+ "seed": 1436714533,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713888432510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 151,
+ "versionNonce": 588403773,
+ "index": "b6D",
+ "isDeleted": false,
+ "id": "1j7JJSLUhXz0-zeAUblYF",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1431.857127228589,
+ "y": 3303.8408769537286,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 218.56666564941406,
+ "height": 34.73684210526316,
+ "seed": 1578662277,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 27.789473684210524,
+ "fontFamily": 1,
+ "text": "Payload Status",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Payload Status",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 175,
+ "versionNonce": 671875749,
+ "index": "b6E",
+ "isDeleted": false,
+ "id": "kcmBQuMn9gYmnZfboXfub",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1447.6173611467175,
+ "y": 3385.8584208133775,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 2117664997,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713888432510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 154,
+ "versionNonce": 219798035,
+ "index": "b6F",
+ "isDeleted": false,
+ "id": "qauwrJylBzjS0k9tzZQwg",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1461.8072476276257,
+ "y": 3400.0483072942857,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 74.48332977294922,
+ "height": 26.487788097695216,
+ "seed": 194092101,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Status",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Status",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 236,
+ "versionNonce": 1301726365,
+ "index": "b6G",
+ "isDeleted": false,
+ "id": "FEEWBZmI3Ix3pkmbCrCB5",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1562.3662431556613,
+ "y": 3443.5450393204296,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 65.5999984741211,
+ "height": 26.487788097695216,
+ "seed": 1308609445,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "VALID",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "VALID",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 265,
+ "versionNonce": 1147562181,
+ "index": "b6H",
+ "isDeleted": false,
+ "id": "JC-Vn9fgXj43SxqLjvzn1",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1439.7845438092563,
+ "y": 3520.946140111623,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 134.12280701754386,
+ "seed": 900796165,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713888432510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 225,
+ "versionNonce": 261824435,
+ "index": "b6I",
+ "isDeleted": false,
+ "id": "FZeBOpvkxLQKqjzP1AtqG",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1465.5533776585853,
+ "y": 3535.1360265925314,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 189.06666564941406,
+ "height": 26.487788097695216,
+ "seed": 1361241701,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642046,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Latest valid hash",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Latest valid hash",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 414,
+ "versionNonce": 586033405,
+ "index": "b6J",
+ "isDeleted": false,
+ "id": "KyWA3b8pNGkVPuxDY8jgl",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1468.656232835744,
+ "y": 3577.1380905760193,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 217.4166717529297,
+ "height": 54.03508771929825,
+ "seed": 52613573,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642047,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.614035087719298,
+ "fontFamily": 1,
+ "text": "Fork choice state's \n Head block hash",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Fork choice state's \n Head block hash",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 619,
+ "versionNonce": 702987997,
+ "index": "b6K",
+ "isDeleted": false,
+ "id": "JFqKTwM5SdALx7oNlKxpk",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1354.020869918647,
+ "y": 3178.8847366028513,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 440,
+ "height": 824.2909356725146,
+ "seed": 2026787109,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [
+ {
+ "id": "89jFViNnEVyrD5m60_ohU",
+ "type": "arrow"
+ },
+ {
+ "id": "s93qZRZJRMi2eWhqVWIl-",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1713888777844,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 281,
+ "versionNonce": 1763881299,
+ "index": "b6L",
+ "isDeleted": false,
+ "id": "0kJubge8I_y94lm3qM3Je",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1393.648062901103,
+ "y": 3192.2619295853074,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 157.4166717529297,
+ "height": 44.99999999999999,
+ "seed": 1603462277,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642047,
+ "link": null,
+ "locked": false,
+ "fontSize": 35.99999999999999,
+ "fontFamily": 1,
+ "text": "Response",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Response",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 230,
+ "versionNonce": 1687375269,
+ "index": "b6M",
+ "isDeleted": false,
+ "id": "QwsHDUGaHnLjKIsexW2WM",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1441.3927309437586,
+ "y": 3690.6098828016816,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 1529744357,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713888432510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 225,
+ "versionNonce": 882508125,
+ "index": "b6N",
+ "isDeleted": false,
+ "id": "7eVrIFUotNRuLJelsItIo",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1456.8691671322695,
+ "y": 3704.7997692825898,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 160.96665954589844,
+ "height": 26.487788097695212,
+ "seed": 1001211717,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642047,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.19023047815617,
+ "fontFamily": 1,
+ "text": "Validation error",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Validation error",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 289,
+ "versionNonce": 2064060147,
+ "index": "b6O",
+ "isDeleted": false,
+ "id": "NK-tse_Cz9XTdLDO853g8",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1557.4281626603051,
+ "y": 3748.2965013087337,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 33.06666564941406,
+ "height": 26.487788097695216,
+ "seed": 1936594597,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642047,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "null",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "null",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "rectangle",
+ "version": 288,
+ "versionNonce": 1905103813,
+ "index": "b6P",
+ "isDeleted": false,
+ "id": "eT9zmBRRLpyES27rlHXvv",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1446.538929774168,
+ "y": 3865.5806430355997,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 278.12177502579976,
+ "height": 96.49122807017544,
+ "seed": 1293810181,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 3
+ },
+ "boundElements": [],
+ "updated": 1713888432510,
+ "link": null,
+ "locked": false
+ },
+ {
+ "type": "text",
+ "version": 293,
+ "versionNonce": 1743506877,
+ "index": "b6Q",
+ "isDeleted": false,
+ "id": "zFYVAuSiPIiC7yNP1oXc2",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1462.0153659626785,
+ "y": 3879.770529516508,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 115.75,
+ "height": 26.487788097695216,
+ "seed": 1639608677,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888642047,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Payload Id",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Payload Id",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "text",
+ "version": 382,
+ "versionNonce": 2090207563,
+ "index": "b6R",
+ "isDeleted": false,
+ "id": "jpC8xwMgkMpvQeqVGr_vn",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1520.9076948240481,
+ "y": 3919.9339282093183,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 175.46665954589844,
+ "height": 26.487788097695216,
+ "seed": 1318124741,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888451406,
+ "link": null,
+ "locked": false,
+ "fontSize": 21.190230478156174,
+ "fontFamily": 1,
+ "text": "Build process ID",
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Build process ID",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 168,
+ "versionNonce": 1424268325,
+ "index": "b6T",
+ "isDeleted": false,
+ "id": "-Je4WYHOse5B0zTspiiOU",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 874.0208699186478,
+ "y": -667.3031288942215,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 210,
+ "height": 533.3333333333334,
+ "seed": 2115204197,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "fmJ0sG-s3BF5TzdWA5CyV"
+ }
+ ],
+ "updated": 1713888543639,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "7xM1UGFN1JivXs0OBz6J9",
+ "focus": 0.49858797064824334,
+ "gap": 7.6428571428570535
+ },
+ "endBinding": {
+ "elementId": "U0JxI3CJ5fLRkHkd2lJEl",
+ "focus": -0.6966680417794964,
+ "gap": 9.476190476190766
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 166.66666666666652,
+ -25
+ ],
+ [
+ 154.99999999999977,
+ -486.66666666666663
+ ],
+ [
+ -43.333333333333485,
+ -533.3333333333334
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 10,
+ "versionNonce": 1342722149,
+ "index": "b6U",
+ "isDeleted": false,
+ "id": "fmJ0sG-s3BF5TzdWA5CyV",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1010.8833344347668,
+ "y": -946.7415657027918,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 122.41666412353516,
+ "height": 35,
+ "seed": 179858085,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888515610,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Response",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "-Je4WYHOse5B0zTspiiOU",
+ "originalText": "Response",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 191,
+ "versionNonce": 15391013,
+ "index": "b6V",
+ "isDeleted": false,
+ "id": "GfFYhOO7nkdzj__kv-Xp2",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 598.1875365853145,
+ "y": 3112.696871105778,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 3.3333333333332575,
+ "height": 300,
+ "seed": 605710117,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "6jWTMFvOrEIvwz1QyrzLl"
+ }
+ ],
+ "updated": 1713888574764,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "BfCwSE7YpA3RGF2-igdRn",
+ "focus": -0.008253202650754538,
+ "gap": 1.4384467309200488
+ },
+ "endBinding": {
+ "elementId": "UVod3hpklXlI65WRpoHVD",
+ "focus": -0.03317642628506826,
+ "gap": 11.666666666665378
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.3333333333332575,
+ 300
+ ]
+ ]
+ },
+ {
+ "type": "text",
+ "version": 10,
+ "versionNonce": 964035979,
+ "index": "b6W",
+ "isDeleted": false,
+ "id": "6jWTMFvOrEIvwz1QyrzLl",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 674.8708696643346,
+ "y": 2331.8635377724445,
+ "strokeColor": "#2f9e44",
+ "backgroundColor": "transparent",
+ "width": 44.96666717529297,
+ "height": 35,
+ "seed": 887896709,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": null,
+ "boundElements": [],
+ "updated": 1713888561135,
+ "link": null,
+ "locked": false,
+ "fontSize": 28,
+ "fontFamily": 1,
+ "text": "Yes",
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "GfFYhOO7nkdzj__kv-Xp2",
+ "originalText": "Yes",
+ "lineHeight": 1.25
+ },
+ {
+ "type": "arrow",
+ "version": 110,
+ "versionNonce": 1207225939,
+ "index": "b6X",
+ "isDeleted": false,
+ "id": "89jFViNnEVyrD5m60_ohU",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 869.6875365853143,
+ "y": 3491.363537772445,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 471.6666666666663,
+ "height": 1.333333333333485,
+ "seed": 1121873029,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [],
+ "updated": 1713888803331,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "UVod3hpklXlI65WRpoHVD",
+ "focus": -0.1615194578210893,
+ "gap": 14
+ },
+ "endBinding": {
+ "elementId": "JFqKTwM5SdALx7oNlKxpk",
+ "focus": 0.23663599417605152,
+ "gap": 12.666666666666288
+ },
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 471.6666666666663,
+ 1.333333333333485
+ ]
+ ]
+ },
+ {
+ "id": "huqkJN3fbtLAcwIYkDXd7",
+ "type": "arrow",
+ "x": 1365.6875365853139,
+ "y": -425.21979556088684,
+ "width": 475,
+ "height": 214.9999999999999,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6Y",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 1747184349,
+ "version": 105,
+ "versionNonce": 1867886611,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1713888667480,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -15,
+ -152.4999999999999
+ ],
+ [
+ -475,
+ -214.9999999999999
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "dGHHPsplaHTpT-MoKae73",
+ "focus": 0.19266446613003196,
+ "gap": 17.095238095234492
+ },
+ "endBinding": {
+ "elementId": "7xM1UGFN1JivXs0OBz6J9",
+ "focus": -0.16545979439468028,
+ "gap": 24.309523809523114
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow"
+ },
+ {
+ "id": "qGi_riOg8PM3RPSKlquqk",
+ "type": "arrow",
+ "x": 1793.1875365853134,
+ "y": 2037.8608906372124,
+ "width": 1394.9999999999995,
+ "height": 2691.0493872854718,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6Z",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 1147237117,
+ "version": 246,
+ "versionNonce": 1465538653,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1713888700326,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 492.5,
+ -24.91712395634697
+ ],
+ [
+ 330,
+ -2471.298015416431
+ ],
+ [
+ -902.4999999999995,
+ -2691.0493872854718
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "K5OOc7V_1CdFK0I-TGGFw",
+ "focus": 0.13029514274455564,
+ "gap": 7.931873479317687
+ },
+ "endBinding": {
+ "elementId": "7xM1UGFN1JivXs0OBz6J9",
+ "focus": -0.3899412585850232,
+ "gap": 24.309523809523114
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow"
+ },
+ {
+ "type": "arrow",
+ "version": 438,
+ "versionNonce": 146202835,
+ "index": "b6a",
+ "isDeleted": false,
+ "id": "q5UbeysotrMmQ8Efoacdh",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1793.6025281284742,
+ "y": 2837.5788075510877,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 2019.9999999999995,
+ "height": 4081.1322633291247,
+ "seed": 1562915219,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [],
+ "updated": 1713888727250,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "wk0Rw2YteS3p5_V33a08d",
+ "focus": -0.5535468892889344,
+ "gap": 1
+ },
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1142.4999999999995,
+ 605.082876043653
+ ],
+ [
+ 827.5,
+ -3371.2980154164306
+ ],
+ [
+ -877.5,
+ -3476.0493872854718
+ ]
+ ]
+ },
+ {
+ "type": "arrow",
+ "version": 616,
+ "versionNonce": 6319005,
+ "index": "b6b",
+ "isDeleted": false,
+ "id": "s93qZRZJRMi2eWhqVWIl-",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "dashed",
+ "roughness": 0,
+ "opacity": 100,
+ "angle": 0,
+ "x": 1796.7814670458931,
+ "y": 3707.847669463127,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "width": 2239.528127240689,
+ "height": 4986.380891460083,
+ "seed": 1871017629,
+ "groupIds": [],
+ "frameId": null,
+ "roundness": {
+ "type": 2
+ },
+ "boundElements": [],
+ "updated": 1713888778466,
+ "link": null,
+ "locked": false,
+ "startBinding": {
+ "elementId": "JFqKTwM5SdALx7oNlKxpk",
+ "focus": 0.023031090580857373,
+ "gap": 2.7605971272462284
+ },
+ "endBinding": null,
+ "lastCommittedPoint": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1337.5239531546965,
+ 630.082876043653
+ ],
+ [
+ 1122.1891214315203,
+ -4356.298015416431
+ ],
+ [
+ -902.0041740859926,
+ -4351.049387285471
+ ]
+ ]
+ },
+ {
+ "id": "uWWBuHlYAWJGil5tufuaT",
+ "type": "arrow",
+ "x": 600.7112800819702,
+ "y": -603.4697955608898,
+ "width": 2.7603067399340944,
+ "height": 118.55797152562593,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6c",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 517447869,
+ "version": 126,
+ "versionNonce": 1257978419,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1713888851558,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.7603067399340944,
+ 118.55797152562593
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "7xM1UGFN1JivXs0OBz6J9",
+ "focus": -0.1668246446169939,
+ "gap": 10.864145658264249
+ },
+ "endBinding": {
+ "elementId": "29B4xiJVviN_LhIJNJ7YK",
+ "focus": -0.02108947048083296,
+ "gap": 1
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow"
+ },
+ {
+ "id": "LvTIe8okvOyBDOMpzZlDI",
+ "type": "rectangle",
+ "x": -1369.3124634146843,
+ "y": -1645.969795560889,
+ "width": 4774.999999999996,
+ "height": 6584.9999999999945,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6d",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1409452403,
+ "version": 92,
+ "versionNonce": 1475287379,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1713888872035,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "3coEbfOkmFqKB89oNSUD2",
+ "type": "text",
+ "x": -1234.3124634146843,
+ "y": -1550.9697955608885,
+ "width": 1445.61669921875,
+ "height": 183.6219412191702,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "hachure",
+ "strokeWidth": 4,
+ "strokeStyle": "solid",
+ "roughness": 0,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6h",
+ "roundness": null,
+ "seed": 892306077,
+ "version": 163,
+ "versionNonce": 630518067,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1713888916991,
+ "link": null,
+ "locked": false,
+ "text": "Fork choice updated",
+ "fontSize": 146.89755297533617,
+ "fontFamily": 1,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Fork choice updated",
+ "lineHeight": 1.25
+ }
+ ],
+ "appState": {
+ "gridSize": null,
+ "viewBackgroundColor": "#ffffff"
+ },
+ "files": {}
+}
\ No newline at end of file
diff --git a/docs/images/el-architecture/forkchoice-updated.png b/docs/images/el-architecture/forkchoice-updated.png
new file mode 100644
index 00000000..a297699d
Binary files /dev/null and b/docs/images/el-architecture/forkchoice-updated.png differ
diff --git a/docs/images/el-architecture/new-payload.png b/docs/images/el-architecture/new-payload.png
new file mode 100644
index 00000000..b80911f2
Binary files /dev/null and b/docs/images/el-architecture/new-payload.png differ
diff --git a/docs/wiki/EL/block-production.md b/docs/wiki/EL/block-production.md
index 4fe26bfc..371e5e21 100644
--- a/docs/wiki/EL/block-production.md
+++ b/docs/wiki/EL/block-production.md
@@ -6,13 +6,59 @@ Block building is a crucial task for the Ethereum blockchain's functionality, in
When a validator is selected to propose a block during a slot, it looks for the block produced by CL. Importantly, a validator isn't limited to broadcasting a block solely from its own EL. It can also broadcast a block produced by external builders; for details, refer to [PBS](https://ethereum.org/en/roadmap/pbs/). This article specifically explores how a block is produced by EL and the elements contributing to its successful production and transaction execution.
-## Code Walkthrough
+## Payload building routine
+
+A block is created when the consensus layer instructs the execution layer client to do so through the engine API's fork choice updated endpoint, which then initiates the process of constructing the block via the payload building routine.
+
+Note: The fee recipient of the built payload may deviate from the suggested fee recipient of the payload attributes:
+
+
+
+Nodes are gossiping transactions via a peer-to-peer network. These transactions are deemed valid and not included in the block. Validity here, among other things, refers to the condition where the nonce of the transaction is the next valid nonce for the account and the account holds sufficient value to cover the transaction. Occasionally, the node is assigned the responsibility of generating a block, the consensus layer employs a random selection process to determine which validator will construct the block during each epoch. If your validator is chosen to build the block, your consensus layer client will proceed with constructing it using the execution engine's fork choice updated method, providing the necessary context for block construction.
+
+We can simplify and emulate the process of constructing blocks, albeit this is specific to the go with types used in geth. However, the approach is general enough to be adaptable to different clients.
+
+```go
+func build(env environment, pool txpool.Pool, state state.StateDB) (types.Block, state.StateDB, error) { //1
+ var (
+ gasUsed = 0
+ txs []types.Transactions
+ ) //2
+
+ for ; gasUsed < 30_000_000 || !pool.Empty(); { //3
+ transaction := pool.Pop() //4
+ res, gas, err := vm.Run(env, transaction, state) //5
+ if err != nil { // 6
+ // transaction invalid
+ continue
+ }
+ gasUsed += gas // 7
+ transactions = append(transactions, transaction)
+ }
+ return core.Finalize(env, transactions, state) //8
+}
+```
+
+1. We take in the environment, which contains all the necessary information (similar to the header previously), including the time stamp, block number, preceding block, base fee, and all the withdrawals that need to occur in the block. Essentially, the information originating from the consensus layer, which acts as the central decision-making entity, determines the context in which the block should be constructed. Next, we take in the transaction pool, which is a collection of transactions. For simplicity, we assume that these transactions are arranged in ascending order based on their value. This arrangement helps us construct the most profitable block for the execution client, considering the transactions observed in the network. Additionally, we also consider a state DB, representing the state over which all these transactions are executed.
+ - We return a block, a state DB that has accumulated all the transactions in the block and possibly an error
+2. Inside build we track the gas used because there is only a finite amount of gas we can use. And, also store all the transactions that are going to go in the block
+3. We continue adding the transactions until the pool is empty or the amount of gas consumed is greater than the gas limit, which is fixed at 30 million (about the current gas limit on the mainnet) in this example for the sake of simplicity.
+4. In order to obtain a transaction, we must query the transaction pool, which is presumed to maintain an ordered list of transactions, ensuring that we always receive the next most valuable transaction.
+5. The transaction is executed in the EVM, assuming that run requires an interface that is satisfied by both the block and the environment. We provide the environment, transaction, and state as input. This will execute the transaction within the context defined by the environment and provide us with an updated state that will include the accumulated transaction.
+6. If the transaction execution is unsuccessful, indicated by the occurrence of an error during the run, we simply proceed without interruption. This indicates that the transaction is invalid and since there is still unused gas left in the block, we do not want to generate an error immediately. This is because no error has occurred within the block yet. However, it is highly likely that the transaction is invalid because it did something bad during execution or because the transaction pool is slightly outdated. In which case we allow ourselves to continue and try to get the next transaction from the pool into this block.
+7. Once we verify there is no error with running the transaction we add the transaction to the transactions list and we add the gas that was returned by run to the gas used. For example if the first transaction was a simple transfer, which costs 21,000 gas our gas used would go from 0 to 21,000 nd we would keep doing this process steps 3-7 until the conditions of step 3 are met.
+8. We finalize our transition by taking set of transactions and relevant block information to generate a fully assembled block. The purpose of doing this is to perform certain calculations at the end. Since the header contains the transactions root, receipts root, and withdrawals root, these values must be computed by merkleizing a list and added to the block's header.
+ - We return our block, state DB and our error
+
+## Code walk-through
+
+### Geth
The following example is using Geth codebase to explain how execution client builds a block.
1. Firstly when a validator is chosen as a block builder it calls `engine_forkchoiceUpdatedV2` function via Engine API on the EL. Here, EL initiates the block building process.
- https://github.com/ethereum/go-ethereum/blob/0a2f33946b95989e8ce36e72a88138adceab6a23/eth/catalyst/api.go#L398
- 2. Most of the the core logic of block building, and transaction execution resides in `miner` module of Geth. The `buildPayload` function initially creates an empty block so the node doesn't miss the slot and has something to propose. The function implementation also starts a go routine process whose job is to potentially fill the block which we left empty and then later update it with filled transactions concurrently.
+ 2. Most of the core logic of block building, and transaction execution resides in `miner` module of Geth. The `buildPayload` function initially creates an empty block so the node doesn't miss the slot and has something to propose. The function implementation also starts a go routine process whose job is to potentially fill the block which we left empty and then later update it with filled transactions concurrently.
- https://github.com/ethereum/go-ethereum/blob/0a2f33946b95989e8ce36e72a88138adceab6a23/miner/payload_building.go#L180 - https://github.com/ethereum/go-ethereum/blob/0a2f33946b95989e8ce36e72a88138adceab6a23/miner/payload_building.go#L204
3. In the `buildPayload` function, the go routine is waiting on multiple communication operations "cases" and in the first case it calls `getSealingBlock` with params which explicitly specify that the block should not be empty. Look at the `fullParams` variable i.e `noTxs:False`.
4. In the definition for `getSealingBlock`, the request is being sent on `getWorkCh` channel. This channel is being listened on in order to retrieve data from it and generate work.
diff --git a/docs/wiki/EL/data-structures.md b/docs/wiki/EL/data-structures.md
index 395a8569..6f4ad24b 100644
--- a/docs/wiki/EL/data-structures.md
+++ b/docs/wiki/EL/data-structures.md
@@ -2,6 +2,10 @@
The execution client stores the current state and historical blockchain data. In practice, the Ethereum data are stored in trie like structures, mainly Merkle Patricia Tree.
+## RLP
+
+[Wiki - RLP](/wiki/EL/RLP.md)
+
## Primer on Merkle Tree
Merkle tree is a hash-based data structure which is very efficient at data integrity and verification. It is a tree based structure where the leaf nodes hold the data values and each non-leaf node is a hash of its child nodes.
diff --git a/docs/wiki/EL/el-architecture.md b/docs/wiki/EL/el-architecture.md
index 77b4a366..87dc983f 100644
--- a/docs/wiki/EL/el-architecture.md
+++ b/docs/wiki/EL/el-architecture.md
@@ -36,14 +36,13 @@ When utilizing a wallet or a DApp, our communication with the execution layer is
This is the only link between the consensus and execution layer. The engine exposes two major classes of endpoints to the consensus layer: **fork choice updated** and **new payload** suffixed by the three versions they are exposed as (V1-V3).These methods encapsulate two major pipelines offered by the execution layer:
-1. **New Payload** *(V1/V2/V3)*: payload validation & insertion pipeline.
-2. **Fork Choice Updated** *(V1/V2/V3)*: state synchronization & block building pipeline.
+1. **New Payload** _(V1/V2/V3)_: payload validation & insertion pipeline.
+2. **Fork Choice Updated** _(V1/V2/V3)_: state synchronization & block building pipeline.
**Sync**
In order to accurately process transactions on Ethereum, it is imperative that we reach a consensus on the global status of the network, rather than solely relying on our local perspective. The global state synchronization of the execution layer client is triggered by the fork choice rule governed by the LMD-GHOST algorithm in the consensus layer. It is then relayed to the execution layer through the fork choice updated endpoint of the engine API. Syncing entails two possible processes: downloading remote blocks from peers and validating them in the EVM.
-
## Components of the architecture
### Engine
@@ -92,7 +91,7 @@ func stf(parent types.Block, block types.Block, state state.StateDB) (state.Stat
2. In the state transition functions procedure we first verify the headers
- As an illustration of the failure of header verification, let us consider the gas limit field, which is also of historical significance. Currently, the gas limit stands at around 30 million. It's important to note that the gas limit is not fixed within the execution layer. Block producers have the capacity to modify the gas limit using a technique that allows them to increase or decrease it by 1/1024th of the gas limit of the preceding block. Therefore, if you raise the gas limit from 30 million to 40 million within a single block, the header verification will fail because it exceeds the threshold of 30 million plus one-thousandth of 30 million.
- Additional instances of header verification failure can arise when the block numbers are not in sequential order. Typically, the beacon chain is responsible for detecting such discrepancies, although there are instances where it is detected at this stage as well. Failures may also arise when the 1559 base fee is not accurately updated according to the comparison between the last gas used and the gas limit.
-3. Once the header verification is completed, we consider the environment in the header as the environment in which the transactions should be executed and we apply the transactions. We iterate over the transactions in the block and execute each transaction in the evm.
+3. Once the header verification is completed, we consider the environment in the header as the environment in which the transactions should be executed and we apply the transactions. We iterate over the transactions in the block and execute each transaction in the EVM.
- The block headers are passed to the EVM in order to provide the necessary context for processing the transaction. This context includes instructions such as coinbase, gas limit, and timestamp, which are required for proper execution.
- Additionally we pass in the transaction and the state
- In the event of a failed execution, we simply return the error, indicating an invalid transaction within the block and thereby rendering the block invalid. Within the execution layer, the presence of anything erroneous in a block renders the entire block invalid, as it contaminates the block as a whole.
@@ -115,52 +114,81 @@ The beacon chain invokes the new payload function and transfers the execution
TODO: STF code links and walk through in Geth
-##### Sync
+Check week 2 talk by lightclient for an overview.
-TODO
+##### Sync
-##### Payload building
+Execution client synchronizes the chain by downloading block data from its peers and verifying them using the block validation rule. Sync finishes when blockchain data is verified and clients catches up with the tip of the chain which enables building the latest state.
-TODO Link to block-production file
+Because it's inefficient to validate block by block and transaction by transaction since the genesis, EL clients employ other strategies to securely sync the tip of the chain, e.g. snap sync.
-###### Geth
+##### Payload building
-TODO
+More details in [block production](/wiki/EL/block-production.md)
#### Methods
##### New payload
-TODO
-
-###### Geth
-
-TODO
-
-###### Reth
+Validates the payload that was built earlier by the payload building routine.
-TODO
+
##### Fork choice updated
-TODO
-
-###### Geth
-
-TODO
-
-###### Reth
-
-TODO
+Proof-of-stake LMD-GHOST fork choice rule & payload building routine instantiation.
+
### Internal Consensus engines
-TODO
-
-#### Geth
-
-TODO
+The execution layer has its own consensus engine to work with its own copy of the beacon chain. The execution layer consensus engine is known as ethone and has about half the functionality of the full fledged consensus engine of the consensus layer.
+
+| Function | Beacon (Proof-of-stake) | Clique (Proof-of-authority) | Ethash (Proof-of-work) |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
+| **Author**: Eth address of the block minter | If the header is classified as a Proof of Stake (PoS) header, with a header difficulty set to 0, we will retrieve the header's coinbase. Otherwise, we will forward the header to the beacon's ethone engine (either clique or ethash) for further processing. | Obtains the account address that created the block. The process of recovering the public key from the header's extraData is performed by ecrerecover. | |
+| **Verify Header(s)**: Processes a batch of headers and validates them according to the rules of the current consensus engine. : | Split the headers based on [Terminal Total difficulty](https://eips.ethereum.org/EIPS/eip-3675#definitions) into pre and post TTD batches . Verify the pre batches with the ethone engine and the post by beacon's verify header. | | |
+| | Here we perform block header verification similar to the one in the [execution layer Specs](wiki/EL/el-specs?id=block-header-validation) wiki page and covered below in the client code table. | We verify the time of the header is not greater than system time. | |
+| | | If it is a checkpoint block (1'st slot of an epoch), then ensure it has no beneficiary. | |
+| | | The header nonce can take on two values: 0x00..0, which indicates a vote to add a signer, or 0xff..f, which indicates a vote to drop a signer. However, at checkpoints, we can only vote to drop a signer. | |
+| | | The extraData length mush account for vanity + signature. At checkpoints, the extraData contains the signer list + signature. | |
+| | | Header gas checks. | |
+| | | Retrieve the snapshot | |
+| | | On checkpoint blocks verify the signers in the snapshot against the extraData | |
+| | | Invoke the verify Seal function to determine whether all the criteria for the signature included in the header have been satisfied. The recovery process involves extracting information from the header and the list of recent signers in the Clique object. We then verify whether the signer is included in the snapshot. | | |
+| **Verify Uncles** | If the Header is a Proof-of-stake header, check that the length of uncles is 0. If the header is not Proof-of-stake, the process of verifying uncles is done via the ethone engine. | In Clique no uncles should be present | |
+| **Prepare**: Initializes the consensus fields of a block's header. | If TTD is reached we set the header's difficulty to beacon's difficulty of 0, else we call ethone's prepare | Create the voting snapshot by supplying the parent hash and number.During the reverse iteration process, we start from the block number and proceed backwards. We stop the iteration if we reach the genesis block, if we are using a light client that doesn't store parent blocks, if we reach an epoch by traversing backwards, or if the headers traversed exceed the soft Finality value (indicating that the segment is considered immutable). At the checkpoint where we stop the iteration, we create a snapshot. | |
+| | | If we are at the end of an epoch, we will go through the addresses in the proposals field of the snap object and choose one randomly as the coinbase. If the proposal is authorized, we will cast an auth-vote; otherwise, we will cast a drop vote. | |
+| | | Set the header difficulty based on the signer's turn (2 if the signer is in turn and 1 if not) | |
+| | | Verify that the extraData contains all the necessary elements, including extraVanity and a list of signers if the block occurs at the end of the epoch. This is added to the Header's extraData field. | |
+| **Finalize**: After making changes to the state, the state database may be updated, but this action does not involve the assembly of the block. | If the header is not a Proof-of-stake header, we execute the finalize function of ethone. Otherwise, we loop through the withdrawals in the block, converting their amounts from wei to gwei. We then modify the state by adding the converted amount to the address associated with the current withdrawal. | Clique has no post-transaction consensus rules, no block rewards in proof of authority | |
+| **FinalizeAndAssemble**: Finalizes and assemble the final block | If the header is not a Proof-of-stake header, we invoke ethone's FinalizeAndAssemble. If there are no withdrawals and the block is after the Shanghai fork, we include an empty withdrawals object. Next, we invoke the finalize function to calculate the state root. We then assign this value to the root property of the header object. Finally, we construct a new block by combining the header, transactions, uncles, receipts, and withdrawals. | Verify that there are no withdrawals, invoke the finalize function, calculate the state root of our stateDB, and assign it to the the Header . Construct a new block using the header, transactions, and receipts. | |
+| **Seal**: Generates a sealing request for a block and pushes the request into the given channel | If the header is not a Proof-of-stake header, we invoke ethone's seal. Otherwise, we take no action and return nil. The verification of the seal is performed by the consensus layer. | Make sure that the block is not the initial block, obtain the snapshot, and confirm that we have the authority to sign and are not included in the list of recent signers. Coordinate the timing of our respective turns, apply the sign function to sign, and transmit the securely sealed block through the designated channel. | |
+| **SealHash**: Hash of the block prior to sealing | | | |
+| **CalcDifficulty**: Difficulty adjustment algorithm, returns the difficulty of the new block | | | |
+
+#### Client code
+
+| | EELS(cancun) | Geth | Reth | Erigon | Nethermind | Besu |
+| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---- | ------ | ---------- | ---- |
+| $V(H) \equiv H_{gasUsed} \leq H_{gasLimit}$ | [validate_header](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L294) | | | | | |
+| $H_{gasLimit} < P(H)_{H_{gasLimit'}} + floor(\frac{P(H)_{H_{gasLimit'}}}{1024} ) $ | validate_header -> calculate_base_fee_per_gas -> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L256) | | | | | |
+| $H_{gasLimit} > P(H)_{H_{gasLimit'}} - floor(\frac{P(H)_{H_{gasLimit'}}}{1024} ) $ | '' | | | | | |
+| $H_{gasLimit} > 5000$ | calculate_base_fee_per_gas -> [check_gas_limit](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L1132) | | | | | |
+| $H_{timeStamp} > PH)_{H_{timeStamp'}} $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L323) | | | | | |
+| $H_{numberOfAncestors} = PH)_{H_{numberOfAncestors'}} + 1 )$ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L324) | | | | | |
+| $length(H_{extraData}) \leq 32_{bytes} $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L325) | | | | | |
+| $H_{baseFeePerGas} = F(H) $ | | | | | | |
+| $H_{parentHash} = KEC(RLP( P(H)_H )) $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L332) | | | | | |
+| $H_{ommersHash} = KEC(RLP(())) $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L329) | | | | | |
+| $H_{difficulty} = 0 $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L327) | | | | | |
+| $H_{nonce} = 0x0000000000000000 $ | validate_header-> [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L328) | | | | | |
+| $H_{prevRandao} = PREVRANDAO() $ (this is stale , beacon chain provides this now) | | | | | | |
+| $H_{withdrawlsHash} \neq nil $ | | | | | | |
+| $H_{blobGasUsed} \neq nil $ | | | | | | |
+| $H_{blobGasUsed} \leq MaxBlobGasPerBlock_{=786432} $ | | | | | | |
+| $H_{blobGasUsed} \% GasPerBlob_{=2^{17}} = 0 $ | | | | | | |
+| $H_{excessBlobGas} = CalcExcessBlobGas(P(H)_H) $ | [ensure](https://github.com/ethereum/execution-specs/blob/9fc7925c80ff2f3949e1cc340a4a0d36fcd4161c/src/ethereum/cancun/fork.py#L187) | | | | | |
### Downloader
@@ -179,21 +207,29 @@ In Ethereum two primary types of transaction pools are recognized:
### EVM
[Wiki - EVM](/wiki/EL/evm.md)
+TODO: Move relevant code from specs into EVM
### DevP2P
[Wiki - DevP2P](/wiki/EL/devp2p.md)
-### Data structures
-
-Blockchain and state data processed by execution client need to be stored in the disk. These are necessary to validate new blocks, verify history and to serve peers in the network. Client stores historical data, also called the ancient database, which include previous blocks. Another database of trie structure contains the current state and small number of recent states. In practice, clients keep various databases for different data categories. Each client can implement a different backend to handle this data, e.g. leveldb, pebble, mdbx.
+### Data structures
More details in the page on [EL data structures](/wiki/EL/data-structures.md).
-#### RLP
+### Storage
+
+Blockchain and state data processed by execution client need to be stored in the disk. These are necessary to validate new blocks, verify history and to serve peers in the network. Client stores historical data, also called the ancient database, which include previous blocks. Another database of trie structure contains the current state and small number of recent states. In practice, clients keep various databases for different data categories. Each client can implement a different backend to handle this data, e.g. leveldb, pebble, mdbx.
-[Wiki - RLP](/wiki/EL/RLP.md)
+**Leveldb**
+
+TODO
-### StateDB
+**Pebble**
TODO
+
+**MDBX**.
+
+Read more about its [features](https://github.com/erthink/libmdbx#features). Additionally, boltdb has a page on comparisons with other databases such as leveldb, [here](https://github.com/etcd-io/bbolt#comparison-with-other-databases). The comparative points mentioned on bolt are applicable to mdbx.
+
diff --git a/wordlist.txt b/wordlist.txt
index dcea1c3c..156b855f 100644
--- a/wordlist.txt
+++ b/wordlist.txt
@@ -32,6 +32,7 @@ attester
Attester
attesters
attestors
+auth
autoplay
AVS
backend
@@ -68,6 +69,7 @@ bloXroute
bloXroute's
BLS
Bogotá
+boltdb
Boneh
bool
booleans
@@ -81,6 +83,8 @@ Buterin's
bypassability
bytecode
bytecodes
+CalcDifficulty
+CalcExcessBlobGas
calldata
canonicalized
Caplin
@@ -204,6 +208,7 @@ ECDSA's
ECMUL
ECPAIRING
ECRECOVER
+ecrerecover
Edgington
Edgington's
EF
@@ -236,10 +241,14 @@ ERCs
Erigon
estimateGas
eth
+ethash
+Ethash
ETHCC
Ethereum
Ethereum's
ethers
+ethone
+ethone's
ethresear
ethresearch
ethroadmap
@@ -252,6 +261,7 @@ excalidraw
exchangeTransitionConfigurationV
Explainer
Extractable
+extraData
farcaster
fastssz
faytey
@@ -309,6 +319,7 @@ Grafana
Grandine
Grigore
Guillaume
+gwei
hackathon
hackmd
Hager
@@ -344,6 +355,7 @@ infrastracture
Infura
init
InsertCoin
+instantiation
intermediated
intermediation
interop
@@ -360,6 +372,7 @@ JVM
JWT
Karapetsas
Katex
+KEC
keccak
Keccak's
keecak
@@ -377,6 +390,7 @@ Lamport
Lamport's
ldots
Lefteris
+leq
leveldb
libp
lifecycle
@@ -412,10 +426,10 @@ meldsun
mem
Mempool
Menezes
-merkelizing
merkle
Merkleization
Merkleize
+merkleizing
Merkleized
Merkleizing
MEV
@@ -525,6 +539,8 @@ preconfirms
preconfs
preimage
Prest
+prevRandao
+PREVRANDAO
privateKey
probabilistically
programmability
@@ -679,6 +695,7 @@ trustlessly
trustlessness
TrustLook
TSTORE
+TTD
Tx
txpool
txs
@@ -724,8 +741,10 @@ webkit
WebRTC
Whitepaper
WIP
+withdrawlsHash
WSS
Xatu
+xff
XMSS
XORed
xy