Reorganised privacy section (#1732)

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
pull/2/head
MadelineMurray 5 years ago committed by GitHub
parent 9749167b34
commit 70e7536062
  1. 2
      docs/Deploying-Pantheon/High-Availability.md
  2. 2
      docs/Permissions/Permissioning-Overview.md
  3. 8
      docs/Privacy/Explanation/Privacy-Overview.md
  4. 8
      docs/Privacy/Explanation/Private-Transaction-Processing.md
  5. 0
      docs/Privacy/How-To/Creating-Sending-Private-Transactions.md
  6. 0
      docs/Privacy/How-To/eeajs.md
  7. 24
      docs/Privacy/Tutorials/Configuring-Privacy.md
  8. 2
      docs/Privacy/Tutorials/eeajs-Multinode-example.md
  9. 8
      docs/Reference/Pantheon-CLI-Syntax.md
  10. 6
      docs/Tutorials/Privacy-Quickstart.md
  11. 2
      docs/Using-Pantheon/Account-Management.md
  12. 18
      mkdocs.yml

@ -29,7 +29,7 @@ are sent to multiple nodes, the [`eth_getTransactionCount`](../Reference/Pantheo
results can be incorrect.
!!! note
If using [private transactions](../Privacy/Privacy-Overview.md), `eea_getTransactionCount` is used to obtain
If using [private transactions](../Privacy/Explanation/Privacy-Overview.md), `eea_getTransactionCount` is used to obtain
the account nonce and [`eea_sendRawTransaction`](../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction)
to send private transactions.

@ -13,7 +13,7 @@ account permissioning on the network.
follow the rules. A single bad actor can decide not to follow the rules. Nodes can take action
to prevent the bad actor adding to the chain but they cannot prevent the bad actor from allowing access to the chain.
Pantheon also implements [privacy](../Privacy/Privacy-Overview.md).
Pantheon also implements [privacy](../Privacy/Explanation/Privacy-Overview.md).
## Node Permissioning

@ -8,14 +8,14 @@ Other parties cannot access the transaction content, sending party, or list of p
!!! important
For production systems requiring private transactions, we recommend using a network
with a consensus mechanism supporting transaction finality. For example, [IBFT 2.0](../Consensus-Protocols/IBFT.md).
with a consensus mechanism supporting transaction finality. For example, [IBFT 2.0](../../Consensus-Protocols/IBFT.md).
## Private Transaction Manager
Pantheon uses a Private Transaction Manager to implement privacy. For example, [Orion](http://docs.orion.pegasys.tech).
Each Pantheon node that sends or receives private transactions requires an associated Orion node.
![Orion Nodes](../images/OrionNodes.png)
![Orion Nodes](../../images/OrionNodes.png)
Private transactions are passed from the Pantheon node to the associated Orion node. The Orion node
encrypts and directly distributes (that is, point to point) the private transaction to Orion nodes
@ -48,7 +48,7 @@ Private transactions have additional attributes to public Ethereum transactions:
Pantheon and Orion nodes both have public/private key pairs identifying them. The private transaction
submitted from the Pantheon node to the Orion node is signed with the Pantheon node private key. The
`privateFrom` and `privateFor` attributes specified in the RLP-encoded transaction string for
[`eea_sendRawTransaction`](../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction) are the public keys
[`eea_sendRawTransaction`](../../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction) are the public keys
of the Orion nodes sending and receiving the transaction.
!!! important
@ -64,7 +64,7 @@ The Pantheon nodes maintain the public world state for the blockchain and a priv
The private states contain data that is not shared in the globally replicated world state. Private transactions read
and write to the private world state for the privacy group, and read from the public world state.
![Privacy Groups](../images/PrivacyGroups.png)
![Privacy Groups](../../images/PrivacyGroups.png)
!!! note
The Orion nodes are not shown above for clarity only. To send private transactions,

@ -10,13 +10,13 @@ Ethereum node for later execution.
- **Privacy Marker Transaction**: Public Ethereum transaction with a payload of the transaction hash of the
private transaction. The `to` attribute of the Privacy Marker Transaction is the address of the privacy precompile contract.
The Privacy Marker Transaction is signed with the [Ethereum node private key](../Configuring-Pantheon/Node-Keys.md#node-private-key).
The Privacy Marker Transaction is signed with the [Ethereum node private key](../../Configuring-Pantheon/Node-Keys.md#node-private-key).
Private transactions are processed as illustrated and described below.
![Processing Private Transctions](../images/PrivateTransactionProcessing.png)
![Processing Private Transctions](../../images/PrivateTransactionProcessing.png)
1. A private transaction is submitted using [eea_sendRawTransaction](../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction).
1. A private transaction is submitted using [eea_sendRawTransaction](../../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction).
The signed transaction includes transaction attributes that are specific to private transactions:
* `privateFor` specifies the list of recipients
@ -57,4 +57,4 @@ the private world state, and read from the public world state.
!!! important
For production systems requiring private transactions, we recommend using a network
with a consensus mechanism supporting transaction finality. For example, [IBFT 2.0](../Consensus-Protocols/IBFT.md).
with a consensus mechanism supporting transaction finality. For example, [IBFT 2.0](../../Consensus-Protocols/IBFT.md).

@ -7,8 +7,8 @@ Configuring a network that supports private transactions requires starting an Or
Pantheon node. Pantheon command line options associate the Pantheon node with the Orion node.
This tutorial assumes you have completed setting up an IBFT 2.0 network to the point where you have
[created the genesis file](../Tutorials/Create-IBFT-Network.md#5-create-genesis-file). If not, complete
steps 1 to 5 of the [Create an IBFT 2.0](../Tutorials/Create-IBFT-Network.md) tutorial before continuing.
[created the genesis file](../../Tutorials/Create-IBFT-Network.md#5-create-genesis-file). If not, complete
steps 1 to 5 of the [Create an IBFT 2.0](../../Tutorials/Create-IBFT-Network.md) tutorial before continuing.
!!! important
To support privacy, ensure your genesis file includes at least the `constantinopleFixBlock` milestone.
@ -119,18 +119,18 @@ pantheon --data-path=data --genesis-file=..\ibftGenesis.json --rpc-http-enabled
The command line specifies privacy options:
* [`--privacy-enabled`](../Reference/Pantheon-CLI-Syntax.md#privacy-enabled) enables privacy
* [`--privacy-url`](../Reference/Pantheon-CLI-Syntax.md#privacy-url) specifies the Orion node URL (`clienturl` in `orion.conf`)
* [`--privacy-public-key-file`](../Reference/Pantheon-CLI-Syntax.md#privacy-public-key-file) specifies the file containing
* [`--privacy-enabled`](../../Reference/Pantheon-CLI-Syntax.md#privacy-enabled) enables privacy
* [`--privacy-url`](../../Reference/Pantheon-CLI-Syntax.md#privacy-url) specifies the Orion node URL (`clienturl` in `orion.conf`)
* [`--privacy-public-key-file`](../../Reference/Pantheon-CLI-Syntax.md#privacy-public-key-file) specifies the file containing
Orion node public key (created in [3. Generate Orion Keys](#3-generate-orion-keys))
* [`--rpc-http-api`](../Reference/Pantheon-CLI-Syntax.md#rpc-http-api) includes `EEA` in the list of
* [`--rpc-http-api`](../../Reference/Pantheon-CLI-Syntax.md#rpc-http-api) includes `EEA` in the list of
JSON-RPC APIs to enable privacy JSON-RPC API methods.
* [`--min-gas-price`](../Reference/Pantheon-CLI-Syntax.md#min-gas-price) set to 0 for a [free gas network](../Configuring-Pantheon/FreeGas.md).
* [`--min-gas-price`](../../Reference/Pantheon-CLI-Syntax.md#min-gas-price) set to 0 for a [free gas network](../../Configuring-Pantheon/FreeGas.md).
When the node starts, the [enode URL](../Configuring-Pantheon/Node-Keys.md#enode-url) is displayed.
When the node starts, the [enode URL](../../Configuring-Pantheon/Node-Keys.md#enode-url) is displayed.
Copy the enode URL to specify Node-1 as the bootnode in the following steps.
![Node 1 Enode URL](../images/EnodeStartup.png)
![Node 1 Enode URL](../../images/EnodeStartup.png)
### 7. Start Pantheon Node-2
@ -145,10 +145,10 @@ pantheon --data-path=data --genesis-file=..\ibftGenesis.json --bootnodes=<Node-1
```
The command line specifies the same options as for Node-1 with different ports and Orion node URL. The
[`--bootnodes`](../Reference/Pantheon-CLI-Syntax.md#bootnodes) option specifies the enode URL for Node-1.
[`--bootnodes`](../../Reference/Pantheon-CLI-Syntax.md#bootnodes) option specifies the enode URL for Node-1.
!!!note
When running Pantheon from the [Docker image](../Getting-Started/Run-Docker-Image.md), [expose ports](../Getting-Started/Run-Docker-Image.md#exposing-ports).
When running Pantheon from the [Docker image](../../Getting-Started/Run-Docker-Image.md), [expose ports](../../Getting-Started/Run-Docker-Image.md#exposing-ports).
### 8. Start Pantheon Node-3
@ -163,5 +163,5 @@ pantheon --data-path=data --genesis-file=..\ibftGenesis.json --bootnodes=<Node-1
```
The command line specifies the same options as for Node-1 with different ports and Orion node URL. The
[`--bootnodes`](../Reference/Pantheon-CLI-Syntax.md#bootnodes) option specifies the enode URL for Node-1.
[`--bootnodes`](../../Reference/Pantheon-CLI-Syntax.md#bootnodes) option specifies the enode URL for Node-1.

@ -3,7 +3,7 @@ description: web3.js-eea client library multinode example
# Using Multinode Example in web3.js-eea Client Library
To use the examples provided in EEA JS library with [your privacy network](../Configuring-Privacy.md):
To use the examples provided in EEA JS library with [your privacy network](Configuring-Privacy.md):
1. Clone the **PegaSysEng/eeajs** repository:
```bash

@ -932,7 +932,7 @@ PANTHEON_PRIVACY_ENABLED=false
privacy-enabled=false
```
Set to enable [private transactions](../Privacy/Privacy-Overview.md).
Set to enable [private transactions](../Privacy/Explanation/Privacy-Overview.md).
The default is false.
### privacy-precompiled-address
@ -941,7 +941,7 @@ The default is false.
--privacy-precompiled-address=<privacyPrecompiledAddress>
```
Address to which the [privacy pre-compiled contract](../Privacy/Private-Transaction-Processing.md) is mapped.
Address to which the [privacy pre-compiled contract](../Privacy/Explanation/Private-Transaction-Processing.md) is mapped.
The default is 126.
### privacy-public-key-file
@ -962,7 +962,7 @@ PANTHEON_PRIVACY_PUBLIC_KEY_FILE=Orion/nodeKey.pub
privacy-public-key-file="Orion/nodeKey.pub"
```
Path to the [public key of the Orion node](../Privacy/Privacy-Overview.md#pantheon-and-orion-keys).
Path to the [public key of the Orion node](../Privacy/Explanation/Privacy-Overview.md#pantheon-and-orion-keys).
### privacy-url
@ -982,7 +982,7 @@ PANTHEON_PRIVACY_URL=http://127.0.0.1:8888
privacy-url="http://127.0.0.1:8888"
```
URL on which the [Orion node](../Privacy/Configuring-Privacy.md#4-create-orion-configuration-files) is running.
URL on which the [Orion node](../Privacy/Tutorials/Configuring-Privacy.md#4-create-orion-configuration-files) is running.
### revert-reason-enabled

@ -4,12 +4,12 @@ description: Pantheon private network with privacy enabled quickstart tutorial
# Private Network with Privacy Enabled Quickstart Tutorial
The Private Network with Privacy Enabled Quickstart runs a private network of Pantheon and Orion nodes managed by Docker Compose.
It is an expanded version of the [Private Network Quickstart](../Tutorials/Private-Network-Quickstart.md).
It is an expanded version of the [Private Network Quickstart](Private-Network-Quickstart.md).
You can use the [Block Explorer](../Tutorials/Private-Network-Quickstart.md#block-explorer),
make [JSON-RPC requests](../Tutorials/Private-Network-Quickstart.md#run-json-rpc-requests), and
create [transactions using Metamask](../Tutorials/Private-Network-Quickstart.md#creating-a-transaction-using-metamask)
as described in the [Private Network Quickstart tutorial](../Tutorials/Private-Network-Quickstart.md).
as described in the [Private Network Quickstart tutorial](Private-Network-Quickstart.md).
This tutorial describes how to use the examples provided in the EEAJS library to [create and send private transactions](#send-private-transactions-and-read-values).
!!! important
@ -143,7 +143,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","para
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xe0776de9a9d4e30be0025c1308eed8bc45502cba9fe22c504a56e2fd95343e6f"],"id":1}' http://localhost:32771/jsonrpc
```
The transaction receipt for the [privacy marker transaction](Private-Transaction-Processing.md) is displayed with a `contractAddress` of `null`.
The transaction receipt for the [privacy marker transaction](../Privacy/Explanation/Private-Transaction-Processing.md) is displayed with a `contractAddress` of `null`.
```json
{

@ -13,7 +13,7 @@ In Pantheon, you can use the JSON-RPC methods:
* [`eth_getBalance`](../Reference/Pantheon-API-Methods.md#eth_getbalance) to obtain the account balance
* [`eth_sendRawTransaction`](../Reference/Pantheon-API-Methods.md#eth_sendrawtransaction) to transfer ether or create and interact with contracts (for more information, refer to [Transactions](Transactions/Transactions.md#transactions)).
* [`eea_sendRawTransaction`](../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction) to send [private transactions](../Privacy/Private-Transactions/Creating-Sending-Private-Transactions.md).
* [`eea_sendRawTransaction`](../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction) to send [private transactions](../Privacy/How-To/Creating-Sending-Private-Transactions.md).
!!! tip
[EthSigner](http://docs.ethsigner.pegasys.tech/en/latest/) implements [`eth_sendTransaction`](http://docs.ethsigner.pegasys.tech/en/latest/Using-EthSigner/Using-EthSigner/#eth_sendtransaction)

@ -65,6 +65,7 @@ nav:
- Running Pantheon from Docker Image: Getting-Started/Run-Docker-Image.md
- Tutorials:
- Private Network Quickstart: Tutorials/Private-Network-Quickstart.md
- Private Network Quickstart for Private Transactions: Tutorials/Privacy-Quickstart.md
- Private Network Quickstart On Azure: Tutorials/Azure/Azure-Private-Network-Quickstart.md
- Create a Private Network using Ethash (Pow): Tutorials/Create-Private-Network.md
- Create a Private Network using Clique (PoA): Tutorials/Create-Private-Clique-Network.md
@ -98,14 +99,15 @@ nav:
- IBFT 2.0: Consensus-Protocols/IBFT.md
- Quorum IBFT 1.0: Consensus-Protocols/QuorumIBFT.md
- Privacy:
- Overview: Privacy/Privacy-Overview.md
- Processing Private Transactions: Privacy/Private-Transaction-Processing.md
- Configuring a Privacy-Enabled Network: Privacy/Configuring-Privacy.md
- Creating and Sending Private Transactions:
- Overview: Privacy/Private-Transactions/Creating-Sending-Private-Transactions.md
- web3.js-eea Client Library: Privacy/Private-Transactions/eeajs.md
- web3.js-eea Multinode Example: Privacy/Private-Transactions/eeajs-Multinode-example.md
- Quickstart for Private Transactions: Privacy/Privacy-Quickstart.md
- Tutorials:
- Configuring a Privacy-Enabled Network: Privacy/Tutorials/Configuring-Privacy.md
- Using web3.js-eea Multinode Example: Privacy/Tutorials/eeajs-Multinode-example.md
- How To:
- Create and Send Private Transactions: Privacy/How-To/Creating-Sending-Private-Transactions.md
- Use the web3.js-eea Client Library: Privacy/How-To/eeajs.md
- Explanation:
- Privacy Overview: Privacy/Explanation/Privacy-Overview.md
- Processing Private Transactions: Privacy/Explanation/Private-Transaction-Processing.md
- Permissions:
- Overview: Permissions/Permissioning-Overview.md
- Local Permissions: Permissions/Local-Permissioning.md

Loading…
Cancel
Save