Proto commits in XRPLF/rippled

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:e75b993
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869

Commit:d7efe41
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869

Commit:b402f06
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869

Commit:15eeaff
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869

Commit:b92c9f9
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869

Commit:706a4c9
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869 - Improve logging related to ledger acquisition - Class "CanProcess" to keep track of processing of distinct items --------- Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>

Commit:99fb808
Author:Ed Hennis
Committer:Ed Hennis

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869 - Improve logging related to ledger acquisition - Class "CanProcess" to keep track of processing of distinct items --------- Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>

Commit:8f6208e
Author:Ed Hennis
Committer:Qi Zhao

Revert "Reduce duplicate peer traffic for ledger data (#5126)" (#5300) This reverts commit dd5e6559dda14f8a1684cf81d90b86920628a4df. It has introduced a regression causing slow close times and syncing issues. A fix will be attempted later.

The documentation is generated from this commit.

Commit:51f427c
Author:Ed Hennis
Committer:Qi Zhao

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869 - Improve logging related to ledger acquisition - Class "CanProcess" to keep track of processing of distinct items --------- Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>

Commit:159dfb5
Author:Ed Hennis
Committer:GitHub

Revert "Reduce duplicate peer traffic for ledger data (#5126)" (#5300) This reverts commit dd5e6559dda14f8a1684cf81d90b86920628a4df. It has introduced a regression causing slow close times and syncing issues. A fix will be attempted later.

The documentation is generated from this commit.

Commit:dd5e655
Author:Ed Hennis
Committer:GitHub

Reduce duplicate peer traffic for ledger data (#5126) - Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869 - Improve logging related to ledger acquisition - Class "CanProcess" to keep track of processing of distinct items --------- Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>

Commit:4d7aed8
Author:John Freeman
Committer:GitHub

refactor: Remove reporting mode (#5092)

The documentation is generated from this commit.

Commit:7d27b11
Author:John Freeman
Committer:GitHub

Remove shards (#5066)

Commit:e416ee7
Author:Pretty Printer
Committer:John Freeman

Rearrange sources (#4997)

Commit:ffb53f2
Author:Bronek Kozicki
Committer:GitHub

Revert "Add ProtocolStart and GracefulClose P2P protocol messages (#3839)" (#4850) This reverts commit 8f89694faeff882bd02dd91d1ca243e35073dce7.

Commit:5aef102
Author:Sophia Xie
Committer:GitHub

Revert #4505, #4760 (#4842) * Revert "Optimize calculation of close time to avoid impasse and minimize gratuitous proposal changes (#4760)" This reverts commit 8ce85a9750568b8f41f24e65e6103cc256a4f5b0. * Revert "Several changes to improve Consensus stability: (#4505)" This reverts commit f259cc1ab6ed4e59a35b153a4225bc953050bf5b. * Add missing include --------- Co-authored-by: seelabs <scott.determan@yahoo.com>

Commit:8f89694
Author:Gregory Tsipenyuk
Committer:GitHub

Add ProtocolStart and GracefulClose P2P protocol messages (#3839) Clean up the peer-to-peer protocol start/close sequences by introducing START_PROTOCOL and GRACEFUL_CLOSE messages, which sync inbound/outbound peer send/receive. The GRACEFUL_CLOSE message differentiates application and link layer failures. * Introduce the `InboundHandoff` class to manage inbound peer instantiation and synchronize the send/receive protocol messages between peers. * Update `OverlayImpl` to utilize the `InboundHandoff` class to manage inbound handshakes. * Update `PeerImp` for improved handling of protocol messages. * Modify the `Message` class for better maintainability. * Introduce P2P protocol version `2.3`.

Commit:f259cc1
Author:Mark Travis
Committer:GitHub

Several changes to improve Consensus stability: (#4505) * Verify accepted ledger becomes validated, and retry with a new consensus transaction set if not. * Always store proposals. * Track proposals by ledger sequence. This helps slow peers catch up with the rest of the network. * Acquire transaction sets for proposals with future ledger sequences. This also helps slow peers catch up. * Optimize timer delay for establish phase to wait based on how long validators have been sending proposals. This also helps slow peers to catch up. * Fix impasse achieving close time consensus. * Don't wait between open and establish phases.

Commit:7ca1c64
Author:Elliot Lee

Revert "Several changes to improve Consensus stability: (#4505)" This reverts commit e8a7b2a1fc5b62b7ea92bd12fa63b2852125906a.

Commit:e8a7b2a
Author:Mark Travis
Committer:Manoj Doshi

Several changes to improve Consensus stability: (#4505) * Verify accepted ledger becomes validated, and retry with a new consensus transaction set if not. * Always store proposals. * Track proposals by ledger sequence. This helps slow peers catch up with the rest of the network. * Acquire transaction sets for proposals with future ledger sequences. This also helps slow peers catch up. * Optimize timer delay for establish phase to wait based on how long validators have been sending proposals. This also helps slow peers to catch up. * Fix impasse achieving close time consensus. * Don't wait between open and establish phases.

Commit:28f4cc7
Author:CJ Cobb
Committer:manojsdoshi

Remove gRPC code previously used for the xpring SDK

Commit:01c37fe
Author:Richard Holland
Committer:manojsdoshi

Introduce the `ExpandedSignerList` amendment: The amendment increases the maximum sign of an account's signer list from 8 to 32. Like all new features, the associated amendment is configured with a default vote of "no" and server operators will have to vote for it explicitly if they believe it is useful.

Commit:70779f6
Author:Nik Bougalis
Committer:manojsdoshi

Introduce NFT support (XLS020)

Commit:d57f88f
Author:seelabs
Committer:seelabs

Implement side chain federators: Co-authored-by: seelabs <scott.determan@yahoo.com> Co-authored-by: Peng Wang <pwang200@gmail.com>

Commit:11ca9a9
Author:CJ Cobb
Committer:manojsdoshi

Add successor information to clio ETL messages * Allow clio to ask for object successors and predecessors from rippled * Add lower_bound and last_below to SHAMap

Commit:8c78c83
Author:CJ Cobb
Committer:manojsdoshi

Add modification type to GetLedger gRPC method * Specify whether a ledger object was created, modified or deleted.

Commit:ea145d1
Author:Gregory Tsipenyuk
Committer:Nik Bougalis

Improve transaction relaying logic: The existing logic involves every server sending every transaction that it receives to all its peers (except the one that it received a transaction from). This commit instead uses a randomized algorithm, where a node will randomly select peers to relay a given transaction to, caching the list of transaction hashes that are not relayed and forwading them to peers once every second. Peers can then determine whether there are transactions that they have not seen and can request them from the node which has them. It is expected that this feature will further reduce the bandwidth needed to operate a server.

Commit:80c2302
Author:Miguel Portilla
Committer:manojsdoshi

Extend peer shard info

Commit:7e97bfc
Author:Peng Wang
Committer:manojsdoshi

Implement ledger forward replay

Commit:2754317
Author:CJ Cobb
Committer:manojsdoshi

Add Reporting Mode * Add a new operating mode to rippled called reporting mode * Add ETL mechanism for a reporting node to extract data from a p2p node * Add new gRPC methods to faciliate ETL * Use Postgres in place of SQLite in reporting mode * Add Cassandra as a nodestore option * Update logic of RPC handlers when running in reporting mode * Add ability to forward RPCs to a p2p node

Commit:74d96ff
Author:Gregory Tsipenyuk
Committer:Nik Bougalis

Add experimental validation & proposal relay reduction support: - Add validation/proposal reduce-relay feature negotiation to the handshake - Make squelch duration proportional to a number of peers that can be squelched - Refactor makeRequest()/makeResponse() to facilitate handshake unit-testing - Fix compression enable flag for inbound peer - Fix compression algorithm parsing in the header parser - Fix squelch duration in onMessage(TMSquelch) This commit fixes 3624, fixes 3639 and fixes 3641

Commit:4b9d3ca
Author:Edward Hennis
Committer:Edward Hennis

Support UNLs with future effective dates: * Creates a version 2 of the UNL file format allowing publishers to pre-publish the next UNL while the current one is still valid. * Version 1 of the UNL file format is still valid and backward compatible. * Also causes rippled to lock down if it has no valid UNLs, similar to being amendment blocked, except reversible. * Resolves #3548 * Resolves #3470

Commit:52adcc7
Author:Scott Schurr
Committer:Nik Bougalis

Add unit tests to check synchronization of KnownFormats and gRPC

Commit:85fc1e8
Author:Nik Bougalis
Committer:Nik Bougalis

Remove legacy support for endpoint dissemination: Support for IPv6 messages was added with commit 08382d866b116e3ec9d50193bcf45caea8ca09a2 and version 1.1.0. No peer presently connected to the network in a useful capacity fails to understand v2 messages. This commit removes the code that generates and processes v1 messages and deletes legacy messages from the protocol buffer definition file.

Commit:9b9f34f
Author:Gregory Tsipenyuk
Committer:Nik Bougalis

Optimize relaying of validation and proposal messages: With few exceptions, servers will typically receive multiple copies of any given message from its directly connected peers. For servers with several peers this can impact the processing latency and force it to do redundant work. Proposal and validation messages are often relayed with extremely high redundancy. This commit, if merged, introduces experimental code that attempts to optimize the relaying of proposals and validations by allowing servers to instruct their peers to "squelch" delivery of selected proposals and validations. Servers making squelching decisions by a process that evaluates the fitness and performance of a given server and randomly selecting a subset of the best candidates. The experimental code is presently disabled and must be explicitly enabled by server operators that wish to test it.

Commit:7724cca
Author:Scott Schurr
Committer:Nik Bougalis

Implement enhanced Ticket support: Tickets are a mechanism to allow for the "out-of-order" execution of transactions on the XRP Ledger. This commit, if merged, reworks the existing support for tickets and introduces support for 'ticket batching', completing the feature set needed for tickets. The code is gated under the newly-introduced `TicketBatch` amendment and the `Tickets` amendment, which is not presently active on the network, is being removed. The specification for this change can be found at: https://github.com/xrp-community/standards-drafts/issues/16

Commit:12c0e81
Author:Peng Wang
Committer:Nik Bougalis

Improve naming of fields associated with the NegativeUNL

Commit:706ca87
Author:Peng Wang
Committer:manojsdoshi

Implement negative UNL functionality: This change can help improve the liveness of the network during periods of network instability, by allowing the network to track which validators are presently not online and to disregard them for the purposes of quorum calculations.

Commit:d69a902
Author:CJ Cobb
Committer:Nik Bougalis

Add comments to protobuf files

Commit:567e42e
Author:Nik Bougalis
Committer:Nik Bougalis

Deprecate 'Time to Live' fields

Commit:e7ce390
Author:CJ Cobb
Committer:Mike Ellery

gRPC support for account_tx and tx - Add support for all transaction types and ledger object types to gRPC implementation of tx and account_tx. - Create common handlers for tx and account_tx. - Remove mutex and abort() from gRPC server. JobQueue is stopped before gRPC server, with all coroutines executed to completion, so no need for synchronization.

Commit:2c71802
Author:Edward Hennis
Committer:Manoj doshi

Propagate validator lists (VLs or UNLs) over the peer network: * Whenever a node downloads a new VL, send it to all peers that haven't already sent or received it. It also saves it to the database_dir as a Json text file named "cache." plus the public key of the list signer. Any files that exist for public keys provided in [validator_list_keys] will be loaded and processed if any download from [validator_list_sites] fails or no [validator_list_sites] are configured. * Whenever a node receives a broadcast VL message, it treats it as if it had downloaded it on it's own, broadcasting to other peers as described above. * Because nodes normally download the VL once every 5 minutes, a single node downloading a VL with an updated sequence number could potentially propagate across a large part of a well-connected network before any other nodes attempt to download, decreasing the amount of time that different parts of the network are using different VLs. * Send all of our current valid VLs to new peers on connection. This is probably the "noisiest" part of this change, but will give poorly connected or poorly networked nodes the best chance of syncing quickly. Nodes which have no http(s) access configured or available can get a VL with no extra effort. * Requests on the peer port to the /vl/<pubkey> endpoint will return that VL in the same JSON format as is used to download now, IF the node trusts and has a valid instance of that VL. * Upgrade protocol version to 2.1. VLs will only be sent to 2.1 and higher nodes. * Resolves #2953

Commit:7d867b8
Author:CJ Cobb
Committer:CJ Cobb

Add gRPC support (#3127): * add support for AccountInfo, Fee and Submit RPCs * add partial support for Tx RPC (only supports Payments)

Commit:f6916bf
Author:Nik Bougalis
Committer:Nik Bougalis

Improve protocol-level handshaking protocol: This commit restructures the HTTP based protocol negotiation that `rippled` executes and introduces support for negotiation of compression for peer links which, if implemented, should result in significant bandwidth savings for some server roles. This commit also introduces the new `[network_id]` configuration option that administrators can use to specify which network the server is part of and intends to join. This makes it possible for servers from different networks to drop the link early. The changeset also improves the log messages generated when negotiation of a peer link upgrade fails. In the past, no useful information would be logged, making it more difficult for admins to troubleshoot errors. This commit also fixes RIPD-237 and RIPD-451

Commit:2e26377
Author:Miguel Portilla
Committer:Nik Bougalis

Use public key when routing shard crawl requests

Commit:265f5f1
Author:Mike Ellery
Committer:Nik Bougalis

Delete old protobuf subtree

Commit:3661dc8
Author:Miguel Portilla
Committer:seelabs

Add RPC command shard crawl (RIPD-1663)

Commit:08382d8
Author:Mike Ellery
Committer:Mike Ellery

Support ipv6 for peer and RPC comms: Fixes: RIPD-1574 Alias beast address classes to the asio equivalents. Adjust users of address classes accordingly. Fix resolver class so that it can support ipv6 addresses. Make unit tests use ipv6 localhost network. Extend endpoint peer message to support string endpoint representations while also supporting the existing fields (both are optional/repeated types). Expand test for Livecache and Endpoint. Workaround some false positive ipaddr tests on windows (asio bug?) Replaced usage of address::from_string(deprecated) with free function make_address. Identified a remaining use of v4 address type and replaced with the more appropriate IPEndpoint type (rpc_ip cmdline option). Add CLI flag for using ipv4 with unit tests. Release Notes ------------- The optional rpc_port command line flag is deprecated. The rpc_ip parameter now works as documented and accepts ip and port combined.

Commit:718d217
Author:Miguel Portilla
Committer:Scott Schurr

Implement Shards

Commit:d8dea96
Author:Vinnie Falco

Squashed 'src/beast/' changes from 1b9a714..6d5547a 6d5547a Set version to 1.0.0-b34 6fab138 Fix and tidy up CMake build scripts: ccefa54 Set version to 1.0.0-b33 32afe41 Set internal state correctly when writing frames: fe3e20b Add write_frames unit test 578dcd0 Add decorator unit test aaa3733 Use fwrite return value in file_body df66165 Require Visual Studio 2015 Update 3 or later b8e5a21 Set version to 1.0.0-b32 ffb1758 Update CMake scripts for finding packages: b893749 Remove http Writer suspend and resume feature (API Change): 27864fb Add io_service completion invariants tests eba05a7 Set version to 1.0.0-b31 484bcef Fix badge markdown in README.md 5663bea Add missing dynabuf_readstream member 0d7a551 Tidy up build settings 0fd4030 Move the handler, don't copy it git-subtree-dir: src/beast git-subtree-split: 6d5547a32c50ec95832c4779311502555ab0ee1f

This commit does not contain any .proto files.

Commit:af79c90
Author:MarkusTeufelberger
Committer:seelabs

Specify syntax version for ripple.proto file: This change eliminates a warning about unspecified syntax version when using a newer proto3 compiler.

Commit:cdf470e
Author:wilsonianb
Committer:Nik Bougalis

Forward manifests from new peer (RIPD-1325): Previously, manifests sent to new peers were marked as history so that they would not be forwarded. However, this prevented a starting up node's new manifest from being forwarded beyond its directly connected peers. Stale or invalid manifests are still not forwarded.

Commit:0c05bd3
Author:JoelKatz
Committer:Nik Bougalis

Improve transport security: * Add fields for local and remote IP addresses in hello. * Add configuration for known local public IP address * Set fields appropriately * Check the fields * Disallow self connection by key

Commit:36a62f1
Author:JoelKatz
Committer:Edward Hennis

Switch some Ledger instances to ReadView instances * Remove ltCURRENT * Change getOwnerInfo * Use ReadView in TransactionSign * Change AcceptedLedger and ProposedTransaction to use ReadView * Change RPC::accounts

Commit:dd90229
Author:Nik Bougalis
Committer:Tom Ritchford

Consensus cleanup: * Inject dependencies, make functions free and levelize * Add comments to document the intent behind the code * Reduce class public interfaces * Remove support for proposals without ledger hashes

Commit:1b4e0f5
Author:seelabs
Committer:seelabs

Tidying & Selectively forward manifests to peers: * Do not forward manifests to peers that already know that manifest * Do not forward historical manifests to peers * Save/Load ValidatorManifests from a database * Python test for setting ephmeral keys * Cleanup manifest interface

Commit:0dd6b95
Author:Josh Juran
Committer:seelabs

Add Validator Manifests (RIPD-772): A Validator Manifest allows validators to use a generated ed25519 secret key as a master key for generating new validator public/secret key pairs. Using this mechanism, rippled instances trust the master ed25519 public key instead of the now-ephemeral validator public key. Through a new message and propagation scheme, this lets a validator change its ephemeral public key without requiring that all rippled instances on the network restart after maintaining the configuration file.

Commit:b1881e7
Author:JoelKatz
Committer:Vinnie Falco

Control query depth based on latency: This changes TMGetLedger protocol in a backward-compatible way to include a "query depth" parameter - the number of extra levels in the SHAMap tree that a server should return in the corresponding TMLedgerData. Depending on the value or absence of the field, a server may adjust the amount of returned data based on the observed latency of the requestor: higher latencies will return larger data sets (to compensate for greater request/response turnaround times).

Commit:90bb53a
Author:Vinnie Falco
Committer:Tom Ritchford

Structured Overlay support for TTL limited messages: When the [overlay] configuration key "expire" is set to 1, proposals and validations will include a hops field. The hops is incremented with each relay. Messages with a hop count will be dropped when they exceed the TTL (Time to Live). Messages containing a hops field will not be relayed or broadcast to older versions of rippled that don't understand the field. This change will not affect normal operation of the network or rippled instances that do not set "expire" to 1.

Commit:08a81a0
Author:Vinnie Falco
Committer:Nik Bougalis

Tidy up the structure of sources in protocol/: Split out and rename STValidation Split out and rename STBlob Split out and rename STAccount Split out STPathSet Split STVector256 and move UintTypes to protocol/ Rename to STBase Rename to STLedgerEntry Rename to SOTemplate Rename to STTx Remove obsolete AgedHistory Remove types.h and add missing includes Remove unnecessary includes in app.h Remove unnecessary includes in app.h Remove include app.h from app1.cpp

Commit:65125ea
Author:JoelKatz
Committer:Vinnie Falco

Add "deferred" flag to transaction relay message If we receive a deferred transaction from a server in our cluster, treat it as if it wasn't received from a server in our cluster. This currently has no effect but is needed for server to interoperate with future code that will relay deferred transactions.

Commit:5f59282
Author:Vinnie Falco
Committer:Vinnie Falco

Clean up Overlay and PeerFinder sources: * Tidy up identifiers and declarations * Merge PeerFinder headers into one file * Merge handout classes and functions into one file

Commit:d606618
Author:Vinnie Falco
Committer:Vinnie Falco

Refactor Overlay for Structured Network support: * Move overlay up one directory * Add abstract_protocol_handler, message_stream * Add peer_protocol_detector * Tidy up some declarations * Use strand::running_in_this_thread instead of bool * Update README.md * Replace protocol message read loop: - Process data in arbitrary size chunks - message_stream extracts individual messages - peer_protocol_detector identifies the handshake - abstract_protocol_handler used for dispatching messages * Remove unused protocol message types: - mtACCOUNT - mtCONTACT - mtERROR - mtGET_ACCOUNT - mtGET_CONTACTS - mtGET_VALIDATIONS - mtSEARCH_TRANSACTION - mtUNUSED_FIELD Conflicts: src/ripple/module/app/main/Application.cpp src/ripple/module/app/misc/NetworkOPs.cpp src/ripple/module/app/peers/PeerSet.cpp

Commit:a10c481
Author:Vinnie Falco
Committer:Vinnie Falco

Move .proto and generated sources

Commit:6235435
Author:Vinnie Falco
Committer:Vinnie Falco

Refactor ripple_overlay: * Use rvalue move to receive accepted sockets * Split asio dependent APIs to their own class and file * Update documentation * Organize code into different files * Make some members private * Rename things for clarity

Commit:572aae3
Author:Nik Bougalis
Committer:Vinnie Falco

Performance fixes: decongest master lock

Commit:e60b289
Author:Nik Bougalis
Committer:Vinnie Falco

PeerFinder work and refactoring: * Implement PeerFinder business logic. * Support fixed peers (including DNS support). * Add journal support to Peer and Peers. * Refactor PeerDoor support. * Tidy up Peers and eliminate connection functionality and timers. * Refactor Peer interface and add journal support. * Allow construction of incoming Peer using an existing socket. * Remove TESTNET support. * Allow connections from/to cluster peers without consuming slots * Misc. cleanups.

Commit:58f07a5
Author:David Schwartz
Committer:Vinnie Falco

New ResourceManager for managing server load. * Track abusive endpoints * Gossip across cluster. * Use resource manager's gossip support to share load reporting across a cluster * Swtich from legacy fees to new Resource::Charge fees. * Connect RPC to the new resource manager. * Set load levels where needed in RPC/websocket commands. * Disconnect abusive peer endpoints. * Don't start conversations with abusive peer endpoints. * Move Resource::Consumer to InfoSub and remove LoadSource * Remove port from inbound Consumer keys * Add details in getJson * Fix doAccountCurrencies for the new resource manager.

Commit:5dda088
Author:Vinnie Falco
Committer:Vinnie Falco

Peerfinder work

Commit:4fe63f9
Author:Vinnie Falco
Committer:Vinnie Falco

PeerFinder work

Commit:41879d8
Author:Vinnie Falco
Committer:Vinnie Falco

Remove obsolete mtANNOUNCE message support

Commit:9e6e7b5
Author:Vinnie Falco

Add comments to the .proto file

Commit:27f0cae
Author:Vinnie Falco
Committer:Vinnie Falco

Add PeerFinder peer discovery logic and unit test

Commit:45eccf2
Author:Vinnie Falco
Committer:Vinnie Falco

Move ./modules to ./src

Commit:1b67612
Author:Vinnie Falco

Merge commit '112234c8a911de4243eaab3eb6a37ce6df014880' as 'src/protobuf'

Commit:112234c
Author:Vinnie Falco

Squashed 'src/protobuf/' content from commit d6e20ba git-subtree-dir: src/protobuf git-subtree-split: d6e20baabb84501c720b6e42170684264bd2cdd2

Commit:ae1daaf
Author:Vinnie Falco

Remove old protobuf subtree in preparation for git subtree add

Commit:00caefc
Author:Vinnie Falco

Move ripple.pb.cc to VS2012 project so it rebuilds as needed

Commit:4ef0f5d
Author:Vinnie Falco
Committer:Vinnie Falco

Refactor ProofOfWork

Commit:58ee1b2
Author:Vinnie Falco
Committer:Vinnie Falco

Move all remaining files into modules

Commit:ea7730a
Author:JoelKatz
Committer:JoelKatz

More cluster status work.

Commit:ecc864a
Author:JoelKatz
Committer:JoelKatz

Send cluster reports

Commit:f590162
Author:JoelKatz
Committer:JoelKatz

Create a new ClusterNodeStatus class and hook it up.

Commit:cc8af22
Author:JoelKatz
Committer:JoelKatz

Track cluster load and local load separately.

Commit:4090fbf
Author:Vinnie Falco

Squashed 'Subtrees/leveldb/' changes from ab82e57..ae6c262 ae6c262 Merge branch 'leveldb' into ripple-fork 28fa222 Looks like a bit more delay is needed to smooth the latency. a18f3e6 Tidy up JobQueue, add ripple_core module 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) git-subtree-dir: Subtrees/leveldb git-subtree-split: ae6c2620b2ef3d5c69e63dc0eda865d6a39fa061

This commit does not contain any .proto files.

Commit:8a6d53a
Author:Vinnie Falco
Committer:Vinnie Falco

Tidy up database class files

Commit:7474c17
Author:Vinnie Falco

Rename ripple namespace used for protobuf to 'protocol'

Commit:7eff38c
Author:Vinnie Falco
Committer:Vinnie Falco

Rename LedgerAcquire to InboundLedger

Commit:521e812
Author:Vinnie Falco

Reformatting using AStyle

Commit:1f3314f
Author:JoelKatz
Committer:JoelKatz

Allow servers to explcitly vouch for correct signatures on transactions, proposals, and validations. This will allow cluster members to more safely distribute crypto work.

Commit:9c55b3b
Author:JoelKatz

Allow servers to explcitly vouch for correct signatures on transactions, proposals, and validations. This will allow cluster members to more safely distribute crypto work.

Commit:e2ca361
Author:Vinnie Falco

Squashed 'src/cpp/protobuf/' content from commit 29edac6 git-subtree-dir: src/cpp/protobuf git-subtree-split: 29edac6e7d78bdb050ed47adc79c9ac1ba22071e

Commit:d2e94db
Author:Vinnie Falco

Merge commit 'e2ca3615b30fc7e66d7647273295fbba81bfa0f2' as 'src/cpp/protobuf'

Commit:4c48041
Author:JoelKatz

Basic stuff needed to start merging.

Commit:aeccecb
Author:JoelKatz

ech pack stuff.

Commit:8a36820
Author:JoelKatz

Last part of the fetch pack code.

Commit:79ec8e6
Author:JoelKatz

First part of fetch acceleration changes. Includes a bugfix that I'll push to master.

Commit:ba79026
Author:JoelKatz

Handle pongs. Ready timer for ping timing.

Commit:dfccda5
Author:Arthur Britto

Announce --testnet in Hello.

Commit:ea94feb
Author:JoelKatz

Slots the PoW peer code will go into.