mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-19 18:15:50 +00:00
- 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.
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.