<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jueming</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jueming"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/Jueming"/>
	<updated>2026-04-11T10:38:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Maintenance_Guide&amp;diff=6697</id>
		<title>Node Provider Maintenance Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Maintenance_Guide&amp;diff=6697"/>
		<updated>2023-11-19T14:30:57Z</updated>

		<summary type="html">&lt;p&gt;Jueming: NODE_OPERATOR_ID is changed to NODE_OPERATOR_PRINCIPAL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Submitting NNS proposals ==&lt;br /&gt;
Here are some NNS proposals you may have to submit after onboarding nodes.&lt;br /&gt;
&lt;br /&gt;
=== Adjusting the node allowance in a Data Center ===&lt;br /&gt;
To adjust the node allowance for an existing node operator record, you would need to use the &amp;lt;code&amp;gt;propose-to-update-node-operator-config&amp;lt;/code&amp;gt; subcommand of the &amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; tool. You should typically not add a new node operator record if you just want to add more nodes to the &#039;&#039;existing&#039;&#039; DC.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a step-by-step guide on how to do this:&lt;br /&gt;
&lt;br /&gt;
1.  &#039;&#039;&#039;Gather Necessary Information:&#039;&#039;&#039; Ensure you have the following details:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;NODE_PROVIDER_ID&amp;lt;/code&amp;gt;: The principal ID of the node provider under which the node operator record is registered.&lt;br /&gt;
# &amp;lt;code&amp;gt;NODE_OPERATOR_ID&amp;lt;/code&amp;gt;: The principal ID of the node operator whose allowance you want to change.&lt;br /&gt;
# &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt;: The ID of the neuron that will propose this change.&lt;br /&gt;
# &amp;lt;code&amp;gt;CURRENTLY_REMAINING_NODE_ALLOWANCE&amp;lt;/code&amp;gt;: The number of nodes that the node operator is allowed to add to the network without submitting a proposal.&lt;br /&gt;
#&amp;lt;code&amp;gt;NEW_NODE_ALLOWANCE&amp;lt;/code&amp;gt;: The new number of nodes that the node operator is allowed to add.&lt;br /&gt;
The parts 1, 2, and 3 should be in your records, and should be the same principals (IDs) used to onboard nodes &#039;&#039;in the given DC&#039;&#039;. The part 4 can be obtained from the registry, with &amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ ic-admin --nns-url &amp;lt;nowiki&amp;gt;https://ic0.app&amp;lt;/nowiki&amp;gt; get-node-operator $NODE_OPERATOR_ID&lt;br /&gt;
For example:&lt;br /&gt;
 $ ic-admin --nns-url &amp;lt;nowiki&amp;gt;https://ic0.app&amp;lt;/nowiki&amp;gt; get-node-operator yl63e-n74ks-fnefm-einyj-kwqot-7nkim-g5rq4-ctn3h-3ee6h-24fe4-uqe&lt;br /&gt;
 Fetching the most recent value for key: node_operator_record_yl63e-n74ks-fnefm-einyj-kwqot-7nkim-g5rq4-ctn3h-3ee6h-24fe4-uqe&lt;br /&gt;
 Most recent version is 35791. Value:&lt;br /&gt;
 NodeOperator { node_operator_principal_id: yl63e-n74ks-fnefm-einyj-kwqot-7nkim-g5rq4-ctn3h-3ee6h-24fe4-uqe, node_allowance: 0, node_provider_principal_id: niw4y-easue-l3qvz-sozsi-tfkvb-cxcx6-pzslg-5dqld-ooudp-hsuui-xae, dc_id: &amp;quot;mu1&amp;quot;, rewardable_nodes: {&amp;quot;type0&amp;quot;: 0, &amp;quot;type1&amp;quot;: 28}, ipv6: None }&lt;br /&gt;
In the above example, the &amp;lt;code&amp;gt;CURRENTLY_REMAINING_NODE_ALLOWANCE&amp;lt;/code&amp;gt; is 0. So if you want to add 5 more nodes with the same node operator (i.e. in the same DC), you should use &amp;lt;code&amp;gt;NEW_NODE_ALLOWANCE=5&amp;lt;/code&amp;gt;. However, if the &amp;lt;code&amp;gt;CURRENTLY_REMAINING_NODE_ALLOWANCE&amp;lt;/code&amp;gt; had value 2, you would only need 3 more nodes on top of your currently remaining allowance (2+3=5), so you should use &amp;lt;code&amp;gt;NEW_NODE_ALLOWANCE=3&amp;lt;/code&amp;gt; in the proposal&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Prepare the Command&#039;&#039;&#039;: Construct the &amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; command using the gathered information. Here&#039;s an example template:&lt;br /&gt;
 $ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
 $ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
 $ NODE_OPERATOR_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
 $ NODE_PROVIDER_NAME=&amp;quot;My Company&amp;quot;&lt;br /&gt;
 $ NEW_NODE_ALLOWANCE=5&lt;br /&gt;
 $ FORUM_POST_URL=[https://forum.dfinity.org/ https://forum.dfinity.org/...]&lt;br /&gt;
 &lt;br /&gt;
 $ ./ic-admin \&lt;br /&gt;
         --nns-url &amp;lt;nowiki&amp;gt;https://ic0.app&amp;lt;/nowiki&amp;gt; \&lt;br /&gt;
         -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
     propose-to-update-node-operator-config \&lt;br /&gt;
         --node-provider-id $NODE_PROVIDER_PRINCIPAL \&lt;br /&gt;
         --node-operator-id $NODE_OPERATOR_PRINCIPAL \&lt;br /&gt;
         --summary &amp;quot;Node provider &#039;$NODE_PROVIDER_NAME&#039; is adjusting the node allowance $NODE_ALLOWANCE to nodes in the $DC_ID data center. Link to the forum post for: $FORUM_POST_URL&amp;quot; \&lt;br /&gt;
         --proposer $NEURON_ID \&lt;br /&gt;
           $NEW_NODE_ALLOWANCE  &lt;br /&gt;
Replace all placeholder variables above with the actual values before submitting the proposal.&lt;br /&gt;
&lt;br /&gt;
3.  &#039;&#039;&#039;Dry Run (strongly recommended)&#039;&#039;&#039;: To preview the proposal without actually submitting it, you can add the &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt; flag to the above command. This is useful for checking the proposal payload and ensuring everything is correct before the actual submission.&lt;br /&gt;
&lt;br /&gt;
4.  &#039;&#039;&#039;Execute the Command&#039;&#039;&#039;: Once you are sure about the command and the details, execute it in your terminal. This will submit a proposal to update the node allowance in the node operator&#039;s configuration.&lt;br /&gt;
&lt;br /&gt;
5.  &#039;&#039;&#039;Monitor and Voting&#039;&#039;&#039;: After submitting the proposal, it will go through a voting process by the governance system. You should monitor this to see if the proposal gets accepted or rejected. &lt;br /&gt;
&lt;br /&gt;
7.  &#039;&#039;&#039;Verification (Post-Approval)&#039;&#039;&#039;: If the proposal is approved, you may want to verify that the node allowance has been updated as expected. This might involve querying the node operator&#039;s record with &amp;lt;code&amp;gt;get-node-operator&amp;lt;/code&amp;gt; as described above.&lt;br /&gt;
&lt;br /&gt;
Note that the exact command and options will vary based on your specific configuration and requirements. Make sure to replace placeholders with actual values relevant to your setup.&lt;br /&gt;
&lt;br /&gt;
To see all available options, you can run:&lt;br /&gt;
 $ ic-admin --nns-url &amp;lt;nowiki&amp;gt;https://ic0.app&amp;lt;/nowiki&amp;gt; propose-to-update-node-operator-config --help&lt;br /&gt;
&lt;br /&gt;
== Joining the Node Provider Matrix Channel ==&lt;br /&gt;
&lt;br /&gt;
Node Providers are encouraged to join the dedicated [[Node Provider Matrix channel]]. This platform is essential for discussing maintenance-related queries and sharing insights about node operations.&lt;br /&gt;
&lt;br /&gt;
=== Communication Guidelines ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Active Participation&#039;&#039;&#039;: Ensure your notifications are enabled to receive new messages promptly. Your input or intervention might be crucial, especially in urgent situations.&lt;br /&gt;
* &#039;&#039;&#039;Regular Operations&#039;&#039;&#039;: Regularly monitor the health of your node. Node health status is available on the public dashboard, which. Example: [https://dashboard.internetcomputer.org/node/b5d56-nm7ae-p24jg-t25gp-5bmhb-rjbnt-3dmoq-goqby-5tf6c-ygnnu-aqe node status].&lt;br /&gt;
&lt;br /&gt;
== Tools and Resources ==&lt;br /&gt;
&lt;br /&gt;
Several node providers have generously shared tools to facilitate monitoring node health. These tools can provide notifications in case of node issues.&lt;br /&gt;
&lt;br /&gt;
=== Aviate Labs Node Monitor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Turnkey Solution&#039;&#039;&#039;: Receive email alerts for unhealthy nodes.&lt;br /&gt;
* &#039;&#039;&#039;Link&#039;&#039;&#039;: [https://www.aviatelabs.co/node-monitor AviateLabs Node Monitor]&lt;br /&gt;
&lt;br /&gt;
=== DIY Node Monitoring ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GitHub Repository&#039;&#039;&#039;: Run your own node monitoring system.&lt;br /&gt;
* &#039;&#039;&#039;Link&#039;&#039;&#039;: [https://github.com/aviate-labs/node-monitor Aviate Labs GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Prometheus Exporter for Node Status ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GitHub Repository&#039;&#039;&#039;: A tool for exporting node status to a Prometheus-compatible format.&lt;br /&gt;
* &#039;&#039;&#039;Link&#039;&#039;&#039;: [https://github.com/virtualhive/ic-node-status-prometheus-exporter IC Node Status Prometheus Exporter]&lt;br /&gt;
&lt;br /&gt;
== Additional Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Screenshots&#039;&#039;&#039;: Include screenshots of the node status from the public dashboard for reference and troubleshooting.&lt;br /&gt;
In case you observe issues, follow: [[Unhealthy Nodes]] and [[Node Provider Troubleshooting]]&lt;/div&gt;</summary>
		<author><name>Jueming</name></author>
	</entry>
</feed>