Steps for Gen-1 Node onboarding after 48 months
Explanations regarding the reason and timing for these instructions is available in this forum post
In order for nodes to earn rewards beyond their initial 48 months, each Gen-1 Node Provider will need to follow the below steps. For Gen-1 Node Providers with less than 42 nodes, only steps 1 and 1a are applicable.
This flowchart lays out the steps and include sample dates for Node Providers whose 48 months is ending 31 January 2025. (High resolution PDF here.)
Step 1 - Update of reward configuration of remaining node machines (action holder existing node provider)
A. On the forum, create a post (here, and crossposted here*) with at least the following information
- A link to your self-declaration on the wiki, to declare that you will act in the best interest of the IC. If not already published, the instruction for publication of the self-declaration can be found here
- A statement of how many nodes you wish to continue running under the new remuneration (link)
- A statement of which DC(s) those nodes will run in
- A confirmation that you have deployed two nodes with IPv4 and a domain name in each DC(s)
- The date when these nodes will start earning the new reward values (which should be the day after your original 48 months end)
- The Element/Matrix alias on which the node provider can be reached
*Note: If the forum will not permit you to post links, DM Katie on Element or in the forum with your user handle so your permissions can be adjusted.
* Your forum post should be submitted 30 days prior to the date specified Step 1.A.5 to allow the DRE team to submit the subnet membership change proposals, as active excess nodes need to be removed from subnets.
B. NNS - AFTER you receive the last distribution for your 48 months (Feb 13 for most NPs) - Using your existing Node Operator Id, submit an NNS proposal using the template below to submit the new count of nodes into the registry as node type1.1* (sample proposal)
...
Step 1b
(Optional, but recommended. Action holder existing node provider)
Reconfigure remaining node machines without HSM-key, to allow for better support by DRE team. The timing for this must be coordinated with DFiNITY so subnets can be maintained.
The following steps need to be followed when reconfiguring the remaining node machines without HSM:
- Get new node operator private keys and node operator principle using the installation instructions, without the use of an HSM, i.e. steps 6 and 7.
- NNS - in collaboration with Dfinity DRE team, remove any node machines from active subnets, making node machines “ready to join a subnet”.
- Redeploy the remaining number of nodes (max 42) to the new node operator record following the node deployment instructions (keeping the IPv6 for the first two nodes).
- NNS - create a node operator record with the allowance for the remaining number of nodes, following the installation instruction, step 10. (sample proposal)
- NNS - remove the old node operator record (sample proposal)
- NNS - Update the new node operator record with the reward configuration (same as step 1.6, but with the new NO id) with the nodes that have been redeployed. (sample propsal)
Step 2 - Handover (action holder - existing node provider)
Any excess node machines (above the maximum of 42 nodes) can be sold by the existing node provider to a new (or existing) other node provider that is not in any way controlled by the existing node provider. The following steps need to be followed:
A. A statement, published on the IC wiki, signed by both the existing and the new node provider, of the hand-over of <<xx>> node machines. It should also include:
- In which Data Center these excess node machines will be operated
- Declaration that both NPs do not have any majority control in each other’s operations
- A confirmation that you have deployed two nodes with IPv4 and a domain name in each DC(s)
- The date when these nodes will start earning the new reward values
B. On the forum, a post describing the handover of the excess nodes that links to the above wiki statement and which also includes the same four details. *Note: If the forum will not permit you to post links, DM Katie on Element or in the forum with your user handle so your permissions can be adjusted.
After these above steps, the node provider acquiring the excess nodes will commence with officially onboarding as a new node provider following the regular steps described in the wiki. These steps are summarized below:
Step 3 - Onboarding of excess Gen1 node machines that are sold to a new or an existing NP (action holder - acquiring node provider)
- (If new NP) On IC wiki - Post self-declaration document, as described here.
- (If new NP) On IC wiki - Post proof of identity document, as described here.
- (If a new NP) Follow the onboarding process for a new node provider.
- (If new NP) On Forum here - Introduction by the new NP, including the Element/Matrix alias on which the node provider can be reached.
- (If new NP) NNS - Submit a new NP proposal, as per step 8 of the NP onboarding instructions.
- (New NP or existing NP, if nodes are going into a new DC) NNS - submit a new Data Center Record, as per step 9 of the onboarding process. This step can be skipped if the node machines will remain in the current data center where the nodes were hosted by the previous node providers.
- (New NP or existing NP) NNS - submit Node Operator record for node allowance, as per step 10 of the onboarding process.
- (New NP or existing NP) NNS - submit Node Operator record for reward configuration.
Sample Proposals
Sample proposal for Step 1.A.4
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ NODE_OPERATOR_PRINCIPAL_NEW=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ NODE_PROVIDER_NAME="My Company"
$ NODE_ALLOWANCE=8
$ FORUM_POST_URL="https://forum.dfinity.org/..."
$ WIKI_URL="https://wiki.internetcomputer.org/wiki/..."
$ DC_ID=dl1
$ ./ic-admin \
--nns-url https://ic0.app \
-s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
propose-to-add-node-operator \
$NODE_PROVIDER_PRINCIPAL \
--summary "Node provider '$NODE_PROVIDER_NAME' is creating a new Node Operator id for adding $NODE_ALLOWANCE nodes in the $DC_ID data center. This proposal is in line with motion proposal 132553 for node rewards after 48 months, the proposal is clarified in this forum post: $FORUM_POST_URL and this wiki link $WIKI_URL" \
--proposer $NEURON_ID \
--node-operator-principal-id $NODE_OPERATOR_PRINCIPAL_NEW \
--node-allowance $NODE_ALLOWANCE \
--dc-id $DC_ID
Sample proposal for Step 1.A.5
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxx
$ NODE_OPERATOR_PRINCIPAL_OLD=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ NODE_PROVIDER_NAME="My Company"
$ FORUM_POST_URL="https://forum.dfinity.org/..."
$ WIKI_URL="https://wiki.internetcomputer.org/wiki/..."
$ ./ic-admin \
--nns-url https://ic0.app \
-s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
propose-to-remove-node-operator \
$NODE_OPERATOR_PRINCIPAL_OLD \
--summary "Node provider '$NODE_PROVIDER_NAME' is removing the old Node Operator ID in the $DC_ID data center. This proposal is in line with motion proposal 132553 for node rewards after 48 months, the proposal is clarified in this forum post $FORUM_POST_URL and this wiki link $WIKI_URL" \
--proposer $NEURON_ID
Sample proposal for Step 1.A.6
$ NEURON_ID = XXXXXXXXXXXXXXXXXXXX
$ NODE_OPERATOR_PRINCIPAL = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ ./ic-admin \
--nns-url https://ic0.app \
-s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
propose-to-update-node-operator-config \
--proposer $NEURON_ID \
--summary "In line with motion proposal 132553 for node rewards after 48 months, set rewards for the following nodes:
* NODE_1_MACHINE_ID
* NODE_2_MACHINE_ID
* ...
* NODE_N_MACHINE_ID
" \
--node-operator-id $NODE_OPERATOR_PRINCIPAL \
--rewardable-nodes '{"type1.1": NODE_COUNT}'
Sample proposal for Step 1.B
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX
$ NODE_OPERATOR_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ FORUM_POST_URL="https://forum.dfinity.org/..."
$ WIKI_URL="https://wiki.internetcomputer.org/wiki/..."
$ ./ic-admin \
--nns-url https://ic0.app \
-s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
propose-to-update-node-operator-config \
--proposer $NEURON_ID \
--summary "In line with motion proposal 132553 for node rewards after 48 months, set rewards for the following nodes:
* NODE_1_MACHINE_ID
* NODE_2_MACHINE_ID
* ...
* NODE_N_MACHINE_ID
For a detailed clarification of the proposal, please refer to the following forum post $FORUM_POST_URL
" \
--node-operator-id $NODE_OPERATOR_PRINCIPAL \
--rewardable-nodes '{"type1.1": NODE_COUNT}'