mirror of https://github.com/nucypher/nucypher.git
Fix rst formatting and improve working
parent
2bf5a43e2d
commit
6098f11fba
|
@ -62,12 +62,12 @@ How does it Work?
|
||||||
anyone she wants by creating a policy and uploading it to
|
anyone she wants by creating a policy and uploading it to
|
||||||
the PRE Application on the Threshold Network.
|
the PRE Application on the Threshold Network.
|
||||||
|
|
||||||
2. Alice gets information about the group of ``n`` Ursulas associated
|
2. Alice gets information about the group of ``n`` PRE nodes (Ursulas) associated
|
||||||
with the policy, which are nodes on the NuCypher network. Each :term:`Ursula`` provides their encrypting key, and Alice creates
|
with the policy, which are nodes on the Threshold network providing the PRE service. Each :term:`Ursula` provides their encrypting key, and Alice creates
|
||||||
``n`` re-encryption key shares (:term:`kFrag`), each of which is encrypted with a different Ursula's encrypting key.
|
``n`` re-encryption key shares (:term:`kFrag`), each of which is encrypted with a different Ursula's encrypting key.
|
||||||
The Ursulas in the group stand ready to re-encrypt data in exchange for payment in fees and token rewards.
|
The Ursulas in the group stand ready to re-encrypt data in exchange for payment in fees and token rewards.
|
||||||
The list of Ursulas and their associated encrypted re-encryption key shares are stored in a :term:`Treasure Map`. Alice
|
The list of Ursulas and their associated encrypted re-encryption key shares are stored in a :term:`Treasure Map`. Alice
|
||||||
subsequently encrypts the treasure map for Bob. The treasure map provides Bob the requisite information and cryptographic material to successfully request the NuCypher network to re-encrypt the data shared by Alice – such that he can decrypt it with his private key.
|
subsequently encrypts the treasure map for Bob. The treasure map provides Bob the requisite information and cryptographic material to successfully request the Threshold network to re-encrypt the data shared by Alice – such that he can decrypt it with his private key.
|
||||||
|
|
||||||
3. Each policy created by Alice has an associated encryption key, which can be used
|
3. Each policy created by Alice has an associated encryption key, which can be used
|
||||||
by any entity (Enrico) to encrypt data on Alice's behalf.
|
by any entity (Enrico) to encrypt data on Alice's behalf.
|
||||||
|
|
|
@ -19,29 +19,30 @@ There are currently no Threshold faucets but if you ask in the `Discord <https:/
|
||||||
Digital Ocean
|
Digital Ocean
|
||||||
-------------
|
-------------
|
||||||
All of our Digital Ocean configuration will be done automatically, but there are two local environment variables we need to set in order to make this work:
|
All of our Digital Ocean configuration will be done automatically, but there are two local environment variables we need to set in order to make this work:
|
||||||
- `DIGITALOCEAN_ACCESS_TOKEN` - Your Digital Ocean `access token <https://docs.digitalocean.com/reference/api/create-personal-access-token/>`_`
|
- ``DIGITALOCEAN_ACCESS_TOKEN`` - Your Digital Ocean `access token <https://docs.digitalocean.com/reference/api/create-personal-access-token/>`_`
|
||||||
- `DIGITAL_OCEAN_KEY_FINGERPRINT` - Your Digital Ocean `key fingerprint <https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/>`_.
|
- ``DIGITAL_OCEAN_KEY_FINGERPRINT`` - Your Digital Ocean `key fingerprint <https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/>`_.
|
||||||
|
|
||||||
Follow those two blog posts and either `export` the variables or add them to your `~/.bashrc` file.
|
Follow those two blog posts and either ``export`` the variables or add them to your ``~/.bashrc`` file.
|
||||||
|
|
||||||
|
|
||||||
Infura
|
Infura
|
||||||
------
|
------
|
||||||
We need a way to interact with both the Ethereum and Polygon testnet networks; Infura makes this easy for us.
|
We need a way to interact with both the Ethereum and Polygon testnet networks; Infura makes this easy for us.
|
||||||
Create a new project at Infura with product type `ETHEREUM`.
|
Create a new project at Infura with product type ``ETHEREUM``.
|
||||||
Also,add the Polygon addon to this project.
|
Also, add the Polygon add-on to this project.
|
||||||
We're going to create two more environment variables:
|
We're going to create two more environment variables:
|
||||||
|
|
||||||
- `INFURA_RINKEBY_URL`
|
- ``INFURA_RINKEBY_URL``
|
||||||
- `INFURA_MUMBAI_URL`
|
- ``INFURA_MUMBAI_URL``
|
||||||
|
|
||||||
In the **Project Settings**, change the `ENDPOINTS` to `RINKEBY` / `POLYGON_MUMBAI`
|
In the **Project Settings**, change the ``ENDPOINTS`` to ``RINKEBY`` / ``POLYGON_MUMBAI``.
|
||||||
Set the above environment variables to the corresponding `https` endpoint.
|
Set the above environment variables to the corresponding ``https`` endpoint.
|
||||||
|
|
||||||
|
|
||||||
Overall the environment variable process should look something like:
|
Overall the environment variable process should look something like:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ export INFURA_RINKEBY_URL=https://rinkeby.infura.io/v3/bd76baxxxxxxxxxxxxxxxxxxxxxf0ff0
|
$ export INFURA_RINKEBY_URL=https://rinkeby.infura.io/v3/bd76baxxxxxxxxxxxxxxxxxxxxxf0ff0
|
||||||
$ export INFURA_MUMBAI_URL=https://polygon-mumbai.infura.io/v3/bd76baxxxxxxxxxxxxxxxxxxxxxf0ff0
|
$ export INFURA_MUMBAI_URL=https://polygon-mumbai.infura.io/v3/bd76baxxxxxxxxxxxxxxxxxxxxxf0ff0
|
||||||
$ export DIGITALOCEAN_ACCESS_TOKEN=4ade7a8701xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbafd23
|
$ export DIGITALOCEAN_ACCESS_TOKEN=4ade7a8701xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbafd23
|
||||||
|
@ -53,23 +54,27 @@ Setup Remote Node
|
||||||
Locally, we will install `NuCypher Ops <https://github.com/nucypher/nucypher-ops>`_ to handle the heavy lifting of setting up a node.
|
Locally, we will install `NuCypher Ops <https://github.com/nucypher/nucypher-ops>`_ to handle the heavy lifting of setting up a node.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pip install nucypher-ops
|
$ pip install nucypher-ops
|
||||||
|
|
||||||
Now NuCypher Ops is installed we can create a droplet on Digital Ocean:
|
Now NuCypher Ops is installed we can create a droplet on Digital Ocean:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
nucypher-ops nodes create --network ibex --count 1 --cloudprovider digitalocean
|
nucypher-ops nodes create --network ibex --count 1 --cloudprovider digitalocean
|
||||||
|
|
||||||
At this point you should see the droplet in your Digital Ocean dashboard.
|
At this point you should see the droplet in your Digital Ocean dashboard.
|
||||||
Now we can deploy the PRE Node:
|
Now we can deploy the PRE Node:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
nucypher-ops ursula deploy --eth-provider $INFURA_RINKEBY_URL --nucypher-image nucypher/nucypher:experimental --payment-provider $INFURA_MUMBAI_URL --network ibex
|
nucypher-ops ursula deploy --eth-provider $INFURA_RINKEBY_URL --nucypher-image nucypher/nucypher:experimental --payment-provider $INFURA_MUMBAI_URL --network ibex
|
||||||
|
|
||||||
This should produce a large amount of logs as the ansible plays install all the requirements and setup the node.
|
This should produce a large amount of logs as the ansible plays install all the requirements and setup the node.
|
||||||
The final output should be similar to:
|
The final output should be similar to:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
some relevant info:
|
some relevant info:
|
||||||
config file: "/SOME_PATH/nucypher-ops/configs/ibex/nucypher/ibex-nucypher.json"
|
config file: "/SOME_PATH/nucypher-ops/configs/ibex/nucypher/ibex-nucypher.json"
|
||||||
inventory file: /SOME_PATH/nucypher-ops/configs/ibex-nucypher-2022-03-25.ansible_inventory.yml
|
inventory file: /SOME_PATH/nucypher-ops/configs/ibex-nucypher-2022-03-25.ansible_inventory.yml
|
||||||
|
@ -84,6 +89,7 @@ This tells us the location of several config files and helpfully prints the ip o
|
||||||
Let's `ssh` into it and look at the logs:
|
Let's `ssh` into it and look at the logs:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ ssh root@123.456.789.xxx
|
$ ssh root@123.456.789.xxx
|
||||||
root@nucypher-ibex-1:~#
|
root@nucypher-ibex-1:~#
|
||||||
root@nucypher-ibex-1:~# sudo docker logs --follow ursula
|
root@nucypher-ibex-1:~# sudo docker logs --follow ursula
|
||||||
|
@ -93,26 +99,26 @@ Let's `ssh` into it and look at the logs:
|
||||||
...
|
...
|
||||||
|
|
||||||
These lines will print repeatedly until the Operator is funded with some ETH and bonded to a staking provider.
|
These lines will print repeatedly until the Operator is funded with some ETH and bonded to a staking provider.
|
||||||
Send the address that is printed some testnet eth.
|
Send ETH to the operator address that is printed
|
||||||
|
|
||||||
|
|
||||||
Stake and Bond
|
Stake and Bond
|
||||||
--------------
|
--------------
|
||||||
Now that our operator is funded with some eth, we're ready to stake and bond.
|
Now that our operator is funded with ETH, we're ready to stake and bond.
|
||||||
At this point you need some testnet eth and 40K T in a metamask wallet.
|
At this point you need some testnet ETH and 40,000 T in a metamask wallet.
|
||||||
Again, ask in the discord if you need help with this.
|
Again, ask in the discord if you need help with this.
|
||||||
|
|
||||||
Navigate to the `Testnet Staking Dashboard <https://dn3gsazzaajb.cloudfront.net/manage/stake>`_ and connect your metamask wallet.
|
Navigate to the `Testnet Staking Dashboard <https://dn3gsazzaajb.cloudfront.net/manage/stake>`_ and connect your metamask wallet.
|
||||||
Go to the `stake` tab and click "Stake liquid T on rinkeby"
|
Go to the **stake** tab and click "Stake liquid T on rinkeby"
|
||||||
|
|
||||||
.. image:: ../.static/img/testnet_stake_dashboard.png
|
.. image:: ../.static/img/testnet_stake_dashboard.png
|
||||||
:target: ../.static/img/testnet_stake_dashboard.png
|
:target: ../.static/img/testnet_stake_dashboard.png
|
||||||
|
|
||||||
Allow the 40K T spend, and then stake 40K T.
|
Allow the 40,000 T spend, and then stake it.
|
||||||
Both transaction will require authorisation via metamask.
|
Both transactions will require authorization via metamask.
|
||||||
You can ignore the "Configure Addresses" option - they should all be automatically set to the current connected account.
|
You can ignore the **Configure Addresses** option - they should all default to the currently connected account.
|
||||||
|
|
||||||
Once those transactions are confirmed, swith to the bond tab.
|
Once those transactions are confirmed, swith to the **bond** tab.
|
||||||
Here you will paste the Operator address that is being printed by the docker logs:
|
Here you will paste the Operator address that is being printed by the docker logs:
|
||||||
|
|
||||||
.. image:: ../.static/img/testnet_bond_dashboard.png
|
.. image:: ../.static/img/testnet_bond_dashboard.png
|
||||||
|
@ -122,6 +128,7 @@ Once that transaction is confirmed, switch back to view the logs of the node.
|
||||||
You should see:
|
You should see:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
Broadcasting CONFIRMOPERATORADDRESS Transaction (0.00416485444 ETH @ 88.58 gwei)
|
Broadcasting CONFIRMOPERATORADDRESS Transaction (0.00416485444 ETH @ 88.58 gwei)
|
||||||
TXHASH 0x3329exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5ec9a6
|
TXHASH 0x3329exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5ec9a6
|
||||||
✓ Work Tracking
|
✓ Work Tracking
|
||||||
|
|
|
@ -7,7 +7,8 @@ Ibex Testnet
|
||||||
NuCypher provides a public testnet running on the Ethereum Rinkeby testnet meant for staking providers and node operators
|
NuCypher provides a public testnet running on the Ethereum Rinkeby testnet meant for staking providers and node operators
|
||||||
to learn how to set up a PRE application node, as well as for internal development purposes.
|
to learn how to set up a PRE application node, as well as for internal development purposes.
|
||||||
|
|
||||||
The Threshold contract address for the testnet is `0xc3871E2C11Ff18d809Bce74d1e4229d561aa3F09`. You can view it on (etherscan)[https://rinkeby.etherscan.io/address/0xc3871e2c11ff18d809bce74d1e4229d561aa3f09]
|
The Threshold Token (T) contract address for the testnet is ``0xc3871E2C11Ff18d809Bce74d1e4229d561aa3F09``.
|
||||||
|
You can view it on `etherscan <https://rinkeby.etherscan.io/address/0xc3871e2c11ff18d809bce74d1e4229d561aa3f09>`_.
|
||||||
|
|
||||||
.. attention::
|
.. attention::
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue