From dbb8befe340cd201ecb3e50975dd6fa8f0fd0056 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Tue, 28 Jul 2015 14:41:33 -0700 Subject: [PATCH] [DOC] ledger format diagrams and wording improvements --- content/ledger_format.md | 28 +++++++++++++++++----------- img/ledger-components.png | Bin 0 -> 21854 bytes img/ledger-indexes.png | Bin 0 -> 10082 bytes img/ledger-process.png | Bin 0 -> 30499 bytes 4 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 img/ledger-components.png create mode 100644 img/ledger-indexes.png create mode 100644 img/ledger-process.png diff --git a/content/ledger_format.md b/content/ledger_format.md index 80be03d299..9bf09138bc 100644 --- a/content/ledger_format.md +++ b/content/ledger_format.md @@ -1,10 +1,14 @@ # The Ledger # -The point of the Ripple software is to maintain a shared, global ledger that is open to all, so that individual participants can trust the integrity of the ledger without having to trust any single institution to manage it. The `rippled` server software accomplishes this by maintaining a ledger database that can only be updated according to very specific rules. Each instance of `rippled` maintains a full copy of the ledger, and the peer-to-peer network of `rippled` servers distributes candidate transactions, where [the consensus process](https://ripple.com/knowledge_center/the-ripple-ledger-consensus-process/) determines which transactions get applied to each new version of the ledger. +The point of the Ripple software is to maintain a shared, global ledger that is open to all, so that individual participants can trust the integrity of the ledger without having to trust any single institution to manage it. The `rippled` server software accomplishes this by maintaining a ledger database that can only be updated according to very specific rules. Each instance of `rippled` maintains a full copy of the ledger, and the peer-to-peer network of `rippled` servers distributes candidate transactions among themselves. The consensus process determines which transactions get applied to each new version of the ledger. See also: [The Consensus Process](https://ripple.com/knowledge_center/the-ripple-ledger-consensus-process/). + +![Diagram: Each ledger is the result of applying transactions to the previous ledger version.](img/ledger-process.png) The shared global ledger is actually a series of individual ledgers, or ledger versions, which `rippled` keeps in its internal database. Every ledger version has a sequence number, starting at 0 and incrementing with each new version. Every closed ledger also has an identifying hash value, which uniquely identifies the contents of that ledger. At any given time, a `rippled` instance has an in-progress "current" open ledger, plus some number of closed ledgers that have not yet been approved by consensus, and any number of historical ledgers that have been validated by consensus. Only the validated ledgers are certain to be accurate and immutable. -A single ledger version consists of: +A single ledger version consists of several components: + +![Diagram: A ledger has transactions, a state node, and a header with the close time and validation info](img/ledger-components.png) * A **header** - The sequence number, hashes of the other contents, and other metadata. * A **transaction tree** - The [transactions](transactions.html) that were applied to the previous ledger to make this one. Transactions are the _only_ way to modify the ledger. @@ -13,12 +17,14 @@ A single ledger version consists of: ## Tree Format ## -As its name might suggest, a ledger's state tree is a tree data structure, with each node identified by a 256-bit value called an `index`. In JSON, these values are represented as 64-character hexadecimal strings like `"193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"`. Every node in the state tree has an index that you can use to look up the node in the state tree; every transaction has an indentifying hash that you can use to look up the transaction in the transaction tree. +As its name might suggest, a ledger's state tree is a tree data structure, with each node identified by a 256-bit value called an `index`. In JSON, these values are represented as 64-character hexadecimal strings like `"193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"`. Every node in the state tree has an index that you can use as a key to look up the node in the state tree; every transaction has an indentifying hash that you can use to look up the transaction in the transaction tree. In the case of transactions, the identifying hash is based on the signed transaction instructions, but the contents of the transaction object when you look it up also contain the results and metadata of the transaction, which are not taken into account when generating the hash. In the case of state nodes, `rippled` usually includes the `index` of the node along with its contents. However, the index itself is not part of the contents. The index is derived by hashing important contents of the node, along with a [namespace identifier](https://github.com/ripple/rippled/blob/ceff6bc2713eaf80feafe56a02f4d636827b89a9/src/ripple/protocol/LedgerFormats.h#L94). The ledger node type determines which namespace identifier to use as well as which contents to include in the hash. This prevents nodes of different types from hashing to the same index. For a hash function, `rippled` uses SHA-512 and then truncates the result to the first 256 bytes. This algorithm, informally called SHA-512Half, provides an output that has comparable security to SHA-256, but runs faster on 64-bit processors. +![Diagram: rippled uses SHA-512Half to generate indexes for ledger nodes. The space key prevents indexes for different node types from colliding.](img/indexes.png) + # Ledger Node Types # @@ -233,8 +239,8 @@ An Offer node has the following fields: | TakerPays | String or Object | Amount | The remaining amount and type of currency requested by the offer creator. | | TakerGets | String or Object | Amount | The remaining amount and type of currency being provided by the offer creator. | | BookDirectory | String | UInt256 | The index of the [Offer Directory](#directorynode) that links to this offer. | -| BookNode | String | UInt64 | A hint indicating which which page of the offer directory links to this node, in case the directory consists of multiple nodes. | -| OwnerNode | String | UInt64 | A hint indicating which which page of the owner directory links to this node, in case the directory consists of multiple nodes. **Note:** The offer does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | +| BookNode | String | UInt64 | A hint indicating which page of the offer directory links to this node, in case the directory consists of multiple nodes. | +| OwnerNode | String | UInt64 | A hint indicating which page of the owner directory links to this node, in case the directory consists of multiple nodes. **Note:** The offer does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | | Expiration | Number | UInt32 | (Optional) Indicates the time after which this offer will be considered unfunded. See [Specifying Time](rippled-apis.html#specifying-time) for details. | ### Offer Flags ### @@ -259,7 +265,7 @@ The `index` of an Offer node is the SHA-512Half of the following values put toge ## RippleState ## -The `RippleState` node type connects two accounts in a single currency. Conceptually, a RippleState node represents two _trust lines_ between the accounts, one from each side. Each account can modify the settings for its side of the RippleState node, but the balance is a single shared value. A RippleState node that is entirely in its default state is considered the same as a RippleState node that does not exist, so `rippled` deletes RippleState nodes when their properties are entirely default. +The `RippleState` node type connects two accounts in a single currency. Conceptually, a RippleState node represents two _trust lines_ between the accounts, one from each side. Each account can modify the settings for its side of the RippleState node, but the balance is a single shared value. A trust line that is entirely in its default state is considered the same as trust line that does not exist, so `rippled` deletes RippleState nodes when their properties are entirely default. Since no account is privileged in the Ripple ledger, a RippleState node identifies the two parties by numerically comparing their account addresses. Whichever address is numerically lower is deemed the "low account" and the other is the "high account". @@ -301,8 +307,8 @@ A RippleState node has the following fields: | Balance | Object | Amount | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the low account has issued currency to the high account. The issuer in this is always set to the neutral value [ACCOUNT_ONE](https://wiki.ripple.com/Accounts#ACCOUNT_ONE). | | LowLimit | Object | Amount | The limit that the low account has set on the trust line. The `issuer` is the address of the low account that set this limit. | | HighLimit | Object | Amount | The limit that the high account has set on the trust line. The `issuer` is the address of the high account that set this limit. | -| LowNode | String | UInt64 | (Omitted in some historical ledgers) A hint indicating which which page of the low account's owner directory links to this node, in case the directory consists of multiple nodes. | -| HighNode | String | UInt64 | (Omitted in some historical ledgers) A hint indicating which which page of the high account's owner directory links to this node, in case the directory consists of multiple nodes. | +| LowNode | String | UInt64 | (Omitted in some historical ledgers) A hint indicating which page of the low account's owner directory links to this node, in case the directory consists of multiple nodes. | +| HighNode | String | UInt64 | (Omitted in some historical ledgers) A hint indicating which page of the high account's owner directory links to this node, in case the directory consists of multiple nodes. | | LowQualityIn | Number | UInt32 | (Optional) The inbound quality set by the low account, as an integer in the implied ratio LowQualityIn:1,000,000,000. The value 0 is equivalent to 1 billion, or no fee. | | LowQualityOut | Number | UInt32 | (Optional) The outbound quality set by the low account, as an integer in the implied ratio LowQualityOut:1,000,000,000. The value 0 is equivalent to 1 billion, or no fee. | | HighQualityIn | Number | UInt32 | (Optional) The inbound quality set by the high account, as an integer in the implied ratio HighQualityIn:1,000,000,000. The value 0 is equivalent to 1 billion, or no fee. | @@ -333,18 +339,18 @@ The values that count towards a a trust line's non-default state are as follows: | High account responsible if... | Low account responsible if... | |-----------------------|----------------------| -| `Balance` is negative (the high account holds currency) | If `Balance` is positive (the low account holds currency) | +| `Balance` is negative (the high account holds currency) | `Balance` is positive (the low account holds currency) | | `HighLimit` is not `0` | `LowLimit` is not `0` | | `LowQualityIn` is not `0` and not `1000000000` | `HighQualityIn` is not `0` and not `1000000000` | | `LowQualityOut` is not `0` and not `1000000000` | `HighQualityOut` is not `0` and not `1000000000` | | **lsfHighNoRipple** flag is not in its default state | **lsfLowNoRipple** flag is not in its default state | | **lsfHighFreeze** flag is enabled | **lsfLowFreeze** flag is enabled | -The **lsfLowAuth** and **lsfHighAuth** flags do not count towards the default state, because they cannot be disabled. +The **lsfLowAuth** and **lsfHighAuth** flags do not count against the default state, because they cannot be disabled. The default state of the two NoRipple flags depends on the state of the [lsfDefaultRipple flag](#accountroot-flags) in their corresponding AccountRoot nodes. If DefaultRipple is disabled (the default), then the default state of the lsfNoRipple flag is _enabled_ for all of an account's trust lines. If an account enables DefaultRipple, then the lsfNoRipple flag is _disabled_ (rippling is enabled) for an account's trust lines by default. **Note:** Prior to the introduction of the DefaultRipple flags in `rippled` version 0.27.3 (March 10, 2015), the default state for all trust lines was with lsfNoRipple disabled (rippling enabled). -Fortunately, `rippled` uses lazy evaluation to calculate the owner reserve. This means that even if an account changes the default state of all its trust lines by changing the DefaultRipple flag, that account's reserve stays the same initially. Later, if the account modifies a trust line, the owner reserve will apply if the changes put it into a non-default state. +Fortunately, `rippled` uses lazy evaluation to calculate the owner reserve. This means that even if an account changes the default state of all its trust lines by changing the DefaultRipple flag, that account's reserve stays the same initially. If an account modifies a trust line, `rippled` re-evaluates whether that individual trust line is in its default state and should contribute the owner reserve. ### RippleState index format ### diff --git a/img/ledger-components.png b/img/ledger-components.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec720050126de0d1cbeec138c08a390f9808472 GIT binary patch literal 21854 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
  • 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 z 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 ZH^ezZQf`=90%t)0mr;_=y?OWP{{iSr_KW}k literal 0 HcmV?d00001 diff --git a/img/ledger-process.png b/img/ledger-process.png new file mode 100644 index 0000000000000000000000000000000000000000..f7396952db14bf520c5f50efa594b8c080931f52 GIT binary patch literal 30499 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 literal 0 HcmV?d00001