mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-04 19:25:51 +00:00
This is a substantial refactor of the consensus code and also introduces a basic consensus simulation and testing framework. The new generic/templated version is in src/ripple/consensus and documents the current type requirements. The version adapted for the RCL is in src/ripple/app/consensus. The testing framework is in src/test/csf. Minor behavioral changes/fixes include: * Adjust close time offset even when not validating. * Remove spurious proposing_ = false call at end of handleLCL. * Remove unused functionality provided by checkLastValidation. * Separate open and converge time * Don't send a bow out if we're not proposing * Prevent consensus stopping if NetworkOPs switches to disconnect mode while consensus accepts a ledger * Prevent a corner case in which Consensus::gotTxSet or Consensus::peerProposal has the potential to update internal state while an dispatched accept job is running. * Distinguish external and internal calls to startNewRound. Only external calls can reset the proposing_ state of consensus
Building documentation
Specifying Files
To specify the source files for which to build documentation, modify INPUT
and its related fields in docs/source.dox. Note that the INPUT paths are
relative to the docs/ directory.
Install Dependencies
Windows
Install these dependencies:
- Install Doxygen
- Download the following zip files from xsltproc
(Alternate download: ftp://ftp.zlatkovic.com/libxml/),
and extract the
bin\folder contents into any folder in your path.
- iconv
- libxml2
- libxslt
- zlib
- Download Boost
- Extract the compressed file contents to your (new)
$BOOST_ROOTlocation. - Open a command prompt or shell in the
$BOOST_ROOT. ./bootstrap.bat- (Optional, if you also plan to build rippled)
./bjam.exe --toolset=msvc-14.0 --build-type=complete variant=debug,release link=static runtime-link=static address-model=64 stage - If it is not already there, add your
$BOOST_ROOTto your environment$PATH.
MacOS
- Install doxygen:
- Use homebrew to install:
brew install doxygen. The executable will be installed in/usr/local/binwhich is already in your path. - Alternatively, install from here: doxygen.
You'll then need to make doxygen available to your command line. You can
do this by adding a symbolic link from
/usr/local/binto the doxygen executable. For example,$ ln -s /Applications/Doxygen.app/Contents/Resources/doxygen /usr/local/bin/doxygen
- Install Boost
- Extract the compressed file contents to your (new)
$BOOST_ROOTlocation. - Open a command prompt or shell in the
$BOOST_ROOT. $ ./bootstrap.bat- (Optional, if you also plan to build rippled)
$ ./b2 toolset=clang threading=multi runtime-link=static link=static cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" adress-model=64 - If it is not already there, add your
$BOOST_ROOTto your environment$PATH. This makes theb2command available to the command line. - That should be all that's required. In OS X 10.11, at least, libxml2 and libxslt come pre-installed.
Linux
- Install Docker
- Build Docker image. From the rippled root folder:
sudo docker build -t rippled-docs docs/
Setup project submodules
- Open a shell in your rippled root folder.
git submodule initgit submodule update docs/docca
Do it
Windows & MacOS
From the rippled root folder:
cd docs
./makeqbk.sh && b2
The output will be in docs/html.
Linux
From the rippled root folder:
sudo docker run -v $PWD:/opt/rippled --rm rippled-docs
The output will be in docs/html.