mirror of https://github.com/nucypher/nucypher.git
Moe generalized guidance regarding local v. remote ethereum nodes for staking.
parent
5d15641566
commit
a0368606b0
|
@ -21,15 +21,12 @@ of security than software wallets.
|
||||||
|
|
||||||
Staking Procedure:
|
Staking Procedure:
|
||||||
|
|
||||||
1) Install ``nucypher`` on Staking machine (see :doc:`/guides/installation_guide`)
|
1) Install ``nucypher`` on Staker's machine (see :doc:`/guides/installation_guide`)
|
||||||
2) Run an ethereum node on the Staker's machine eg. geth, parity, etc. (see `Run an Ethereum node for Staking`_)
|
2) Establish ethereum account, provider, and signer (see `Staking`_)
|
||||||
3) Create staker's ethereum address (see `Run an Ethereum node for Staking`_)
|
3) Request testnet tokens by joining the `Discord server <https://discord.gg/7rmXa3S>`_ and type ``.getfunded <YOUR_STAKER_ETH_ADDRESS>`` in the #testnet-faucet channel
|
||||||
4) Request testnet tokens by joining the `Discord server <https://discord.gg/7rmXa3S>`_ and type ``.getfunded <YOUR_STAKER_ETH_ADDRESS>`` in the #testnet-faucet channel
|
4) Initialize a new StakeHolder and Stake (see `Initialize a new stakeholder`_)
|
||||||
5) Initiate a new StakeHolder and Stake (see `Initialize a new stakeholder`_)
|
5) Initialize a new stake (see `Initialize a new stake`_)
|
||||||
6) Create and fund worker's ethereum address with ETH
|
6) Bond a Worker to a Staker using the worker's ethereum address (see `Bonding a Worker`_)
|
||||||
7) Bond a Worker to a Staker using the worker's ethereum address (see `Bonding a Worker`_)
|
|
||||||
8) Optionally, modify stake settings (see `Modifying Active Stakes`_)
|
|
||||||
9) Configure and Run a Worker Node (see :ref:`ursula-config-guide`)
|
|
||||||
|
|
||||||
|
|
||||||
Staking CLI
|
Staking CLI
|
||||||
|
@ -102,8 +99,59 @@ All staking-related operations done by Staker are performed through the ``nucyph
|
||||||
Staking
|
Staking
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Using Clef as an external transaction signer
|
Staking transactions can be broadcast using either a local or remote ethereum node on
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
both software amd hardware wallets. By default transaction signing requests are forwarded to the configured provider;
|
||||||
|
This works well for locally or independently-run trusted nodes. In order to use a remote ethereum provider
|
||||||
|
(Alchemy, Infura, Public Remote Node) an external transaction signing client (like clef or geth) is needed separate from
|
||||||
|
the broadcasting node.
|
||||||
|
|
||||||
|
Below we describe the usage of both local and remote providers...
|
||||||
|
|
||||||
|
Running an Ethereum Node for Staking (Local Provider)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Here we describe the steps required to run an ethereum node for both transaction signing and broadcast.
|
||||||
|
This is the typical configuration for a locally operated trusted ethereum node.
|
||||||
|
|
||||||
|
Assuming you have ``geth`` installed, let's run a node on the Görli testnet.
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
$ geth --goerli
|
||||||
|
|
||||||
|
If you want to use your hardware wallet, just connect it to your machine. You'll see something like this in logs:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
INFO [08-30|15:50:39.153] New wallet appeared url=ledger://0001:000b:00 status="Ethereum app v1.2.7 online"
|
||||||
|
|
||||||
|
If you see something like ``New wallet appeared, failed to open`` in the logs,
|
||||||
|
you need to reconnect the hardware wallet (without turning the ``geth`` node
|
||||||
|
off).
|
||||||
|
|
||||||
|
If you don't have a hardware wallet, you can create a software one:
|
||||||
|
|
||||||
|
Whilst running the initialized node:
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
Linux:
|
||||||
|
$ geth attach /home/<username>/.ethereum/goerli/geth.ipc
|
||||||
|
> personal.newAccount();
|
||||||
|
> eth.accounts
|
||||||
|
["0x287a817426dd1ae78ea23e9918e2273b6733a43d"]
|
||||||
|
|
||||||
|
MacOS:
|
||||||
|
$ geth attach /Users/<username>/Library/Ethereum/goerli/geth.ipc
|
||||||
|
> personal.newAccount();
|
||||||
|
> eth.accounts
|
||||||
|
["0x287a817426dd1ae78ea23e9918e2273b6733a43d"]
|
||||||
|
|
||||||
|
Where ``0x287a817426dd1ae78ea23e9918e2273b6733a43d`` is your newly created
|
||||||
|
account address and ``<username>`` is your user.
|
||||||
|
|
||||||
|
Using Clef as an external transaction signer (Remote Provider)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
|
|
||||||
|
@ -177,9 +225,8 @@ by specifying the keystore directory path:
|
||||||
* intapi_version : 7.0.0
|
* intapi_version : 7.0.0
|
||||||
|
|
||||||
|
|
||||||
|
Using clef with nucypher commands
|
||||||
Using clef as a nucypher signer
|
*********************************
|
||||||
*******************************
|
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -206,47 +253,6 @@ Requests for account management, and signing will be directed at clef, with a 10
|
||||||
Be alert for user-interactive requests from the clef CLI.
|
Be alert for user-interactive requests from the clef CLI.
|
||||||
|
|
||||||
|
|
||||||
Run an Ethereum node for Staking
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Assuming you have ``geth`` installed, let's run a node on the Görli testnet.
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
$ geth --goerli
|
|
||||||
|
|
||||||
If you want to use your hardware wallet, just connect it to your machine. You'll see something like this in logs:
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
INFO [08-30|15:50:39.153] New wallet appeared url=ledger://0001:000b:00 status="Ethereum app v1.2.7 online"
|
|
||||||
|
|
||||||
If you see something like ``New wallet appeared, failed to open`` in the logs,
|
|
||||||
you need to reconnect the hardware wallet (without turning the ``geth`` node
|
|
||||||
off).
|
|
||||||
|
|
||||||
If you don't have a hardware wallet, you can create a software one:
|
|
||||||
|
|
||||||
Whilst running the initialized node:
|
|
||||||
|
|
||||||
.. code:: bash
|
|
||||||
|
|
||||||
Linux:
|
|
||||||
$ geth attach /home/<username>/.ethereum/goerli/geth.ipc
|
|
||||||
> personal.newAccount();
|
|
||||||
> eth.accounts
|
|
||||||
["0x287a817426dd1ae78ea23e9918e2273b6733a43d"]
|
|
||||||
|
|
||||||
MacOS:
|
|
||||||
$ geth attach /Users/<username>/Library/Ethereum/goerli/geth.ipc
|
|
||||||
> personal.newAccount();
|
|
||||||
> eth.accounts
|
|
||||||
["0x287a817426dd1ae78ea23e9918e2273b6733a43d"]
|
|
||||||
|
|
||||||
Where ``0x287a817426dd1ae78ea23e9918e2273b6733a43d`` is your newly created
|
|
||||||
account address and ``<username>`` is your user.
|
|
||||||
|
|
||||||
|
|
||||||
Initialize a new stakeholder
|
Initialize a new stakeholder
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -267,7 +273,7 @@ If you ran ``geth`` node as above, your ``<PROVIDER>`` is
|
||||||
|
|
||||||
|
|
||||||
Initialize a new stake
|
Initialize a new stake
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Once you have configured nucypher for staking, you can proceed with stake initiation.
|
Once you have configured nucypher for staking, you can proceed with stake initiation.
|
||||||
This operation will transfer an amount of tokens to nucypher's staking escrow contract and lock them for
|
This operation will transfer an amount of tokens to nucypher's staking escrow contract and lock them for
|
||||||
|
|
Loading…
Reference in New Issue