mirror of
https://github.com/vacp2p/linea-besu.git
synced 2026-01-08 20:47:59 -05:00
Added content on Pantheon-extended privacy (#1771)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
This commit is contained in:
14
docs/Privacy/How-To/Access-Private-Transactions.md
Normal file
14
docs/Privacy/How-To/Access-Private-Transactions.md
Normal file
@@ -0,0 +1,14 @@
|
||||
description: Methods for accessing and managing private transactions and privacy groups
|
||||
<!--- END of page meta data -->
|
||||
|
||||
# Accessing Private and Privacy Marker Transactions
|
||||
|
||||
A private transaction creates a [Privacy Marker Transaction](../Explanation/Private-Transaction-Processing.md) in addition to the private transaction itself.
|
||||
Use [`eth_getTransactionReceipt`](../../Reference/Pantheon-API-Methods.md#eth_gettransactionreceipt) to
|
||||
get the transaction receipt for the Privacy Maker Transaction and [`eea_getTransactionReceipt`](../../Reference/Pantheon-API-Methods.md#eea_gettransactionreceipt)
|
||||
to get the transaction receipt for the private transaction.
|
||||
|
||||
Use [`eth_getTransactionByHash`](../../Reference/Pantheon-API-Methods.md#eth_gettransactionbyhash) to
|
||||
get the Privacy Marker Transaction with the transaction hash returned when submitting the private transaction.
|
||||
Use [`priv_getPrivateTransaction`](../../Reference/Pantheon-API-Methods.md#priv_getprivatetransaction)
|
||||
to get the private transaction with the `input` value from the Privacy Marker Transaction.
|
||||
15
docs/Privacy/How-To/Create-Manage-Privacy-Groups.md
Normal file
15
docs/Privacy/How-To/Create-Manage-Privacy-Groups.md
Normal file
@@ -0,0 +1,15 @@
|
||||
description: Creating and manage privacy groups
|
||||
<!--- END of page meta data -->
|
||||
|
||||
Pantheon-extended privacy provides JSON-RPC API methods for creating and managing privacy groups:
|
||||
|
||||
* [`priv_createPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_createprivacygroup)
|
||||
* [`priv_findPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_findprivacygroup)
|
||||
* [`priv_deletePrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_deleteprivacygroup)
|
||||
|
||||
!!! tip
|
||||
[EEA-compliant privacy groups](../Explanation/Privacy-Groups.md) can be found and deleted using
|
||||
[`priv_findPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_findprivacygroup)
|
||||
and [`priv_deletePrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_deleteprivacygroup) but
|
||||
future functionality to update group membership will only be available for privacy groups
|
||||
created using [`priv_createPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_createprivacygroup).
|
||||
@@ -12,25 +12,13 @@ Create and send private transactions using:
|
||||
!!! note
|
||||
Private transactions either deploy contracts or call contract functions.
|
||||
Ether transfer transactions cannot be private.
|
||||
|
||||
## Methods for Private Transactions
|
||||
|
||||
A private transaction creates a [Privacy Marker Transaction](../Explanation/Private-Transaction-Processing.md) in addition to the private transaction itself.
|
||||
Use [`eth_getTransactionReceipt`](../../Reference/Pantheon-API-Methods.md#eth_gettransactionreceipt) to
|
||||
get the transaction receipt for the Privacy Maker Transaction and [`eea_getTransactionReceipt`](../../Reference/Pantheon-API-Methods.md#eea_gettransactionreceipt)
|
||||
to get the transaction receipt for the private transaction.
|
||||
|
||||
Use [`eth_getTransactionByHash`](../../Reference/Pantheon-API-Methods.md#eth_gettransactionbyhash) to
|
||||
get the Privacy Marker Transaction with the transaction hash returned when submitting the private transaction.
|
||||
Use [`priv_getPrivateTransaction`](../../Reference/Pantheon-API-Methods.md#priv_getprivatetransaction)
|
||||
to get the private transaction with the `input` value from the Privacy Marker Transaction.
|
||||
|
||||
Separate private states are maintained for each [privacy group](../Explanation/Privacy-Overview.md#privacy-groups) so
|
||||
Separate private states are maintained for each [privacy group](../Explanation/Privacy-Groups.md) so
|
||||
the account nonce for an account is specific to the privacy group. That is, the nonce for account A for
|
||||
privacy group ABC is different to the account nonce for account A for privacy group AB. Use
|
||||
[`priv_getTransactionCount`](../../Reference/Pantheon-API-Methods.md#priv_getTransactionCount) to get
|
||||
[`priv_getTransactionCount`](../../Reference/Pantheon-API-Methods.md#priv_gettransactioncount) to get
|
||||
the account nonce for an account for the specified privacy group.
|
||||
|
||||
!!! note
|
||||
If sending a large number of private transactions, you may need to calculate the nonce for the account
|
||||
and privacy group outside the client.
|
||||
If sending more than 1 transaction to be mined in the same block (that is, you're not waiting for
|
||||
the transaction receipt), you must calculate the private transaction nonce outside Pantheon.
|
||||
|
||||
49
docs/Privacy/How-To/Pantheon-Privacy.md
Normal file
49
docs/Privacy/How-To/Pantheon-Privacy.md
Normal file
@@ -0,0 +1,49 @@
|
||||
description: Pantheon-extended privacy
|
||||
<!--- END of page meta data -->
|
||||
|
||||
# Using Pantheon-extended Privacy
|
||||
|
||||
Pantheon provides an extended implementation of privacy by allowing a [privacy
|
||||
group to be created for a set of participants](../Explanation/Privacy-Groups.md). The privacy group ID
|
||||
must be specified when sending private transactions.
|
||||
|
||||
Using the [`--rpc-http-api`](../../Reference/Pantheon-CLI-Syntax.md#rpc-http-api) or [`--rpc-ws-api`](../../Reference/Pantheon-CLI-Syntax.md#rpc-ws-api)
|
||||
command line options enable:
|
||||
|
||||
* [`EEA` API methods](../../Reference/Pantheon-API-Methods.md#eea-methods)
|
||||
* [`PRIV` API methods](../../Reference/Pantheon-API-Methods.md#priv-methods)
|
||||
|
||||
Use [`priv_createPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_createprivacygroup) to
|
||||
create the privacy group containing the recipients of the private transaction.
|
||||
|
||||
Specify `privacyGroupId` when creating the signed transaction passed as an input parameter to [`eea_sendRawTransaction`](../../Reference/Pantheon-API-Methods.md#eea_sendrawtransaction)
|
||||
to create an EEA-compliant private transaction.
|
||||
|
||||
!!! note
|
||||
Support for specifying `privacyGroupId` when using `eea_sendTransaction` with EthSigner will be available in
|
||||
a future EthSigner release.
|
||||
|
||||
## Privacy Group Type
|
||||
|
||||
Privacy groups created using [`priv_createPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_createprivacygroup)
|
||||
are identified as type `PANTHEON` when returned by [`priv_findPrivacyGroup`](../../Reference/Pantheon-API-Methods.md#priv_findprivacygroup).
|
||||
|
||||
!!! example
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": [
|
||||
{
|
||||
"privacyGroupId": "GpK3ErNO0xF27T0sevgkJ3+4qk9Z+E3HtXYxcKIBKX8=",
|
||||
"name": "Group B",
|
||||
"description": "Description of Group B",
|
||||
"type": "PANTHEON",
|
||||
"members": [
|
||||
"negmDcN2P4ODpqn/6WkJ02zT/0w0bjhGpkZ8UP6vARk=",
|
||||
"g59BmTeJIn7HIcnq8VQWgyh/pDbvbt2eyP0Ii60aDDw="
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -4028,7 +4028,10 @@ Privacy groups containing only the specified members.
|
||||
```
|
||||
|
||||
```json tab="JSON result"
|
||||
"result": [
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": [
|
||||
{
|
||||
"privacyGroupId": "GpK3ErNO0xF27T0sevgkJ3+4qk9Z+E3HtXYxcKIBKX8=",
|
||||
"name": "Group B",
|
||||
|
||||
Reference in New Issue
Block a user