- Add Consensus::Result, which represents the result of the establish state and includes the consensus transaction set, final proposed position and disputes. - Add Consensus::Mode to track how we are participating in consensus and ensures the onAccept callback can distinguish when we entered the round with consensus versus when we recovered from a wrong ledger during a round. - Rename Consensus::Phase to Consensus::State and eliminate the processing phase. Instead, accept is a terminal phase which notifies RCLConsensus via onAccept callbacks. Even if clients dispatch accepting to another thread, all future calls except to startRound will not change the state of consensus. - Move validate_ status from Consensus to RCLConsensus, since generic implementation does not directly reference whether a node is validating or not. - Eliminate gotTxSetInternal and handle externally received TxSets distinct from locally generated positions. - Change ConsensusProposal::changePosition to always update the internal close time and position even if we have bowed out. This enforces the invariant that our proposal's position always matches our transaction set.
src
Some of these directories come from entire outside repositories brought in using git-subtree. This means that the source files are inserted directly into the rippled repository. They can be edited and committed just as if they were normal files.
However, if you create a commit that contains files both from a subtree, and from the ripple source tree please use care when designing the commit message, since it will appear in the subtree's individual repository when the changes are pushed back to the upstream.
When submitting pull request, make sure that any commits which include files from subtrees are isolated - i.e. do not mix files from subtrees and ripple in the same commit. This way, the commit message will make sense. We don't want to see "Fix pathfinding bug with XRP" appearing in the LevelDB or Beast commit log, for example.
About git-subtree:
https://github.com/apenwarr/git-subtree
http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/
| dir | What |
|---|---|
| beast | Beast, the amazing cross-platform library. git@github.com:vinniefalco/Beast.git |
./beast
Beast, the amazing cross-platform library.
Repository
git@github.com:vinniefalco/Beast.git
Branch
master
HyperLevelDB
Ripple's fork of HyperLevelDB
Repository
git@github.com:ripple/HyperLevelDB.git
Branch
ripple-fork
LevelDB
Ripple's fork of LevelDB.
Repository
git@github.com:ripple/LevelDB.git
Branch
ripple-fork
LightningDB (a.k.a. MDB)
Ripple's fork of MDB, a fast memory-mapped key value database system.
Repository
git@github.com:ripple/LightningDB.git
Branch
ripple-fork
websocket
Ripple's fork of websocketpp has some incompatible changes and Ripple specific includes.
Repository
git@github.com:ripple/websocketpp.git
Branch
ripple-fork
protobuf
Ripple's fork of protobuf. We've changed some names in order to support the unity-style of build (a single .cpp added to the project, instead of linking to a separately built static library).
Repository
git@github.com:ripple/protobuf.git
Branch
master
NOTE Linux builds use the protobuf installed in /usr/lib. This will be fixed in a future revision.
SQLite
Not technically a subtree but included here because it is a direct copy of the official SQLite distributions available here: