mirror of
https://github.com/vacp2p/linea-besu.git
synced 2026-01-09 21:17:54 -05:00
Reorganised privacy section (#1732)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
This commit is contained in:
@@ -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.
|
||||
|
||||

|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||

|
||||
|
||||
!!! 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.
|
||||
|
||||

|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||

|
||||
|
||||
### 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)
|
||||
|
||||
18
mkdocs.yml
18
mkdocs.yml
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user