Skip to content

Create multis user update #1619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 144 commits into
base: cosmicelevator
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
cdcfd4b
fix: bring market.liquidity.targetstake.triggering.ratio in line with…
davidsiska-vega Jan 19, 2023
d993621
fix: duplicate AC codes in 0069-VCBS (#1536)
gordsport Jan 19, 2023
c2cb333
chore: trailing spaces
davidsiska-vega Jan 19, 2023
30a078d
fix: remove the unused netparam; not liking that
davidsiska-vega Jan 19, 2023
31ff6b9
Merge branch 'master' into fix_0035-AC-009
davidsiska-vega Jan 19, 2023
11b375e
Merge pull request #1534 from vegaprotocol/fix_0035-AC-009
davidsiska-vega Jan 19, 2023
4ff8a82
chore: remove untestable AC from 0018 (#1530)
gordsport Jan 19, 2023
fd16996
chore: reword 0063-VALK-013
wwestgarth Jan 19, 2023
d26a6c5
Merge pull request #1540 from vegaprotocol/clarify-key-rotation-acs
wwestgarth Jan 19, 2023
5c5cd6a
Update 0035-LIQM-liquidity_monitoring.md (#1539)
vega-paul Jan 19, 2023
9dba312
fix AC numbering on 0035-LIQM-liquidity_monitoring.md (#1541)
gordsport Jan 19, 2023
fad492e
Update 0011-NP-CLIE-client-interaction-tests.md
RomanLeca Jan 19, 2023
f7b5aad
feat: allow any key to request multisg signers update bundle
davidsiska-vega Jan 19, 2023
c98ec28
feat: clarify spam status
davidsiska-vega Jan 19, 2023
fa23993
Merge pull request #1544 from vegaprotocol/RomanLeca-patch-17
RomanLeca Jan 19, 2023
b8ffe02
Merge branch 'master' into feat-any-vega-key-can-get-multisig-update-…
davidsiska-vega Jan 19, 2023
2636658
Merge pull request #1545 from vegaprotocol/feat-any-vega-key-can-get-…
davidsiska-vega Jan 19, 2023
c5423e5
refactor: let max oi drop during auciton
Jan 17, 2023
960ace6
Merge pull request #1546 from vegaprotocol/move-implemented-bit
Jan 19, 2023
0890679
Wording tweaks for spam protection spec (#1548)
candida-d Jan 23, 2023
2069690
fix spelling in spam protection spec (#1553)
candida-d Jan 25, 2023
ff8266a
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Jan 26, 2023
2829019
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Jan 26, 2023
7e8aaf6
Update 0062-SPAM-spam_protection.md
Vegaklaus Jan 26, 2023
f9f0364
Update 0062-SPAM-spam_protection.md
Vegaklaus Jan 26, 2023
1ba47f4
Add quality checks to the makefile (#1556)
gordsport Jan 27, 2023
01e6b3f
fix: broken links in the specs (#1557)
gordsport Jan 30, 2023
f36cdf6
fix: remove broken kraken link
davidsiska-vega Jan 30, 2023
5405196
Merge pull request #1558 from vegaprotocol/remove-broken-kraken-link
davidsiska-vega Jan 30, 2023
15ad1cc
refactor: clarify 0042-LIQF-018
Jan 31, 2023
160b84e
feat: fix non-protocol linting and add makefile (#1563)
gordsport Feb 1, 2023
f957111
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Feb 1, 2023
9980120
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Feb 1, 2023
3cd1498
fix: Update acceptance criteria to correctly reflect implementation (…
MuthuVega Feb 1, 2023
23e87a8
fix: update epoch ACs (#1555)
AnExsomnis Feb 1, 2023
c7ff0b8
feat: update 0042, LP fee Transfer, Distribution
Jiajia-Cui Feb 2, 2023
e0e5a50
Add build folder to gitigore
Feb 2, 2023
9c6965a
Update protocol/0042-LIQF-setting_fees_and_rewarding_lps.md
Jiajia-Cui Feb 2, 2023
63405a0
Merge branch 'master' into 0042_LP_fee
Jiajia-Cui Feb 2, 2023
aa37556
Merge pull request #1569 from vegaprotocol/0042_LP_fee
Jiajia-Cui Feb 2, 2023
8fc249b
Ignore dictionary
Feb 2, 2023
a3b706b
Un parallelise clone-sources in makefile
Feb 2, 2023
125da9c
Add specs param to names and codes in makefile
Feb 2, 2023
9a28962
feat: update maker fee transfer account
Jiajia-Cui Feb 3, 2023
81db528
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Feb 3, 2023
e61c3d6
Update protocol/0029-FEES-fees.md
Jiajia-Cui Feb 3, 2023
10d105b
Update protocol/0029-FEES-fees.md
Jiajia-Cui Feb 3, 2023
98ba795
Update protocol/0029-FEES-fees.md
Jiajia-Cui Feb 3, 2023
e6a4aec
Merge pull request #1572 from vegaprotocol/update-maker-fee-transfer-…
Jiajia-Cui Feb 3, 2023
822bf36
Update 0048-DSRI-data_source_internal.md
RomanLeca Feb 6, 2023
4c1348e
Merge pull request #1574 from vegaprotocol/RomanLeca-patch-18
RomanLeca Feb 6, 2023
f1564de
fix: refactor 0069-VCBS-052 (#1570)
claudiumilea Feb 7, 2023
011b0d1
Merge branch 'master' into Vegaklaus-patch-18
gordsport Feb 7, 2023
c504e4f
fix: MD and spelling lint checks
gordsport Feb 7, 2023
51cadee
fix: MD and spelling lint errors
gordsport Feb 7, 2023
b160b7e
fix: update wording for AC 0059-VCBS-016- (#1566)
gordsport Feb 7, 2023
38c5b84
Merge branch 'master' into Vegaklaus-patch-18
gordsport Feb 7, 2023
95ab4a7
Merge pull request #1565 from vegaprotocol/Vegaklaus-patch-18
Vegaklaus Feb 7, 2023
2e2d3b8
Update 0062-SPAM-spam_protection.md (#1571)
Vegaklaus Feb 7, 2023
b31101a
Update 0011-NP-CLIE-client-interaction-tests.md (#1542)
Vegaklaus Feb 7, 2023
35cd1db
Update 0011-NP-CLIE-client-interaction-tests.md (#1579)
RomanLeca Feb 7, 2023
988fd23
refactor: clarify AC
Feb 7, 2023
561cca1
fix: adding bound on slippage part of margin
davidsiska-vega Feb 8, 2023
f104c75
fix: adding bound on slippage part of margin - ACs
davidsiska-vega Feb 8, 2023
f7fdfaa
chore: lint
davidsiska-vega Feb 8, 2023
f829d55
chore: format
davidsiska-vega Feb 8, 2023
172e542
chore: add ac codes
davidsiska-vega Feb 8, 2023
1e672ee
chore: lint
davidsiska-vega Feb 8, 2023
b437b31
feat: make it nonlinear
davidsiska-vega Feb 8, 2023
1051d50
fix: remove obsolete ac
davidsiska-vega Feb 8, 2023
173003e
fix: typo
davidsiska-vega Feb 8, 2023
023a6c8
Merge pull request #1582 from vegaprotocol/modify-0012-POSR-007
Feb 8, 2023
15f48fb
Merge branch 'master' into fix/cap-slippage-comp
gordsport Feb 8, 2023
154314f
fix: typo from comments
davidsiska-vega Feb 8, 2023
7ea2498
fix: code block in list formatting (#1584)
gordsport Feb 8, 2023
00af442
chore: Remove untestable acceptance criteria
MuthuVega Feb 9, 2023
afd76fc
Merge pull request #1586 from vegaprotocol/remove_untestable_ac_for_d…
MuthuVega Feb 9, 2023
a1fa7a1
feat: add rate limit spec
pscott31 Feb 10, 2023
3d9b4f2
chore: Merge branch 'master' into fix/cap-slippage-comp
davidsiska-vega Feb 10, 2023
03e9684
Merge pull request #1583 from vegaprotocol/fix/cap-slippage-comp
davidsiska-vega Feb 10, 2023
90df743
Merge branch 'master' into rate_limit
pscott31 Feb 10, 2023
eb959ff
Update 0057-TRAN-transfers.md (#1588)
vega-paul Feb 13, 2023
8ce66ce
chore: add AC codes
gordsport Feb 13, 2023
5a6c2f1
Update 0057-TRAN-transfers.md (#1590)
vega-paul Feb 14, 2023
328939b
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Feb 15, 2023
4a36b9e
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Feb 16, 2023
c2ab3df
fix: Expand acceptance criteria to make them clear for 0011-NP-CLIE-c…
MuthuVega Feb 16, 2023
4bf559e
feat: Add new PLUP AC for state-sync in protocol upgrade.
jgsbennett Feb 17, 2023
77323e4
feat: add closeout API
Jiajia-Cui Feb 20, 2023
525437a
chore: tidy up
Jiajia-Cui Feb 20, 2023
fd5c2a2
chore: remove blank line
Jiajia-Cui Feb 20, 2023
4820e3a
Merge pull request #1594 from vegaprotocol/Closeout-API
Jiajia-Cui Feb 20, 2023
06c64e9
chore: by more specific about when a client should be banned
pscott31 Feb 20, 2023
5e522c7
Merge branch 'master' into rate_limit
pscott31 Feb 20, 2023
7c577a9
Merge branch 'master' into state-sync-snapshot-pup
jgsbennett Feb 21, 2023
dd83c4c
Merge pull request #1592 from vegaprotocol/state-sync-snapshot-pup
jgsbennett Feb 21, 2023
9fa4e6d
feat: update formula line 140
Jiajia-Cui Feb 22, 2023
65c7582
Merge pull request #1597 from vegaprotocol/slippage_cap_formula
Jiajia-Cui Feb 22, 2023
0992230
fix: Add extra cases for various things that might be affected by val…
jgsbennett Feb 23, 2023
c1a3e16
fix: Review comments for new ACs.
jgsbennett Feb 24, 2023
53638b7
fix: Satisfy the linter.
jgsbennett Feb 24, 2023
419c67b
Merge pull request #1599 from vegaprotocol/validator_join_leave_cases
jgsbennett Feb 24, 2023
8df7df8
refactor: add slippage to orders
Feb 24, 2023
1a1f26f
refactor: update examples
Feb 24, 2023
c782c46
chore: fix linter issues
Feb 24, 2023
348902e
refactor: fix typo
Feb 24, 2023
bded263
refactor: formlise margin level treatment
Feb 24, 2023
d370414
refactor: amend/add ACs
Feb 25, 2023
6ba9f94
Update 0042-LIQF-setting_fees_and_rewarding_lps.md (#1598)
vega-paul Feb 27, 2023
e274bdc
fix: linting error
gordsport Feb 28, 2023
619d55a
Merge branch 'master' into margin-changes
gordsport Feb 28, 2023
348c7f1
fix: MD lint and spelling
gordsport Feb 28, 2023
5ce2b08
Merge branch 'master' into Vegaklaus-patch-21
gordsport Feb 28, 2023
5c6d571
Update 0069-VCBS-validators_chosen_by_stake.md (#1604)
vega-paul Mar 2, 2023
0bb3cb3
Update 0069-VCBS-validators_chosen_by_stake.md (#1596)
Vegaklaus Mar 2, 2023
514b609
Merge branch 'master' into rate_limit
gordsport Mar 2, 2023
0888f2e
Merge pull request #1587 from vegaprotocol/rate_limit
pscott31 Mar 2, 2023
7617163
Merge branch 'master' into margin-changes
gordsport Mar 2, 2023
90d31f7
Merge branch 'master' into Vegaklaus-patch-21
gordsport Mar 2, 2023
a8a2bf5
Merge pull request #1600 from vegaprotocol/margin-changes
Mar 2, 2023
884932f
Merge branch 'master' into Vegaklaus-patch-21
gordsport Mar 2, 2023
240e05b
fix: More validator join/leave test cases involving checkpoints. (#1601)
jgsbennett Mar 2, 2023
7c93797
Merge branch 'master' into Vegaklaus-patch-21
gordsport Mar 2, 2023
b50daeb
Merge pull request #1591 from vegaprotocol/Vegaklaus-patch-21
Vegaklaus Mar 2, 2023
0c3c7c4
feat: update make file and add approabtion to CI (#1605)
gordsport Mar 2, 2023
11c2ca2
Update 0011-NP-CLIE-client-interaction-tests.md
Vegaklaus Mar 6, 2023
7a78816
feat: fix typo in 0042
Jiajia-Cui Mar 7, 2023
7932524
Merge pull request #1609 from vegaprotocol/0042-typo
Jiajia-Cui Mar 7, 2023
e354d8a
fix: spelling errors
gordsport Mar 7, 2023
fd9d6e6
Merge branch 'master' into Vegaklaus-patch-22
Vegaklaus Mar 7, 2023
5868214
Merge pull request #1608 from vegaprotocol/Vegaklaus-patch-22
ValentinTrinque Mar 7, 2023
91df5df
Update 0004-AMND-amends.md (#1606)
vega-paul Mar 8, 2023
add89fa
fix: Relabel existing PLUP mainnet case to reflect the fact that it i…
jgsbennett Mar 8, 2023
b723d50
Update 0069-VCBS-validators_chosen_by_stake.md
Vegaklaus Mar 9, 2023
b1d4b45
chore: Amend acceptance criteria to cosmic elevator
MuthuVega Mar 9, 2023
7bdcd01
Merge pull request #1618 from vegaprotocol/amend_clie_acceptance_crit…
ValentinTrinque Mar 9, 2023
e8ab6d6
Create multis user update
Vegaklaus Mar 10, 2023
3248cbd
Update XXXX-MSUP-Multisig_Update.md
Vegaklaus Mar 10, 2023
a2776c0
Update XXXX-MSUP-Multisig_Update.md
Vegaklaus Mar 10, 2023
bac0d37
updated based on PoC implementation
C0deMunk33 Mar 13, 2023
32e62fc
updated formatting
C0deMunk33 Mar 13, 2023
acb39c8
staking
C0deMunk33 Mar 13, 2023
b251215
recovery process
C0deMunk33 Mar 13, 2023
5c61b38
recovery process
C0deMunk33 Mar 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/config/markdownlinkcheckignore.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ignorePatterns": [
{
"_comment": "Finds /protocol AC codes e.g. #0001-MKTF-001",
"pattern": "^#[0-9]{4}-[A-Z]{4}-[0-9]{3}"
},
{
"_comment": "Finds /non-protocol-specs AC codes e.g. #0001-NP-LIQB-001",
"pattern": "^#[0-9]{4}-[A-Z]{2}-[A-Z]{4}-[0-9]{3}"
}
]
}
4 changes: 2 additions & 2 deletions .github/workflows/config/markdownlint.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"commands-show-output": false,
"no-bare-urls": true,
"no-inline-html": false,
"no-hard-tabs": false,
}
"no-hard-tabs": false
}
5 changes: 2 additions & 3 deletions .github/workflows/config/markdownlintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
glossaries/*
non-protocol-specs/*
user-interface/*
user-interface/*
LICENSE.md
15 changes: 15 additions & 0 deletions .github/workflows/quality_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,18 @@ jobs:
files: .
config_file: .github/workflows/config/markdownlint.json
ignore_path: .github/workflows/config/markdownlintignore

checkcodes:
name: "Approbation"
runs-on: ubuntu-latest
steps:
- name: "Check out"
uses: actions/checkout@v3

- name: "Run Check AC codes"
run: |
npx github:vegaprotocol/approbation check-codes --specs="{./non-protocol-specs/**/*.md,./protocol/**/*.md}"

- name: "Run Check file names"
run: |
npx github:vegaprotocol/approbation check-filenames --specs="{./non-protocol-specs/**/*.md,./protocol/**/*.md}"
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@
.ipynb_checkpoints/
.obsidian/
.vscode/

# Used by makefile to clone repos for approbation checks
.build/

# Used by ./spellcheck.sh
dictionary.dic
18 changes: 9 additions & 9 deletions glossaries/distributed-ledger-glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## ABI

Application Binary Interface - A JSON representation list of a smart contract's functions and arguments. It is used by wallets or clients to produce a transaction that interacts with a contract that exists on the the Ethereum chain - mapping function calls and parameters in to a bytecode form that the [EVM](#EVM) will execute.
Application Binary Interface - A JSON representation list of a smart contract's functions and arguments. It is used by wallets or clients to produce a transaction that interacts with a contract that exists on the the Ethereum chain - mapping function calls and parameters in to a bytecode form that the [EVM](#evm) will execute.

## Algorithm

Expand All @@ -12,7 +12,7 @@ A generally understood set of rules and calculations for solving a particular pr

The process of verifying that an actor (person or machine) is who they claim they are.

## Authorization
## Authorisation

The process of verifying that an actor (person or machine) is allowed to take an action.

Expand Down Expand Up @@ -47,7 +47,7 @@ Short for [Distributed Ledger Technology](https://en.wikipedia.org/wiki/Distribu

## Erasure Coding

... TODO but see [here](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding).
... `TODO` but see [here](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding).

## Eventual consistency

Expand Down Expand Up @@ -77,7 +77,7 @@ A rule for determining which fork is correct when faced with multiple possibly-v

The [Greedy Heaviest-Observed Subtree](https://eprint.iacr.org/2013/881.pdf), a fork choice rule.

## Hashchain
## Hash chain

...

Expand All @@ -95,7 +95,7 @@ The amount of time before a system can achieve both consensus and finality; it's

## Longest Chain

The longest chain approach is one way to solve consensus. It consists of a mechanism that (not necessarily uniquely) determinas a leader that can propose the next block in the blockchain. If a node sees a longer chain than the one it knows, it uses that one as its new chain. Longest chain protocols do not offer finallity, i.e., every block can (theoretically) be undone.
The longest chain approach is one way to solve consensus. It consists of a mechanism that (not necessarily uniquely) determines a leader that can propose the next block in the blockchain. If a node sees a longer chain than the one it knows, it uses that one as its new chain. Longest chain protocols do not offer finality, i.e., every block can (theoretically) be undone.

## MainNet

Expand Down Expand Up @@ -137,7 +137,7 @@ There are entire protocols ([Band](https://bandprotocol.com/), [Chainlink](https

## Reliable Broadcast

A reliable broadcast assures that all receiving of a broadcasr nodes receive the same set of messages, and that a message sent by an honest sender is received. ... see [here](https://www.semanticscholar.org/paper/Asynchronous-consensus-and-broadcast-protocols-Bracha-Toueg/130ce1bcd496a7b9192f5f53dd8d7ef626e40675),
A reliable broadcast assures that all receiving of a broadcast nodes receive the same set of messages, and that a message sent by an honest sender is received. ... see [here](https://www.semanticscholar.org/paper/Asynchronous-consensus-and-broadcast-protocols-Bracha-Toueg/130ce1bcd496a7b9192f5f53dd8d7ef626e40675),
[here](https://www.shoup.net/papers/ckps.pdf) or [here](https://arxiv.org/pdf/1510.06882.pdf).

## State Channels
Expand All @@ -162,7 +162,7 @@ The amount of data that can be processed by a system in a given unit of time, e.

## Validators

From the [Tendermint documentation](https://docs.tendermint.com/master/nodes/validators.html):
> Validators are responsible for committing new blocks in the blockchain. These validators participate in the consensus protocol by broadcasting votes which contain cryptographic signatures signed by each validator's private key.
From the [Tendermint documentation](https://docs.tendermint.com/v0.34/tendermint-core/validators.html):

> Some Proof-of-Stake consensus algorithms aim to create a "completely" decentralized system where all stakeholders (even those who are not always available online) participate in the committing of blocks. [Tendermint](#tendermint) has a different approach to block creation. Validators are expected to be online, and the set of validators is permissioned/curated by some external process.
> Validators are responsible for committing new blocks in the blockchain. These validators participate in the consensus protocol by broadcasting votes which contain cryptographic signatures signed by each validator's private key.
> Some Proof-of-Stake consensus algorithms aim to create a "completely" decentralised system where all stakeholders (even those who are not always available online) participate in the committing of blocks. [Tendermint](#tendermint) has a different approach to block creation. Validators are expected to be online, and the set of validators is permissioned/curated by some external process.
15 changes: 8 additions & 7 deletions glossaries/staking-and-governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ This is a general term that may have specific meaning in different contexts. Veg

## Delegation

This is the process of assigning Vega tokens to validators on Vega chain. It is a two step process consisting of
1) [Association](#associate) which happens on the Ethereum blockchain by interaction with the Staking and Delegation bridges.
2) [Nomination](#nominate) which happens on the Vega blockchain, assigning voting power to validators.
This is the process of assigning Vega tokens to validators on Vega chain. It is a two step process consisting of:

1. [Association](#associate) which happens on the Ethereum blockchain by interaction with the Staking and Delegation bridges.
1. [Nomination](#nominate) which happens on the Vega blockchain, assigning voting power to validators.

## Associate

This allows a user with Vega Tokens on Ethereum to associate their tokens with a vega key so that the Vega key can participate in [Governance](#Governance) and [Nominate](#Nominate) their Stake to a [validator](distributed-ledger-glossary.md#validators).
This allows a user with Vega Tokens on Ethereum to associate their tokens with a vega key so that the Vega key can participate in [Governance](#governance) and [Nominate](#nominate) their Stake to a [validator](distributed-ledger-glossary.md#validators).
This is done by interaction with the Staking and Delegation bridge contracts (the vesting contract implements this functionality for Vega held by the vesting contract).

## Dissociate

To opposite of association. Tokens can be dissociated via Ethereum staking and delegation bridge.
Vega tokens are thus no longer associated to a Vega key (on either the Staking bridge or the Vesting contract, depending on how they were [Associated](#associate)). This means that in the future they can be associated to a different (or same) Vega key.
This action happens on Ethereum. The staking and delegation smart contract and does not know when an [Epoch](#Epoch) ends meaning the relevant Vega key will not be due any rewards from that epoch.
Users are recommended to first [De-nominate](#De-nominate) sufficient amount using their Vega key and interacting with the Vega chain. This way, when the Epoch ends they can dissociate without loosing any due rewards. Moreover they get to choose which validator they are removing their nomination from.
This action happens on Ethereum. The staking and delegation smart contract and does not know when an [Epoch](#epoch) ends meaning the relevant Vega key will not be due any rewards from that epoch.
Users are recommended to first [De-nominate](#de-nominate) sufficient amount using their Vega key and interacting with the Vega chain. This way, when the Epoch ends they can dissociate without loosing any due rewards. Moreover they get to choose which validator they are removing their nomination from.

## Governance

Expand All @@ -44,4 +45,4 @@ A window of time, In which tokens that are staked on a are due a reward. If toke

## Self Staking

That act of putting Vega tokens on a Validator node that you are running, as apposed to having tokens staked on a node via [Nomination](#Nominate).
That act of putting Vega tokens on a Validator node that you are running, as apposed to having tokens staked on a node via [Nomination](#nominate).
Loading