Node Requirements¶
Minimum System Requirements¶
Debian/Ubuntu (Recommended)
20GB storage
4GB RAM
x86 architecture
Static IP address
Exposed TCP port 9151
Nodes can be run on cloud infrastructure - for example, a Digital Ocean 4GB Basic Droplet satisfies the requirements listed above.
The above requirements only apply if you intend to run a node yourself. Alternatively, a staking provider can run a node on your behalf.
PRE Node Configuration Requirements¶
Ethereum Node Provider URI¶
The PRE node will need to execute an initial transaction to confirm its
operation on startup, and therefore requires access to an
ethereum node
(either a local or remote ethereum node) to broadcast the transaction. Remote
ethereum providers include Infura, Alchemy etc. and an HTTPS URI will need to
be configured (https://<URI>
), whereas a local full node would entail running
geth locally and configured using the
IPC URI (ipc://<PATH TO IPC FILE>
).
This value is specified via the --eth-provider
CLI parameter.
It is worth noting that running a local ethereum node is quite the undertaking, and has its own additional requirements.
Polygon Node Provider URI¶
As of nucypher
v6.0.0, policy management occurs on the Polygon layer 2 side-chain
by default. In order to validate the payment of policies before responding to service required, PRE nodes will need to
make requests to the Polygon side-chain. Much like an Ethereum provider endpoint, the PRE node will need
to configure a Polygon RPC endpoint URI e.g. (https://<URI>
) for the node to use. This value is specified via
the --payment-provider
CLI parameter. Infrastructure providers such as
Infura, provide Polygon endpoints.
Operator Software Ethereum Account¶
A software wallet is recommended for the PRE node operator’s ethereum account since the account needs to remain unlocked to execute an automated transaction when the node first starts.
Caution
Operator accounts do not need NU/KEEP/T tokens for any reason; do not keep NU/KEEP/T in the operator account.
Do not store large amounts of ETH in the operator account; only enough to pay gas fees. Nodes only need to execute a single transaction on the first start which costs ~100K gas at a gas price of 146 gwei, this would be ~0.015 ETH). There are no subsequent transactions on restarts.
Store the operator account password in a password manager
To create a new ethereum software account using the geth
CLI
(more information here):
geth account new
Never share your ethereum account password.
Do not forget your ethereum account password.
Secure your ethereum account password in a password manager.
This command will add a new account to your local keystore.
PRE Node Operator Transaction Signer¶
In conjunction with an Ethereum node provider for broadcasting to the Ethereum blockchain, the node also needs to configure a transaction signer for signing messages to be broadcasted.
This separation of a transaction signer from an Ethereum node allows pre-signed transactions to be sent to an external (possibly remote) ethereum node and is particularly desirable when interacting with an untrusted ethereum node.
Local ethereum keystore signing can be configured for the operator software
account. Local keystore signing utilizes eth-account
to sign ethereum transactions using local ethereum keystore files. By default
on Linux, the default local keystore directory path is ~/.ethereum/keystore
.
The local keystore signer can be specified during initialization using the
following URI format, --signer
CLI parameter and keystore://<PATH TO LOCAL KEYSTORE>
as the
value, eg. --signer keystore:///root/.ethereum/keystore
.
Note
The expectation is that the operator account is part of the local ethereum keystore.