From 4d2066d82387820fd151e3d42c43fa034fb543b4 Mon Sep 17 00:00:00 2001 From: "anton.denishchenko" Date: Fri, 19 Feb 2021 02:40:22 +0300 Subject: [PATCH 1/6] Add docs for freeze transactions Signed-off-by: anton.denishchenko --- docs/source/requests-new.md | 123 ++++++++++++++++++++++++++++++++++++ docs/source/requests.md | 117 ++++++++++++++++++++++++++++++++++ docs/source/transactions.md | 38 +++++++++++ 3 files changed, 278 insertions(+) diff --git a/docs/source/requests-new.md b/docs/source/requests-new.md index e69ff800f..65303f601 100644 --- a/docs/source/requests-new.md +++ b/docs/source/requests-new.md @@ -16,6 +16,7 @@ * [NODE](#node) * [POOL_UPGRADE](#pool_upgrade) * [POOL_CONFIG](#pool_config) + * [LEDGERS_FREEZE](#ledgers_freeze) * [Read Requests](#read-requests) @@ -24,6 +25,7 @@ * [GET_SCHEMA](#get_schema) * [GET_CLAIM_DEF](#get_claim_def) * [GET_TXN](#get_txn) + * [GET_FROZEN_LEDGERS](#get_frozen_ledgers) This doc is about supported client"s Request (both write and read ones). If you are interested in transactions and their representation on the Ledger (that is internal one), @@ -1386,6 +1388,62 @@ Command to change Pool's configuration } ``` +### LEDGERS_FREEZE + +Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). + +*Request Example*: +``` +{ + "operation": { + "type": "9", + "ledgers_ids": [1,2,3,4] + }, + "identifier": "21BPzYYrFzbuECcBV3M1FH", + "reqId": 1514304094738044, + "protocolVersion": 2, + "signature": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj", +} +``` + +*Reply Example*: +``` +{ + "op": "REPLY", + "result": { + "ver":1, + "txn": { + "type":9, + "protocolVersion":2, + "ver": 1, + + "data": {}, + + "metadata": { + "reqId":1514304094738044, + "from":"21BPzYYrFzbuECcBV3M1FH", + "digest":"6cee82226c6e276c983f46d03e3b3d10436d90b67bf33dc67ce9901b44dbc97c", + "payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685", + }, + }, + "txnMetadata": { + "txnTime":1513945121, + "seqNo": 10, + }, + "reqSignature": { + "type": "ED25519", + "values": [{ + "from": "21BPzYYrFzbuECcBV3M1FH", + "value": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj" + }] + }, + + "rootHash": "DvpkQ2aADvQawmrzvTTjF9eKQxjDkrCbQDszMRbgJ6zV", + "auditPath": ["6GdvJfqTekMvzwi9wuEpfqMLzuN1T91kvgRBQLUzjkt6"], + } +} +``` + ## Read Requests ### GET_NYM @@ -1898,3 +1956,68 @@ A generic request to get a transaction from Ledger by its sequence number. } ``` + +### GET_FROZEN_LEDGERS + +Get whole list of frozen ledgers. Reply has follow format data: `: {ledger: , state: , seq_no: }`. + +*Request Example*: +``` +{ + "type": 10, + "ver": 1, + "protocolVersion": 1, + + "data": { + "id":"L5AD5g65TDQr1PPHHRoiGf:Degree:1.0", + "did": "AH4RRiPR78DUrCWatnCW2w", + }, + "metadata": { + "reqId": 1514215425836444, + "from": "DDAD5g65TDQr1PPHHRoiGf", + }, +} +``` + +*Reply Example*: +``` +{ + "op": "REPLY", + "result": { + "type": "10", + "identifier": "L5AD5g65TDQr1PPHHRoiGf", + "reqId": 1514308188474704, + + "version": "1.0", + + "seqNo": 10, + "txnTime": 1514214795, + + "data": { + 1: { + ledger: "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", + state: "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", + seq_no: 10 + } + }, + + "state_proof": { + "root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", + "proof_nodes": "+QHl+FGAgICg0he/hjc9t/tPFzmCrb2T+nHnN0cRwqPKqZEc3pw2iCaAoAsA80p3oFwfl4dDaKkNI8z8weRsSaS9Y8n3HoardRzxgICAgICAgICAgID4naAgwxDOAEoIq+wUHr5h9jjSAIPDjS7SEG1NvWJbToxVQbh6+Hi4dnsiaWRlbnRpZmllciI6Ikw1QUQ1ZzY1VERRcjFQUEhIUm9pR2YiLCJyb2xlIjpudWxsLCJzZXFObyI6MTAsInR4blRpbWUiOjE1MTQyMTQ3OTUsInZlcmtleSI6In42dWV3Um03MmRXN1pUWFdObUFkUjFtIn348YCAgKDKj6ZIi+Ob9HXBy/CULIerYmmnnK2A6hN1u4ofU2eihKBna5MOCHiaObMfghjsZ8KBSbC6EpTFruD02fuGKlF1q4CAgICgBk8Cpc14mIr78WguSeT7+/rLT8qykKxzI4IO5ZMQwSmAoLsEwI+BkQFBiPsN8F610IjAg3+MVMbBjzugJKDo4NhYoFJ0ln1wq3FTWO0iw1zoUcO3FPjSh5ytvf1jvSxxcmJxoF0Hy14HfsVll8qa9aQ8T740lPFLR431oSefGorqgM5ioK1TJOr6JuvtBNByVMRv+rjhklCp6nkleiyLIq8vZYRcgIA=", + "multi_signature": { + "value": { + "timestamp": 1514308168, + "ledger_id": 2, + "txn_root_hash": "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", + "pool_state_root_hash": "9fzzkqU25JbgxycNYwUqKmM3LT8KsvUFkSSowD4pHpoK", + "state_root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH" + }, + "signature": "REbtR8NvQy3dDRZLoTtzjHNx9ar65ttzk4jMqikwQiL1sPcHK4JAqrqVmhRLtw6Ed3iKuP4v8tgjA2BEvoyLTX6vB6vN4CqtFLqJaPJqMNZvr9tA5Lm6ZHBeEsH1QQLBYnWSAtXt658PotLUEp38sNxRh21t1zavbYcyV8AmxuVTg3", + "participants": ["Delta", "Gamma", "Alpha"] + } + }, + + + } +} +``` diff --git a/docs/source/requests.md b/docs/source/requests.md index 5e0db7d78..28c018959 100644 --- a/docs/source/requests.md +++ b/docs/source/requests.md @@ -24,6 +24,7 @@ * [TRANSACTION_AUTHOR_AGREEMENT](#transaction_author_agreement) * [TRANSACTION_AUTHOR_AGREEMENT_AML](#transaction_author_agreement_AML) * [TRANSACTION_AUTHOR_AGREEMENT_DISABLE](#transaction_author_agreement_disable) + * [LEDGERS_FREEZE](#ledgers_freeze) * [Read Requests](#read-requests) @@ -43,6 +44,7 @@ * [GET_CONTEXT](#get_context) * [GET_RICH_SCHEMA](#get_rich_schema) * [GET_TXN](#get_txn) + * [GET_FROZEN_LEDGERS](#get_frozen_ledgers) * [Action Requests](#action-requests) @@ -2953,7 +2955,61 @@ A new Agreement needs to be sent instead. } ``` +### LEDGERS_FREEZE +Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). + +*Request Example*: +``` +{ + "operation": { + "type": "9", + "ledgers_ids": [1,2,3,4] + }, + "identifier": "21BPzYYrFzbuECcBV3M1FH", + "reqId": 1514304094738044, + "protocolVersion": 2, + "signature": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj", +} +``` + +*Reply Example*: +``` +{ + "op": "REPLY", + "result": { + "ver":1, + "txn": { + "type":9, + "protocolVersion":2, + "ver": 1, + + "data": {}, + + "metadata": { + "reqId":1514304094738044, + "from":"21BPzYYrFzbuECcBV3M1FH", + "digest":"6cee82226c6e276c983f46d03e3b3d10436d90b67bf33dc67ce9901b44dbc97c", + "payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685", + }, + }, + "txnMetadata": { + "txnTime":1513945121, + "seqNo": 10, + }, + "reqSignature": { + "type": "ED25519", + "values": [{ + "from": "21BPzYYrFzbuECcBV3M1FH", + "value": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj" + }] + }, + + "rootHash": "DvpkQ2aADvQawmrzvTTjF9eKQxjDkrCbQDszMRbgJ6zV", + "auditPath": ["6GdvJfqTekMvzwi9wuEpfqMLzuN1T91kvgRBQLUzjkt6"], + } +} +``` ## Read Requests @@ -4184,6 +4240,67 @@ A generic request to get a transaction from Ledger by its sequence number. } ``` +### GET_FROZEN_LEDGERS + +Get whole list of frozen ledgers. Reply has follow format data: `: {ledger: , state: , seq_no: }`. + +*Request Example*: +``` +{ + "operation": { + "type": "10" + "id": "did:sov:GGAD5g65TDQr1PPHHRoiGf", + }, + + "identifier": "L5AD5g65TDQr1PPHHRoiGf", + "reqId": 1514308188474704, + "protocolVersion": 2 +} +``` + +*Reply Example*: +``` +{ + "op": "REPLY", + "result": { + "type": "10", + "identifier": "L5AD5g65TDQr1PPHHRoiGf", + "reqId": 1514308188474704, + + "version": "1.0", + + "seqNo": 10, + "txnTime": 1514214795, + + "data": { + 1: { + ledger: "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", + state: "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", + seq_no: 10 + } + }, + + "state_proof": { + "root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", + "proof_nodes": "+QHl+FGAgICg0he/hjc9t/tPFzmCrb2T+nHnN0cRwqPKqZEc3pw2iCaAoAsA80p3oFwfl4dDaKkNI8z8weRsSaS9Y8n3HoardRzxgICAgICAgICAgID4naAgwxDOAEoIq+wUHr5h9jjSAIPDjS7SEG1NvWJbToxVQbh6+Hi4dnsiaWRlbnRpZmllciI6Ikw1QUQ1ZzY1VERRcjFQUEhIUm9pR2YiLCJyb2xlIjpudWxsLCJzZXFObyI6MTAsInR4blRpbWUiOjE1MTQyMTQ3OTUsInZlcmtleSI6In42dWV3Um03MmRXN1pUWFdObUFkUjFtIn348YCAgKDKj6ZIi+Ob9HXBy/CULIerYmmnnK2A6hN1u4ofU2eihKBna5MOCHiaObMfghjsZ8KBSbC6EpTFruD02fuGKlF1q4CAgICgBk8Cpc14mIr78WguSeT7+/rLT8qykKxzI4IO5ZMQwSmAoLsEwI+BkQFBiPsN8F610IjAg3+MVMbBjzugJKDo4NhYoFJ0ln1wq3FTWO0iw1zoUcO3FPjSh5ytvf1jvSxxcmJxoF0Hy14HfsVll8qa9aQ8T740lPFLR431oSefGorqgM5ioK1TJOr6JuvtBNByVMRv+rjhklCp6nkleiyLIq8vZYRcgIA=", + "multi_signature": { + "value": { + "timestamp": 1514308168, + "ledger_id": 2, + "txn_root_hash": "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", + "pool_state_root_hash": "9fzzkqU25JbgxycNYwUqKmM3LT8KsvUFkSSowD4pHpoK", + "state_root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH" + }, + "signature": "REbtR8NvQy3dDRZLoTtzjHNx9ar65ttzk4jMqikwQiL1sPcHK4JAqrqVmhRLtw6Ed3iKuP4v8tgjA2BEvoyLTX6vB6vN4CqtFLqJaPJqMNZvr9tA5Lm6ZHBeEsH1QQLBYnWSAtXt658PotLUEp38sNxRh21t1zavbYcyV8AmxuVTg3", + "participants": ["Delta", "Gamma", "Alpha"] + } + }, + + + } +} +``` + ## Action Requests ### POOL_RESTART diff --git a/docs/source/transactions.md b/docs/source/transactions.md index 9b205f338..3ba85e175 100644 --- a/docs/source/transactions.md +++ b/docs/source/transactions.md @@ -30,6 +30,7 @@ * [TRANSACTION_AUTHOR_AGREEMENT](#transaction_author_agreement) * [TRANSACTION_AUTHOR_AGREEMENT_AML](#transaction_author_agreement_AML) * [TRANSACTION_AUTHOR_AGREEMENT_DISABLE](#transaction_author_agreement_disable) + * [LEDGERS_FREEZE](#ledgers_freeze) ## General Information @@ -2093,3 +2094,40 @@ A new Agreement needs to be sent instead. } ``` +#### LEDGERS_FREEZE + +Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). + +**Example:** +``` +{ + "ver": 1, + "txn": { + "type":9, + "protocolVersion":2, + + "data": { + "ver": 1, + "ledgers_ids": [1,2,3,4], + }, + + "metadata": { + "reqId":1513945121191691, + "from":"L5AD5g65TDQr1PPHHRoiGf", + "digest":"6cee82226c6e276c983f46d03e3b3d10436d90b67bf33dc67ce9901b44dbc97c", + "payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685", + }, + }, + "txnMetadata": { + "txnTime":1577836799, + "seqNo": 10, + }, + "reqSignature": { + "type": "ED25519", + "values": [{ + "from": "L5AD5g65TDQr1PPHHRoiGf", + "value": "4X3skpoEK2DRgZxQ9PwuEvCJpL8JHdQ8X4HDDFyztgqE15DM2ZnkvrAh9bQY16egVinZTzwHqznmnkaFM4jjyDgd" + }] + } +} +``` From 3da39bbe0b51e6c0b31b4b8687a9caac42bac32f Mon Sep 17 00:00:00 2001 From: "anton.denishchenko" Date: Tue, 23 Feb 2021 02:03:34 +0300 Subject: [PATCH 2/6] Update docs after review Signed-off-by: anton.denishchenko --- docs/source/auth_rules.md | 14 +++ docs/source/requests-new.md | 157 ++++++++++++++++------------------ docs/source/requests.md | 166 +++++++++++++++++++----------------- 3 files changed, 175 insertions(+), 162 deletions(-) diff --git a/docs/source/auth_rules.md b/docs/source/auth_rules.md index 19444819d..3545b9700 100644 --- a/docs/source/auth_rules.md +++ b/docs/source/auth_rules.md @@ -537,6 +537,15 @@ 1 TRUSTEE OR 1 STEWARD OR 1 NETWORK_MONITOR Getting validator_info from pool + + LEDGERS_FREEZE + EDIT + * + * + * + 3 TRUSTEE + Freeze specific ledgers + @@ -729,6 +738,11 @@ N/A + + LEDGERS_FREEZE + EDIT + N/A + diff --git a/docs/source/requests-new.md b/docs/source/requests-new.md index 65303f601..1364a2c4a 100644 --- a/docs/source/requests-new.md +++ b/docs/source/requests-new.md @@ -1400,7 +1400,7 @@ Disable specific legders. System completely ignore frozen ledgers. After freeze "ledgers_ids": [1,2,3,4] }, "identifier": "21BPzYYrFzbuECcBV3M1FH", - "reqId": 1514304094738044, + "reqId": 311348486, "protocolVersion": 2, "signature": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj", } @@ -1409,38 +1409,40 @@ Disable specific legders. System completely ignore frozen ledgers. After freeze *Reply Example*: ``` { - "op": "REPLY", - "result": { - "ver":1, - "txn": { - "type":9, - "protocolVersion":2, - "ver": 1, - - "data": {}, - - "metadata": { - "reqId":1514304094738044, - "from":"21BPzYYrFzbuECcBV3M1FH", - "digest":"6cee82226c6e276c983f46d03e3b3d10436d90b67bf33dc67ce9901b44dbc97c", - "payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685", - }, - }, - "txnMetadata": { - "txnTime":1513945121, - "seqNo": 10, - }, - "reqSignature": { - "type": "ED25519", - "values": [{ - "from": "21BPzYYrFzbuECcBV3M1FH", - "value": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj" - }] - }, - - "rootHash": "DvpkQ2aADvQawmrzvTTjF9eKQxjDkrCbQDszMRbgJ6zV", - "auditPath": ["6GdvJfqTekMvzwi9wuEpfqMLzuN1T91kvgRBQLUzjkt6"], - } + "op":"REPLY", + "result":{ + "txn":{ + "type":"9", + "data":{ + "ledgers_ids":[1,2,3,4] + }, + "protocolVersion":2, + "metadata":{ + "reqId":311348486, + "payloadDigest":"09a3ccedf806e224beb56b547e967b442f3ee3181d5c87623f063742df7a692e", + "from":"M9BJDuS24bqbJNvBRsoGg3", + "digest":"dfdc6c5b77181953b4e32f975b0c5e64b25dc3e3061716aca1baae4cbe0ce494" + } + }, + "ver":"1", + "auditPath":[ + "DDwrSsKwpFkfGVqp7AxzRMusUuT9D5RmidCmnr8phTWD" + ], + "txnMetadata":{ + "txnTime":1613735420, + "seqNo":3 + }, + "reqSignature":{ + "type":"ED25519", + "values":[ + { + "value":"bSMfwJraLXzBAmdZKQUC1XfoVb3YWygc6UCQAmrTNKDr9beXta7MFyNZnQtbmNoRurjicSHLo3sW7qv7ZTWcZJa", + "from":"M9BJDuS24bqbJNvBRsoGg3" + } + ] + }, + "rootHash":"E27ssC3LK8azpgxxtBY4ETLXvDLGtfmeSjngc6jrV1Qt" + } } ``` @@ -1964,60 +1966,51 @@ Get whole list of frozen ledgers. Reply has follow format data: `: {l *Request Example*: ``` { - "type": 10, - "ver": 1, - "protocolVersion": 1, - - "data": { - "id":"L5AD5g65TDQr1PPHHRoiGf:Degree:1.0", - "did": "AH4RRiPR78DUrCWatnCW2w", - }, - "metadata": { - "reqId": 1514215425836444, - "from": "DDAD5g65TDQr1PPHHRoiGf", - }, + "operation":{ + "type":"10" + }, + "reqId":783857061, + "protocolVersion":2, + "identifier":"M9BJDuS24bqbJNvBRsoGg3" } ``` *Reply Example*: ``` { - "op": "REPLY", - "result": { - "type": "10", - "identifier": "L5AD5g65TDQr1PPHHRoiGf", - "reqId": 1514308188474704, - - "version": "1.0", - - "seqNo": 10, - "txnTime": 1514214795, - - "data": { - 1: { - ledger: "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", - state: "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", - seq_no: 10 - } - }, - - "state_proof": { - "root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", - "proof_nodes": "+QHl+FGAgICg0he/hjc9t/tPFzmCrb2T+nHnN0cRwqPKqZEc3pw2iCaAoAsA80p3oFwfl4dDaKkNI8z8weRsSaS9Y8n3HoardRzxgICAgICAgICAgID4naAgwxDOAEoIq+wUHr5h9jjSAIPDjS7SEG1NvWJbToxVQbh6+Hi4dnsiaWRlbnRpZmllciI6Ikw1QUQ1ZzY1VERRcjFQUEhIUm9pR2YiLCJyb2xlIjpudWxsLCJzZXFObyI6MTAsInR4blRpbWUiOjE1MTQyMTQ3OTUsInZlcmtleSI6In42dWV3Um03MmRXN1pUWFdObUFkUjFtIn348YCAgKDKj6ZIi+Ob9HXBy/CULIerYmmnnK2A6hN1u4ofU2eihKBna5MOCHiaObMfghjsZ8KBSbC6EpTFruD02fuGKlF1q4CAgICgBk8Cpc14mIr78WguSeT7+/rLT8qykKxzI4IO5ZMQwSmAoLsEwI+BkQFBiPsN8F610IjAg3+MVMbBjzugJKDo4NhYoFJ0ln1wq3FTWO0iw1zoUcO3FPjSh5ytvf1jvSxxcmJxoF0Hy14HfsVll8qa9aQ8T740lPFLR431oSefGorqgM5ioK1TJOr6JuvtBNByVMRv+rjhklCp6nkleiyLIq8vZYRcgIA=", - "multi_signature": { - "value": { - "timestamp": 1514308168, - "ledger_id": 2, - "txn_root_hash": "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", - "pool_state_root_hash": "9fzzkqU25JbgxycNYwUqKmM3LT8KsvUFkSSowD4pHpoK", - "state_root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH" - }, - "signature": "REbtR8NvQy3dDRZLoTtzjHNx9ar65ttzk4jMqikwQiL1sPcHK4JAqrqVmhRLtw6Ed3iKuP4v8tgjA2BEvoyLTX6vB6vN4CqtFLqJaPJqMNZvr9tA5Lm6ZHBeEsH1QQLBYnWSAtXt658PotLUEp38sNxRh21t1zavbYcyV8AmxuVTg3", - "participants": ["Delta", "Gamma", "Alpha"] - } - }, - - - } + "result":{ + "seqNo":3, + "type":"10", + "state_proof":{ + "root_hash":"HUv35b31eqncHZ1R8xMQW9pJnCBqAaUVrfCA8AeTtx6u", + "multi_signature":{ + "value":{ + "pool_state_root_hash":"4bCEk76QsB6p3yCiDntMedpeZmiQtdH9NRpcFyvaLHhc", + "state_root_hash":"HUv35b31eqncHZ1R8xMQW9pJnCBqAaUVrfCA8AeTtx6u", + "timestamp":1613736202, + "ledger_id":2, + "txn_root_hash":"BY6PV9SrV1dgQgxy2kpeTLESQfazTYoLdLZfjzVmcLeV" + }, + "signature":"R8FRHVg51YiY5nS8Hh8iXNa1ZPKjrQMmurnrGek2A7QMKq79Pws4DLhgcVgf66PSJGEPjmyASYxFziEnubY1RFHQiE7ZToLZqW4oJt11hhL1XgXwrdswyqTQjuyxx5nzjyE4AzyTvs3BywD54s3w3mUhLG3QWwBp1uTX8agLEKZDkK", + "participants":[ + "Gamma", + "Delta", + "Beta" + ] + }, + "proof_nodes":"+L74vJEgNDpGUk9aRU5fTEVER0VSU7io+Ka4pHsibHNuIjozLCJsdXQiOjE2MTM3MzYyMDIsInZhbCI6eyI5MDkiOnsibGVkZ2VyIjoiR0tvdDVoQnNkODFrTXVwTkNYSGFxYmh2M2h1RWJ4QUZNTG5wY1gyaG5pd24iLCJzZXFfbm8iOjAsInN0YXRlIjoiRGZOTG1INERBSFRLdjYzWVBGSnp1UmRlRXRWd0Y1UnRWbnZLWUhkOGlMRUEifX19" + }, + "txnTime":1613736202, + "reqId":666493618, + "data":{ + "909":{ + "seq_no":0, + "state":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA", + "ledger":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn" + } + }, + "identifier":"M9BJDuS24bqbJNvBRsoGg3" + }, + "op":"REPLY" } ``` diff --git a/docs/source/requests.md b/docs/source/requests.md index 28c018959..f9b9907f3 100644 --- a/docs/source/requests.md +++ b/docs/source/requests.md @@ -2957,7 +2957,9 @@ A new Agreement needs to be sent instead. ### LEDGERS_FREEZE -Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (base ledgers POOL, CONFIG, AUDIT and DOMAIN can't be frozen). System completely ignore frozen ledgers. Frozen ledgers can't be unfreeze. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). + +The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (only trustee can freeze ledgers). *Request Example*: ``` @@ -2967,7 +2969,7 @@ Disable specific legders. System completely ignore frozen ledgers. After freeze "ledgers_ids": [1,2,3,4] }, "identifier": "21BPzYYrFzbuECcBV3M1FH", - "reqId": 1514304094738044, + "reqId": 311348486, "protocolVersion": 2, "signature": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj", } @@ -2976,38 +2978,39 @@ Disable specific legders. System completely ignore frozen ledgers. After freeze *Reply Example*: ``` { - "op": "REPLY", - "result": { - "ver":1, - "txn": { - "type":9, - "protocolVersion":2, - "ver": 1, - - "data": {}, - - "metadata": { - "reqId":1514304094738044, - "from":"21BPzYYrFzbuECcBV3M1FH", - "digest":"6cee82226c6e276c983f46d03e3b3d10436d90b67bf33dc67ce9901b44dbc97c", - "payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685", - }, - }, - "txnMetadata": { - "txnTime":1513945121, - "seqNo": 10, - }, - "reqSignature": { - "type": "ED25519", - "values": [{ - "from": "21BPzYYrFzbuECcBV3M1FH", - "value": "3YVzDtSxxnowVwAXZmxCG2fz1A38j1qLrwKmGEG653GZw7KJRBX57Stc1oxQZqqu9mCqFLa7aBzt4MKXk4MeunVj" - }] - }, - - "rootHash": "DvpkQ2aADvQawmrzvTTjF9eKQxjDkrCbQDszMRbgJ6zV", - "auditPath": ["6GdvJfqTekMvzwi9wuEpfqMLzuN1T91kvgRBQLUzjkt6"], - } + "op":"REPLY", + "result":{ + "txn":{ + "type":"9", + "data":{ + "ledgers_ids":[ ] + }, + "protocolVersion":2, + "metadata":{ + "reqId":311348486, + "payloadDigest":"09a3ccedf806e224beb56b547e967b442f3ee3181d5c87623f063742df7a692e", + "from":"M9BJDuS24bqbJNvBRsoGg3", + "digest":"dfdc6c5b77181953b4e32f975b0c5e64b25dc3e3061716aca1baae4cbe0ce494" + } + }, + "ver":"1", + "auditPath":[ + "DDwrSsKwpFkfGVqp7AxzRMusUuT9D5RmidCmnr8phTWD" + ], + "txnMetadata":{ + "txnTime":1613735420, + "seqNo":3 + }, + "reqSignature":{ + "type":"ED25519", + "values":[ + { "value":"bSMfwJraLXzBAmdZKQUC1XfoVb3YWygc6UCQAmrTNKDr9beXta7MFyNZnQtbmNoRurjicSHLo3sW7qv7ZTWcZJa", + "from":"M9BJDuS24bqbJNvBRsoGg3" + } + ] + }, + "rootHash":"E27ssC3LK8azpgxxtBY4ETLXvDLGtfmeSjngc6jrV1Qt" + } } ``` @@ -4242,62 +4245,65 @@ A generic request to get a transaction from Ledger by its sequence number. ### GET_FROZEN_LEDGERS -Get whole list of frozen ledgers. Reply has follow format data: `: {ledger: , state: , seq_no: }`. +Get whole list of frozen ledgers. Reply has follow state format data: + +``` +: { + ledger: , + state: , + seq_no: +} +``` *Request Example*: ``` { - "operation": { - "type": "10" - "id": "did:sov:GGAD5g65TDQr1PPHHRoiGf", - }, - - "identifier": "L5AD5g65TDQr1PPHHRoiGf", - "reqId": 1514308188474704, - "protocolVersion": 2 + "operation":{ + "type":"10" + }, + "reqId":783857061, + "protocolVersion":2, + "identifier":"M9BJDuS24bqbJNvBRsoGg3" } ``` *Reply Example*: ``` { - "op": "REPLY", - "result": { - "type": "10", - "identifier": "L5AD5g65TDQr1PPHHRoiGf", - "reqId": 1514308188474704, - - "version": "1.0", - - "seqNo": 10, - "txnTime": 1514214795, - - "data": { - 1: { - ledger: "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", - state: "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", - seq_no: 10 - } - }, - - "state_proof": { - "root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH", - "proof_nodes": "+QHl+FGAgICg0he/hjc9t/tPFzmCrb2T+nHnN0cRwqPKqZEc3pw2iCaAoAsA80p3oFwfl4dDaKkNI8z8weRsSaS9Y8n3HoardRzxgICAgICAgICAgID4naAgwxDOAEoIq+wUHr5h9jjSAIPDjS7SEG1NvWJbToxVQbh6+Hi4dnsiaWRlbnRpZmllciI6Ikw1QUQ1ZzY1VERRcjFQUEhIUm9pR2YiLCJyb2xlIjpudWxsLCJzZXFObyI6MTAsInR4blRpbWUiOjE1MTQyMTQ3OTUsInZlcmtleSI6In42dWV3Um03MmRXN1pUWFdObUFkUjFtIn348YCAgKDKj6ZIi+Ob9HXBy/CULIerYmmnnK2A6hN1u4ofU2eihKBna5MOCHiaObMfghjsZ8KBSbC6EpTFruD02fuGKlF1q4CAgICgBk8Cpc14mIr78WguSeT7+/rLT8qykKxzI4IO5ZMQwSmAoLsEwI+BkQFBiPsN8F610IjAg3+MVMbBjzugJKDo4NhYoFJ0ln1wq3FTWO0iw1zoUcO3FPjSh5ytvf1jvSxxcmJxoF0Hy14HfsVll8qa9aQ8T740lPFLR431oSefGorqgM5ioK1TJOr6JuvtBNByVMRv+rjhklCp6nkleiyLIq8vZYRcgIA=", - "multi_signature": { - "value": { - "timestamp": 1514308168, - "ledger_id": 2, - "txn_root_hash": "4Y2DpBPSsgwd5CVE8Z2zZZKS4M6n9AbisT3jYvCYyC2y", - "pool_state_root_hash": "9fzzkqU25JbgxycNYwUqKmM3LT8KsvUFkSSowD4pHpoK", - "state_root_hash": "81bGgr7FDSsf4ymdqaWzfnN86TETmkUKH4dj4AqnokrH" - }, - "signature": "REbtR8NvQy3dDRZLoTtzjHNx9ar65ttzk4jMqikwQiL1sPcHK4JAqrqVmhRLtw6Ed3iKuP4v8tgjA2BEvoyLTX6vB6vN4CqtFLqJaPJqMNZvr9tA5Lm6ZHBeEsH1QQLBYnWSAtXt658PotLUEp38sNxRh21t1zavbYcyV8AmxuVTg3", - "participants": ["Delta", "Gamma", "Alpha"] - } - }, - - - } + "result":{ + "seqNo":3, + "type":"10", + "state_proof":{ + "root_hash":"HUv35b31eqncHZ1R8xMQW9pJnCBqAaUVrfCA8AeTtx6u", + "multi_signature":{ + "value":{ + "pool_state_root_hash":"4bCEk76QsB6p3yCiDntMedpeZmiQtdH9NRpcFyvaLHhc", + "state_root_hash":"HUv35b31eqncHZ1R8xMQW9pJnCBqAaUVrfCA8AeTtx6u", + "timestamp":1613736202, + "ledger_id":2, + "txn_root_hash":"BY6PV9SrV1dgQgxy2kpeTLESQfazTYoLdLZfjzVmcLeV" + }, + "signature":"R8FRHVg51YiY5nS8Hh8iXNa1ZPKjrQMmurnrGek2A7QMKq79Pws4DLhgcVgf66PSJGEPjmyASYxFziEnubY1RFHQiE7ZToLZqW4oJt11hhL1XgXwrdswyqTQjuyxx5nzjyE4AzyTvs3BywD54s3w3mUhLG3QWwBp1uTX8agLEKZDkK", + "participants":[ + "Gamma", + "Delta", + "Beta" + ] + }, + "proof_nodes":"+L74vJEgNDpGUk9aRU5fTEVER0VSU7io+Ka4pHsibHNuIjozLCJsdXQiOjE2MTM3MzYyMDIsInZhbCI6eyI5MDkiOnsibGVkZ2VyIjoiR0tvdDVoQnNkODFrTXVwTkNYSGFxYmh2M2h1RWJ4QUZNTG5wY1gyaG5pd24iLCJzZXFfbm8iOjAsInN0YXRlIjoiRGZOTG1INERBSFRLdjYzWVBGSnp1UmRlRXRWd0Y1UnRWbnZLWUhkOGlMRUEifX19" + }, + "txnTime":1613736202, + "reqId":666493618, + "data":{ + "909":{ + "seq_no":0, + "state":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA", + "ledger":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn" + } + }, + "identifier":"M9BJDuS24bqbJNvBRsoGg3" + }, + "op":"REPLY" } ``` From ef9b119ef0e3800ad44f240783c46b5de6fb424b Mon Sep 17 00:00:00 2001 From: "anton.denishchenko" Date: Wed, 24 Feb 2021 15:15:14 +0300 Subject: [PATCH 3/6] Update docs of frozen ledgers after review Signed-off-by: anton.denishchenko --- docs/source/requests-new.md | 4 +++- docs/source/requests.md | 2 +- docs/source/transactions.md | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/requests-new.md b/docs/source/requests-new.md index 1364a2c4a..a657e88d3 100644 --- a/docs/source/requests-new.md +++ b/docs/source/requests-new.md @@ -1390,7 +1390,9 @@ Command to change Pool's configuration ### LEDGERS_FREEZE -Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). + +The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (only trustee can freeze ledgers). *Request Example*: ``` diff --git a/docs/source/requests.md b/docs/source/requests.md index f9b9907f3..6e35d1ef1 100644 --- a/docs/source/requests.md +++ b/docs/source/requests.md @@ -2957,7 +2957,7 @@ A new Agreement needs to be sent instead. ### LEDGERS_FREEZE -Freeze deprecated ledgers (base ledgers POOL, CONFIG, AUDIT and DOMAIN can't be frozen). System completely ignore frozen ledgers. Frozen ledgers can't be unfreeze. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (only trustee can freeze ledgers). diff --git a/docs/source/transactions.md b/docs/source/transactions.md index 3ba85e175..edb4a2195 100644 --- a/docs/source/transactions.md +++ b/docs/source/transactions.md @@ -2096,7 +2096,7 @@ A new Agreement needs to be sent instead. #### LEDGERS_FREEZE -Disable specific legders. System completely ignore frozen ledgers. After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). **Example:** ``` From a0dc303086b45c76e53a35a4948ac174d37b7099 Mon Sep 17 00:00:00 2001 From: "anton.denishchenko" Date: Wed, 3 Mar 2021 17:48:07 +0300 Subject: [PATCH 4/6] Update docs after review Signed-off-by: anton.denishchenko --- docs/source/requests-new.md | 14 +++++++++++--- docs/source/requests.md | 4 ++-- docs/source/transactions.md | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/source/requests-new.md b/docs/source/requests-new.md index a657e88d3..f53cf7881 100644 --- a/docs/source/requests-new.md +++ b/docs/source/requests-new.md @@ -1390,9 +1390,9 @@ Command to change Pool's configuration ### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. -The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (only trustee can freeze ledgers). +The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (3 trustee signatures are needed). *Request Example*: ``` @@ -1963,7 +1963,15 @@ A generic request to get a transaction from Ledger by its sequence number. ### GET_FROZEN_LEDGERS -Get whole list of frozen ledgers. Reply has follow format data: `: {ledger: , state: , seq_no: }`. +Get whole list of frozen ledgers. Reply has follow state format data: + +``` +: { + ledger: , + state: , + seq_no: +} +``` *Request Example*: ``` diff --git a/docs/source/requests.md b/docs/source/requests.md index 6e35d1ef1..c4c256bb5 100644 --- a/docs/source/requests.md +++ b/docs/source/requests.md @@ -2957,9 +2957,9 @@ A new Agreement needs to be sent instead. ### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. -The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (only trustee can freeze ledgers). +The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (3 trustee signatures are needed). *Request Example*: ``` diff --git a/docs/source/transactions.md b/docs/source/transactions.md index edb4a2195..46601b426 100644 --- a/docs/source/transactions.md +++ b/docs/source/transactions.md @@ -2096,7 +2096,7 @@ A new Agreement needs to be sent instead. #### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used neither for reading not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py). +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. **Example:** ``` From 536d3caa49ee124a6d842444bc0127d3fff1a729 Mon Sep 17 00:00:00 2001 From: Richard Esplin Date: Mon, 8 Mar 2021 21:20:30 -0700 Subject: [PATCH 5/6] Clean up * Minor grammer fixes. * Made risks about removing ledgers explicit, and pointed to more documentation. Signed-off-by: Richard Esplin --- docs/source/requests-new.md | 4 ++-- docs/source/requests.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/requests-new.md b/docs/source/requests-new.md index f53cf7881..cbb1f63e8 100644 --- a/docs/source/requests-new.md +++ b/docs/source/requests-new.md @@ -1390,9 +1390,9 @@ Command to change Pool's configuration ### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. Frozen ledgers will not be caught up by new nodes and they can't be unfrozen. Frozen ledgers can be removed without breaking consensus, but this would prevent third parties from auditing the ledger history. [More information is in the Indy Plenum documenation](https://hyperledger/indy-plenum/tree/master/docs/source/transaction_freeze_ledgers.md). -The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (3 trustee signatures are needed). +The request has static and dynamic validations. Static validation checks to avoid freezing base ledgers (pool, audit, domain and config). Dynamic validation checks the existence of ledgers before freezing. Authorize checks the permissions for the freeze request (3 trustee signatures are needed by default). *Request Example*: ``` diff --git a/docs/source/requests.md b/docs/source/requests.md index c4c256bb5..f0a67932b 100644 --- a/docs/source/requests.md +++ b/docs/source/requests.md @@ -2957,9 +2957,9 @@ A new Agreement needs to be sent instead. ### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. Frozen ledgers will not be caught up by new nodes and they can't be unfrozen. Frozen ledgers can be removed without breaking consensus, but this would prevent third parties from auditing the ledger history. [More information is in the Indy Plenum documenation](https://hyperledger/indy-plenum/tree/master/docs/source/transaction_freeze_ledgers.md). -The request has static and dynamic validations. Static validation check for base ledgers (pool, audit, domain and config) than doesn't freeze them. Dynamic validation check existence of ledgers before freeze. Authorize check permission for freeze request (3 trustee signatures are needed). +The request has static and dynamic validations. Static validation checks to avoid freezing base ledgers (pool, audit, domain and config). Dynamic validation checks the existence of ledgers before freezing. Authorize checks the permissions for the freeze request (3 trustee signatures are needed by default). *Request Example*: ``` From 7cf9fc178db7a098e3abb66271bf97ce0f002bda Mon Sep 17 00:00:00 2001 From: Richard Esplin Date: Mon, 8 Mar 2021 21:25:04 -0700 Subject: [PATCH 6/6] @WadeBarnes pointed out an additional reference to clean up. Signed-off-by: Richard Esplin --- docs/source/transactions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/transactions.md b/docs/source/transactions.md index 46601b426..b980446e0 100644 --- a/docs/source/transactions.md +++ b/docs/source/transactions.md @@ -2096,7 +2096,7 @@ A new Agreement needs to be sent instead. #### LEDGERS_FREEZE -Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. It will not be caught up by new nodes and can be safely removed (frozen ledgers can't be unfreeze). After freeze you can delete frozen ledger via [remove_ledger.py] (https://github.com/hyperledger/indy-node/blob/master/scripts/remove_ledger.py), but reeding from the ledger will become impossible. +Freeze deprecated ledgers (default ledgers such as the domain, config, pool, and audit ledgers cannot be frozen). If a ledger is frozen it can be used for reading but not for writing. Frozen ledgers will not be caught up by new nodes and they can't be unfrozen. Frozen ledgers can be removed without breaking consensus, but this would prevent third parties from auditing the ledger history. [More information is in the Indy Plenum documenation](https://hyperledger/indy-plenum/tree/master/docs/source/transaction_freeze_ledgers.md). **Example:** ```