diff --git a/docs/docs/adrs/adr-017-allowing-inactive-validators.md b/docs/docs/adrs/adr-017-allowing-inactive-validators.md index b1f7c5259b..4f49435e8c 100644 --- a/docs/docs/adrs/adr-017-allowing-inactive-validators.md +++ b/docs/docs/adrs/adr-017-allowing-inactive-validators.md @@ -28,22 +28,19 @@ Currently, the staking module, provider module, and CometBFT interact in this wa ![inactivevals_before.png](../../figures/inactivevals_before.png) -The staking module keeps a list of bonded validators. It sends these validators to CometBFT to inform which validators make up the next consensus validators, that is, the set of validators participating in the consensus process. Separately, the provider module reads the list of bonded validators and sends this to the consumer chain, after shaping it according to which validators are opted in and the parameters set by the consumer chain for allowlist, denylist, etc. +The staking module keeps a list of validators. The `MaxValidators` validators with the largest amount of stake are "active" validators. `MaxValidators` is a parameter of the staking module. The staking module sends these validators to CometBFT to inform which validators make up the next consensus validators, that is, the set of validators participating in the consensus process. Separately, the provider module reads the list of bonded validators and sends this to the consumer chain, after shaping it according to which validators are opted in and the parameters set by the consumer chain for allowlist, denylist, etc. ## Decision -The proposed solution to allow validators that are not participating in the consensus process on the provider (inactive validators) is to: +The proposed solution to allow validators that are not participating in the consensus process on the provider (inactive validators) is to change 3 main things: -a) increase the number of bonded validators in the staking module to a large number, e.g. 500 (vs 180 today). -This would usually mean that all those 500 validators take part in the consensus process on the provider, and we do not want this (since it slows down consensus and dilutes rewards), -so to handle this, we also: +a) increase the `MaxValidators` parameter of the staking module -b) do *not* take the updates for CometBFT directly from the bonded validators in the staking module, and instead *filter* the bonded validators to send only the first `MaxProviderConsensusValidators` (sorted by largest amount of stake first) many validators to CometBFT. Practically, we achieve this by repurposing the provider module, reading the bonded validators from the staking module, and simply filtering that list before sending it to CometBFT. +b) do *not* take the updates for CometBFT directly from the bonded validators in the staking module, by wrapping the staking modules `EndBlocker` with a dummy EndBlocker that doesn't return any validator updates. Instead, we adjust the provider module to return validator updates on its EndBlocker. These validator updates are obtained by *filtering* the bonded validators to send only the first `MaxProviderConsensusValidators` (sorted by largest amount of stake first) many validators to CometBFT -Then lastly, we c) use the enlarged list of bonded validators from the staking module as basis for the validator set that the provider module sends to consumer chains (again after applying power shaping and filtering out validatiors that are not opted in). -In consequence, the provider chain can keep a reasonably-sized validator set, while giving consumer chains a much larger pool of potential validators. +In consequence, the provider chain can keep a reasonably-sized consensus validator set, while giving consumer chains a much larger pool of potential validators. ![inactivevals_after.png](../../figures/inactivevals_after.png) diff --git a/docs/figures/inactivevals_after.excalidraw b/docs/figures/inactivevals_after.excalidraw new file mode 100644 index 0000000000..9a618ddf8c --- /dev/null +++ b/docs/figures/inactivevals_after.excalidraw @@ -0,0 +1,847 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "nJJZVzll88P_dmpDsWkuC", + "type": "rectangle", + "x": 551, + "y": -843, + "width": 657, + "height": 655, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { + "type": 3 + }, + "seed": 951962170, + "version": 63, + "versionNonce": 1865032870, + "isDeleted": false, + "boundElements": null, + "updated": 1717506390574, + "link": null, + "locked": false + }, + { + "id": "fVs1LhHvrrvCK3ZhJRtu5", + "type": "text", + "x": 575, + "y": -891, + "width": 249.3000030517578, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": null, + "seed": 129610534, + "version": 46, + "versionNonce": 1276535974, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Provider Chain", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Provider Chain", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "_Dx7IQJkJzNifgDjIf2sI", + "type": "rectangle", + "x": 622, + "y": -764, + "width": 161, + "height": 281, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { + "type": 3 + }, + "seed": 1049314490, + "version": 59, + "versionNonce": 1789968378, + "isDeleted": false, + "boundElements": [ + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow" + }, + { + "type": "text", + "id": "OyUuFa30MbHO4QszYQXEH" + } + ], + "updated": 1717508356543, + "link": null, + "locked": false + }, + { + "id": "OyUuFa30MbHO4QszYQXEH", + "type": "text", + "x": 667.3666648864746, + "y": -648.5, + "width": 70.26667022705078, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2G", + "roundness": null, + "seed": 335756666, + "version": 18, + "versionNonce": 1919688890, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Staking\nModule", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_Dx7IQJkJzNifgDjIf2sI", + "originalText": "Staking\nModule", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 230, + "versionNonce": 188847418, + "index": "a4", + "isDeleted": false, + "id": "wJsk4gejRqDCjtFbAeg8G", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 962.5, + "y": -756.5, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 186.99999999999997, + "height": 309, + "seed": 409738746, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow" + }, + { + "id": "XBn8pRQaZVQe5gai59xYl", + "type": "arrow" + } + ], + "updated": 1717507815940, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 351, + "versionNonce": 357216442, + "index": "a5", + "isDeleted": false, + "id": "n5HV8y4tI6DZYWWA1Koq6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 620.5, + "y": -376.5, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 164, + "height": 120.00000000000003, + "seed": 1248958374, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TKqZQfAcUP-6Q6EoH8fp0" + }, + { + "id": "QVrMGeKQYVvkrmDV5wKWR", + "type": "arrow" + } + ], + "updated": 1717508356543, + "link": null, + "locked": false + }, + { + "id": "TKqZQfAcUP-6Q6EoH8fp0", + "type": "text", + "x": 652.0166664123535, + "y": -329, + "width": 100.96666717529297, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 438334118, + "version": 22, + "versionNonce": 2019293562, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "CometBFT", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "n5HV8y4tI6DZYWWA1Koq6", + "originalText": "CometBFT", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "FPk9JragWk96YKRlFekY6", + "type": "rectangle", + "x": 1026, + "y": -678, + "width": 108.00000000000003, + "height": 98, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a8", + "roundness": { + "type": 3 + }, + "seed": 580928678, + "version": 174, + "versionNonce": 683525946, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "R6sc8M7CuGEvv7N7-fcTZ" + }, + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow" + }, + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow" + } + ], + "updated": 1717507761939, + "link": null, + "locked": false + }, + { + "id": "R6sc8M7CuGEvv7N7-fcTZ", + "type": "text", + "x": 1034.849998474121, + "y": -666.5, + "width": 90.30000305175781, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": null, + "seed": 758773690, + "version": 153, + "versionNonce": 596469030, + "isDeleted": false, + "boundElements": null, + "updated": 1717507759332, + "link": null, + "locked": false, + "text": "Power \nShaping\n& Opt In", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FPk9JragWk96YKRlFekY6", + "originalText": "Power Shaping\n& Opt In", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow", + "x": 784, + "y": -617.9538520826802, + "width": 240, + "height": 19.20103304326051, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": { + "type": 2 + }, + "seed": 75530874, + "version": 385, + "versionNonce": 598135718, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "teEeVARH2zRlZXGyzB2PV" + } + ], + "updated": 1717507759332, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 240, + -19.20103304326051 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_Dx7IQJkJzNifgDjIf2sI", + "focus": 0.08197485638165014, + "gap": 1 + }, + "endBinding": { + "elementId": "FPk9JragWk96YKRlFekY6", + "focus": 0.23696682464454974, + "gap": 2 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "teEeVARH2zRlZXGyzB2PV", + "type": "text", + "x": 837.0583343505859, + "y": -639.5, + "width": 99.88333129882812, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": null, + "seed": 918244474, + "version": 27, + "versionNonce": 206748218, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Bonded\nValidators", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "1QU4AFcgTvpCQQURDCxDZ", + "originalText": "Bonded\nValidators", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9Z_qOWKQyxwUvelhZMZx6", + "type": "text", + "x": 1011, + "y": -751, + "width": 78.66666412353516, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aE", + "roundness": null, + "seed": 91824166, + "version": 99, + "versionNonce": 207872422, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Provider\nModule", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Provider\nModule", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow", + "x": 1134, + "y": -632.7473377850915, + "width": 185, + "height": 10.747337785091531, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aF", + "roundness": { + "type": 2 + }, + "seed": 157350886, + "version": 351, + "versionNonce": 1955289658, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "IWrcqs7yN7FdMaMGcNDj4" + } + ], + "updated": 1717507763008, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 185, + 10.747337785091531 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "FPk9JragWk96YKRlFekY6", + "focus": -0.1320442396210268, + "gap": 1 + }, + "endBinding": { + "elementId": "zY_dSGPd9zunChgVkNDpR", + "focus": -0.020248008412827926, + "gap": 1.5583343505859375 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "IWrcqs7yN7FdMaMGcNDj4", + "type": "text", + "x": 1190.216667175293, + "y": -647, + "width": 67.56666564941406, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aG", + "roundness": null, + "seed": 1111293542, + "version": 19, + "versionNonce": 1166078906, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Shaped\nValSet", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "A8ifOchQWi_H__sEvTMnW", + "originalText": "Shaped\nValSet", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "zY_dSGPd9zunChgVkNDpR", + "type": "text", + "x": 1320.558334350586, + "y": -645, + "width": 84.88333129882812, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aH", + "roundness": null, + "seed": 359543462, + "version": 97, + "versionNonce": 589863290, + "isDeleted": false, + "boundElements": [ + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow" + } + ], + "updated": 1717507761940, + "link": null, + "locked": false, + "text": "sent to\nconsumer", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "sent to\nconsumer", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 259, + "versionNonce": 827676730, + "index": "aI", + "isDeleted": false, + "id": "kTEf4qbgYHvfyWHxD6yV2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 977, + "y": -555, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 152.00000000000006, + "height": 100, + "seed": 1312320038, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TKt49fH0utbl-oDqZWAHv" + }, + { + "id": "XBn8pRQaZVQe5gai59xYl", + "type": "arrow" + }, + { + "id": "QVrMGeKQYVvkrmDV5wKWR", + "type": "arrow" + } + ], + "updated": 1717507832443, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 273, + "versionNonce": 640336678, + "index": "aJ", + "isDeleted": false, + "id": "TKt49fH0utbl-oDqZWAHv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 987.3499984741211, + "y": -542.5, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 131.3000030517578, + "height": 75, + "seed": 489960806, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1717507777794, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Filter to\nsmall set of \nvalidators", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "kTEf4qbgYHvfyWHxD6yV2", + "originalText": "Filter to\nsmall set of validators", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "XBn8pRQaZVQe5gai59xYl", + "type": "arrow", + "x": 980, + "y": -633, + "width": 15, + "height": 78, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aK", + "roundness": { + "type": 2 + }, + "seed": 2081760186, + "version": 43, + "versionNonce": 557255654, + "isDeleted": false, + "boundElements": null, + "updated": 1717507819360, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 15, + 78 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "wJsk4gejRqDCjtFbAeg8G", + "focus": 0.5684407679100983, + "gap": 1 + }, + "endBinding": { + "elementId": "kTEf4qbgYHvfyWHxD6yV2", + "focus": -0.5651392632524705, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "QVrMGeKQYVvkrmDV5wKWR", + "type": "arrow", + "x": 981, + "y": -466, + "width": 196, + "height": 106, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aL", + "roundness": { + "type": 2 + }, + "seed": 390002426, + "version": 59, + "versionNonce": 832345722, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Usz338HAejcFqJG1vmJ4x" + } + ], + "updated": 1717507912037, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -196, + 106 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "kTEf4qbgYHvfyWHxD6yV2", + "focus": -0.000672043010752688, + "gap": 1 + }, + "endBinding": { + "elementId": "n5HV8y4tI6DZYWWA1Koq6", + "focus": 0.01070799921768042, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "Usz338HAejcFqJG1vmJ4x", + "type": "text", + "x": 827.5499992370605, + "y": -425.5, + "width": 110.9000015258789, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aM", + "roundness": null, + "seed": 920641702, + "version": 12, + "versionNonce": 1488639910, + "isDeleted": false, + "boundElements": null, + "updated": 1717507911327, + "link": null, + "locked": false, + "text": "ValUpdates", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QVrMGeKQYVvkrmDV5wKWR", + "originalText": "ValUpdates", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/figures/inactivevals_after.png b/docs/figures/inactivevals_after.png index 5708ce2dc1..fb9e862c02 100644 Binary files a/docs/figures/inactivevals_after.png and b/docs/figures/inactivevals_after.png differ diff --git a/docs/figures/inactivevals_before.excalidraw b/docs/figures/inactivevals_before.excalidraw new file mode 100644 index 0000000000..ea1d06352a --- /dev/null +++ b/docs/figures/inactivevals_before.excalidraw @@ -0,0 +1,659 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "nJJZVzll88P_dmpDsWkuC", + "type": "rectangle", + "x": 551, + "y": -843, + "width": 657, + "height": 655, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { + "type": 3 + }, + "seed": 951962170, + "version": 63, + "versionNonce": 1865032870, + "isDeleted": false, + "boundElements": null, + "updated": 1717506390574, + "link": null, + "locked": false + }, + { + "id": "fVs1LhHvrrvCK3ZhJRtu5", + "type": "text", + "x": 575, + "y": -891, + "width": 249.3000030517578, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": null, + "seed": 129610534, + "version": 46, + "versionNonce": 1276535974, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Provider Chain", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Provider Chain", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "_Dx7IQJkJzNifgDjIf2sI", + "type": "rectangle", + "x": 622, + "y": -764, + "width": 161, + "height": 281, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { + "type": 3 + }, + "seed": 1049314490, + "version": 58, + "versionNonce": 250933030, + "isDeleted": false, + "boundElements": [ + { + "id": "SPm0CjdkwnTk8Wfol8gqy", + "type": "arrow" + }, + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow" + }, + { + "type": "text", + "id": "OyUuFa30MbHO4QszYQXEH" + } + ], + "updated": 1717506907807, + "link": null, + "locked": false + }, + { + "id": "OyUuFa30MbHO4QszYQXEH", + "type": "text", + "x": 667.3666648864746, + "y": -648.5, + "width": 70.26667022705078, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2G", + "roundness": null, + "seed": 335756666, + "version": 18, + "versionNonce": 1919688890, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Staking\nModule", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_Dx7IQJkJzNifgDjIf2sI", + "originalText": "Staking\nModule", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 133, + "versionNonce": 1967865830, + "index": "a4", + "isDeleted": false, + "id": "wJsk4gejRqDCjtFbAeg8G", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 966.5, + "y": -764.5, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 161, + "height": 281, + "seed": 409738746, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow" + } + ], + "updated": 1717507105162, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 349, + "versionNonce": 1873924346, + "index": "a5", + "isDeleted": false, + "id": "n5HV8y4tI6DZYWWA1Koq6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 620.5, + "y": -376.5, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 164, + "height": 120.00000000000003, + "seed": 1248958374, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TKqZQfAcUP-6Q6EoH8fp0" + }, + { + "id": "SPm0CjdkwnTk8Wfol8gqy", + "type": "arrow" + } + ], + "updated": 1717506820805, + "link": null, + "locked": false + }, + { + "id": "TKqZQfAcUP-6Q6EoH8fp0", + "type": "text", + "x": 652.0166664123535, + "y": -329, + "width": 100.96666717529297, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 438334118, + "version": 22, + "versionNonce": 2019293562, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "CometBFT", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "n5HV8y4tI6DZYWWA1Koq6", + "originalText": "CometBFT", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "SPm0CjdkwnTk8Wfol8gqy", + "type": "arrow", + "x": 697, + "y": -480, + "width": 0, + "height": 106, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a7", + "roundness": { + "type": 2 + }, + "seed": 906345786, + "version": 53, + "versionNonce": 648670650, + "isDeleted": false, + "boundElements": null, + "updated": 1717506825727, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 106 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_Dx7IQJkJzNifgDjIf2sI", + "focus": 0.06832298136645963, + "gap": 3 + }, + "endBinding": { + "elementId": "n5HV8y4tI6DZYWWA1Koq6", + "focus": -0.06707317073170732, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "FPk9JragWk96YKRlFekY6", + "type": "rectangle", + "x": 995, + "y": -654, + "width": 108.00000000000003, + "height": 98, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a8", + "roundness": { + "type": 3 + }, + "seed": 580928678, + "version": 111, + "versionNonce": 1002770426, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "R6sc8M7CuGEvv7N7-fcTZ" + }, + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow" + } + ], + "updated": 1717506889152, + "link": null, + "locked": false + }, + { + "id": "R6sc8M7CuGEvv7N7-fcTZ", + "type": "text", + "x": 1003.8499984741211, + "y": -642.5, + "width": 90.30000305175781, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": null, + "seed": 758773690, + "version": 91, + "versionNonce": 1184232230, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Power \nShaping\n& Opt In", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FPk9JragWk96YKRlFekY6", + "originalText": "Power Shaping\n& Opt In", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "1QU4AFcgTvpCQQURDCxDZ", + "type": "arrow", + "x": 781, + "y": -613, + "width": 212, + "height": 3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": { + "type": 2 + }, + "seed": 75530874, + "version": 55, + "versionNonce": 700245990, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "teEeVARH2zRlZXGyzB2PV" + } + ], + "updated": 1717506903639, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 212, + -3 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_Dx7IQJkJzNifgDjIf2sI", + "focus": 0.08197485638165014, + "gap": 1 + }, + "endBinding": { + "elementId": "FPk9JragWk96YKRlFekY6", + "focus": 0.23696682464454974, + "gap": 2 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "teEeVARH2zRlZXGyzB2PV", + "type": "text", + "x": 837.0583343505859, + "y": -639.5, + "width": 99.88333129882812, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": null, + "seed": 918244474, + "version": 27, + "versionNonce": 206748218, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Bonded\nValidators", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "1QU4AFcgTvpCQQURDCxDZ", + "originalText": "Bonded\nValidators", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9Z_qOWKQyxwUvelhZMZx6", + "type": "text", + "x": 1011, + "y": -751, + "width": 78.66666412353516, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aE", + "roundness": null, + "seed": 91824166, + "version": 99, + "versionNonce": 207872422, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Provider\nModule", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Provider\nModule", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "A8ifOchQWi_H__sEvTMnW", + "type": "arrow", + "x": 1129, + "y": -622, + "width": 190, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aF", + "roundness": { + "type": 2 + }, + "seed": 157350886, + "version": 83, + "versionNonce": 738572602, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "IWrcqs7yN7FdMaMGcNDj4" + } + ], + "updated": 1717507110279, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 190, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "wJsk4gejRqDCjtFbAeg8G", + "focus": 0.014234875444839857, + "gap": 1.5 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "IWrcqs7yN7FdMaMGcNDj4", + "type": "text", + "x": 1190.216667175293, + "y": -647, + "width": 67.56666564941406, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aG", + "roundness": null, + "seed": 1111293542, + "version": 19, + "versionNonce": 1166078906, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "Shaped\nValSet", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "A8ifOchQWi_H__sEvTMnW", + "originalText": "Shaped\nValSet", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "zY_dSGPd9zunChgVkNDpR", + "type": "text", + "x": 1320.558334350586, + "y": -645, + "width": 84.88333129882812, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aH", + "roundness": null, + "seed": 359543462, + "version": 96, + "versionNonce": 100973798, + "isDeleted": false, + "boundElements": null, + "updated": 1717507131314, + "link": null, + "locked": false, + "text": "sent to\nconsumer", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "sent to\nconsumer", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/figures/inactivevals_before.png b/docs/figures/inactivevals_before.png index 8f63786e53..ffbcd584b8 100644 Binary files a/docs/figures/inactivevals_before.png and b/docs/figures/inactivevals_before.png differ