2020-01-30 21:25:04 +00:00
==========================
Frequently Asked Questions
==========================
2020-03-19 20:27:20 +00:00
Network-Related Questions
-------------------------
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
*These are questions related to how the NuCypher network works.*
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
We assume familiarity with the network characters "**Alice** ," "**Bob** ," "**Ursula** ," and "**Enrico** ."
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
**Alice** is the *data owner* . She wants to share some data with **Bob** , *the data recipient* .
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
**Enrico** *encrypts data on behalf of Alice* to produce the ciphertext (more specifically a MessageKit). In many cases (though not all!), **Enrico** is controlled by **Alice** .
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
**Ursula** serves as the "*proxy* " in this proxy re-encryption scheme and *re-encrypts the ciphertext encrypted under Alice's key to a ciphertext that will be decryptable under Bob's key* .
2020-03-24 17:25:15 +00:00
Q: How much trust do we place in Ursula, the proxy?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
Ursulas are “semi-trusted” in the sense that Alice must trust Ursula to revoke a policy once it expires or if instructed to do so (by Alice). We also must trust Ursula to be responsive and perform the re-encryption correctly so that Bob can access the data.
2020-03-24 17:25:15 +00:00
Q: Who pays Ursula? How is it done?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
Currently, Alice pays Ursula (since Ursula is doing work for Alice). Alice pays an ETH deposit into the PolicyManager contract when granting.
(However, we do imagine Bob paying in some models!)
2020-03-24 17:25:15 +00:00
Q: How do we verify that Ursula has performed the re-encryption correctly?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
Every time an Ursula produces a re-encryption, she computes a zero-knowledge proof that proves that the re-encryption she just performed is correct, without disclosing any kind of secret information. This correctness proof is publicly verifiable, so in the event someone detects incorrect re-encryptions coming from an Ursula, these faulty proofs can be sent to a smart contract that will slash the stake associated with that Ursula. However, in a normal scenario, with Ursula working correctly, there’ s no need for correctness proofs to be submitted on-chain.
2020-03-24 17:25:15 +00:00
Q: How much trust do we place in Enrico?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
2020-03-24 17:25:15 +00:00
Enrico is often (not always!) controlled by Alice. Enrico must be trusted to perform the encryption correctly and to not disclose the secret key. However, these things are out of our (cryptographic) control.
2020-03-19 20:27:20 +00:00
Additionally, Alice can decrypt (and thus read) anything encrypted by Enrico.
2020-03-24 17:25:15 +00:00
Q: Who is the Staker in this narrative? Is it Alice or Ursula?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
The Staker can be thought of as a fiduciary administrator that holds NU and collects rewards.
Typically, but not always, Ursula and the Staker are the same party. Recall that Ursula is only “valid” (i.e. will be selected for work and able to earn inflation rewards) if she’ s bonded to a Staker.
2020-03-24 17:25:15 +00:00
Q: What kind of token is NU?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
NU is an implementation of the ERC20 standard deployed onto the Ethereum blockchain.
2020-03-24 17:25:15 +00:00
Q: Why have the Staker and Ursula been split?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
We split them so that the Staker can hold NU offline in a hardware wallet.
2020-03-24 17:25:15 +00:00
Q: What currency does Alice use to pay for re-encryptions?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
2020-03-24 17:25:15 +00:00
Alice pays for re-encryptions in Ether.
2020-03-19 20:27:20 +00:00
2020-03-24 17:25:15 +00:00
Q: What currency does Ursula stake in (assuming Ursula is also the Staker)?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ursula stakes in NU, collects policy rewards in ETH, and inflation rewards in NU.
Q: What are the two streams of income Ursula can receive?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
Inflation Rewards (NU) and Policy Rewards (ETH). We will soon refer to Policy Rewards as “Fees” to avoid confusion.
2020-03-24 17:25:15 +00:00
Q: Why do you have a mix of NU and ETH?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
It’ s much more convenient for Alice to simply carry ETH. If she has to acquire NU also, it sets a much higher barrier to entry.
2020-03-24 17:25:15 +00:00
Q: How are Policy Rewards (ETH) determined?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
The reward is calculated with Confirm Activity taking into account the number of policies Ursula is enforcing.
2020-03-24 17:25:15 +00:00
Q: How many Ursulas per period collect Inflation rewards (NU)?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
Every Ursula that is “online” and “available” will receive a cut based on the size of their stake.
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: How long is a period?
~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
1 period is 24 hours. Periods begin at midnight UTC.
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: Where are Bob’ s requests handled?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-03-19 20:27:20 +00:00
Bob’ s requests are handled off-chain.
2020-03-24 17:25:15 +00:00
Q: Why are Bob’ s requests handled off-chain?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
It allows for a very small/lightweight Bob.
Setup-Related Questions
-----------------------
*These are questions related to setting up the NuCypher network on your machine.*
2020-03-24 17:25:15 +00:00
Q: What are the recommended specifications for running a nucypher node?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
Worker nodes need to run `` nucypher `` and a local ethereum node. In total, you will
require at least 4GB for RAM. Nodes also need 24/7 uptime and a static, public IPv4 address.
For `` nucypher `` specific requirements, see `System Requirements and Dependencies <https://docs.nucypher.com/en/latest/guides/installation_guide.html#system-requirements-and-dependencies/> `_ .
2020-03-24 17:25:15 +00:00
Q: What is the network name for Incentivized Testnet?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-03-19 20:27:20 +00:00
2020-03-24 17:25:15 +00:00
The network name for incentivized testnet is `` cassandra `` .
2020-03-19 20:27:20 +00:00
2020-03-24 17:25:15 +00:00
Q: Can my Staker and Worker address be the same?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-01-31 14:22:50 +00:00
Technically, yes, but it is not recommended. The accounts have different security considerations - the staker address
2020-02-03 15:06:16 +00:00
is high-value and can be a hardware wallet (with NU and ETH) that performs stake management while the worker
2020-01-31 14:22:50 +00:00
address is low-value and needs to remain unlocked while running (software wallet with ETH) since it
is used by an Ursula node.
2020-01-30 21:25:04 +00:00
2020-01-31 00:04:31 +00:00
You should stake with one address and set the worker to be a different address. Subsequently, you can bond
2020-01-30 21:25:04 +00:00
the worker address to the stake.
2020-03-24 17:25:15 +00:00
Q: Is there a guide for Windows?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
Our guide is intended for Linux - we do not officially support Windows.
2020-03-24 17:25:15 +00:00
Q: Where is my Ursula config path?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-02-03 14:33:20 +00:00
On Ubuntu/Debian - `` $HOME/.local/share/nucypher/ursula.json ``
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: What is the difference between Standard Installation and Development Installation?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
The Development Installation is only needed for developing with `` nucypher `` . You don't need to use
it unless you plan to make changes to the codebase. If you are simply staking/running a node, you
only need the Standard Installation
2020-03-24 17:25:15 +00:00
Q: How do I know that my node is set up correctly?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
This is **ONLY** a heuristic to ensure that your node is running correctly, it doesn't guarantee your node is setup correctly:
2020-01-30 21:25:04 +00:00
#. Ensure that your Ursula node is up and running (logs/terminal):
.. code ::
Starting Ursula on xxx.xxx.xxx.xxx:9151
Connecting to cassandra
Working ~ Keep Ursula Online!
2020-01-31 00:04:31 +00:00
#. Ensure that your node uses the correct IP address and can be accessed via port 9151 from an outside
2020-01-30 21:25:04 +00:00
connection eg. cell phone, other computer etc. by navigating to: `` https://<node_ip>:9151/status ``
#. Ensure that your worker is bonded with your staker - `` nucypher stake list `` and check that
2020-01-31 14:22:50 +00:00
*Worker* is set correctly i.e. not `` 0x0000 `` .
2020-01-30 21:25:04 +00:00
2020-02-19 22:02:03 +00:00
#. Run the following command and ensure that the various settings are correct::
nucypher status stakers
> --provider <your_geth_provider>
> --network cassandra
> --staking-address <your_staker_address>
2020-02-03 15:06:16 +00:00
#. Ensure that your node is listed on the `Status Monitor Page <https://status.nucypher.network> `_ (this can take a few minutes).
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: What's the best way to run Ursula in the background?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-02-21 17:00:12 +00:00
Either through :ref: `Docker <run-ursula-with-docker>`
2020-01-30 21:25:04 +00:00
or `systemd <https://docs.nucypher.com/en/latest/guides/installation_guide.html#systemd-service-installation> `_ .
2020-03-24 17:25:15 +00:00
Q: When installing on Docker, what do I input for <NETWORK NAME>?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
For the *“Come and Stake It”* incentivized testnet, the network name is `` cassandra `` .
2020-03-24 17:25:15 +00:00
Q: How can I check for currently available staking rewards?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
Run::
nucypher status stakers
> --provider <your_geth_provider>
> --network cassandra
2020-02-19 22:02:03 +00:00
> --staking-address <your_staker_address>
2020-01-30 21:25:04 +00:00
2020-02-03 15:06:16 +00:00
Note that a minimum of two periods must elapse before rewards will be delivered to your wallet. For example, say we
are in Period 5 when you start staking:
- Period 5: You deposit stake and initiate a worker
- Period 5: Your worker calls `` confirmActivity() `` in order to receive work for the next period
- Period 6: Your worker successfully performs the work
- Period 7: Your worker receives rewards for the work completed in the previous period
2020-01-30 21:25:04 +00:00
.. note ::
2020-02-21 17:00:12 +00:00
:ref: `Restaking <sub-stake-restaking>` is enabled by
2020-01-31 14:22:50 +00:00
default, so NU inflation rewards are automatically restaked for you, and will be reflected in
2020-01-30 21:25:04 +00:00
the `` Staked `` value of the above command.
2020-03-24 17:25:15 +00:00
Q: How can I observe the settings (re-staking, winding down) for my stake?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
Run::
nucypher status stakers
> --provider <your_geth_provider>
> --network cassandra
2020-02-19 22:02:03 +00:00
> --staking-address <your_staker_address>
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: Can I extend the duration of my existing stake?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-02-21 17:00:12 +00:00
Yes, via the :ref: `prolong <staking-prolong>` command.
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: How can I reuse an Ursula that was connected to the previous version of the testnet?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
#. Run `` nucypher ursula destroy `` to destroy the current configuration.
2020-02-21 17:00:12 +00:00
#. Repeat all of the steps with the new tokens in the :ref: `staking-guide` .
#. Run `` nucypher ursula init `` per the :ref: `ursula-config-guide` .
2020-01-30 21:25:04 +00:00
2020-03-24 17:25:15 +00:00
Q: What is a fleet state?
~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
A symbol which represents your node's view of the network. It is just a
graphic checksum, so a minor change in the fleet (e.g., a new node joins, a node disappears, etc.)
will produce a completely different fleet state symbol. A node can have a
different fleet state than others, which may indicate that a different number of peers are accessible from
that node's global position, network configuration, etc..
2020-03-24 17:25:15 +00:00
Q: Why do I get `NET::ERR_CERT_INVALID` when loading the Ursula node status page?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
The status page uses a self-signed certificate, but browsers don’ t like it.
You can usually proceed to the page anyway. If not, try using a different browser.
2020-03-24 17:25:15 +00:00
Q: This all seems too complex for me, can I still participate in some way?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-30 21:25:04 +00:00
2020-02-03 14:33:20 +00:00
We highly recommend delegating to an experienced staker rather than doing it yourself, if
2020-01-30 21:25:04 +00:00
you are not super familiar with running nodes for other networks.
2020-02-19 20:39:57 +00:00
2020-03-24 17:25:15 +00:00
Q: Why is my node is labelled as Idle in the status monitor?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-02-19 20:39:57 +00:00
Your node is `Idle` because it has never confirmed activity. Likely, your worker address does not have any
ETH to use for transaction gas.
2020-03-24 17:25:15 +00:00
Q: The status of my node on the status monitor seems incorrect?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-02-19 20:39:57 +00:00
Check when last your node confirmed activity by running::
nucypher status stakers
> --provider <your_geth_provider>
> --network cassandra
2020-02-19 22:02:03 +00:00
> --staking-address <your_staker_address>
2020-02-19 20:39:57 +00:00
If everything looks fine, the status monitor probably just needs some time to connect to the node again to update the
node's status.