Rippled-compatible signing and serialization library
C++ library to create, sign, and serialize
Ripple transactions
before submission to the Ripple Consensus Ledger
(rippled).
Duplicates much of the functionality of the
sign
RPC function without the overhead of a JSON library,
network delays, needing to trust a 3rd party's rippled,
nor needing to run your own rippled.
ripple-libpp includes a git submodule to include the rippled source code, which is not cloned by default. To get the rippled source, either clone this repository using
$ git clone --recursive <location>
or after cloning, run the following commands
$ git submodule init
$ git submodule update
Note: even though the entire rippled source tree is included in the submodule, only a subset of it is used by the library.
CMake project installation example:
-
Copy, clone, or submodule the library into your project, eg:
/ My Project / extras / ripple-libpp **library tree** / src **program tree** CMakeLists.txt
-
Edit your
CMakeLists.txt
file to include the necessary unity source files, external libraries, and include directories:... # Rippled cmake function library include(extras/ripple-libpp/extras/rippled/CMakeFuncs.cmake) # Include paths include_directories( ${YOUR_OTHER_INCLUDES} extras/ripple-libpp/extras/rippled/src extras/ripple-libpp/extras/rippled/src/srcp256k1 extras/ripple-libpp/extras/rippled/src/ed25519-donna extras/ripple-libpp/extras/rippled/src/beast/include extras/ripple-libpp/extras/rippled/src/beast/extras ) # Source files add_executable(${YOUR_APP_NAME} ${YOUR_SOURCE_FILES} extras/ripple-libpp/src/unity/ripple-libpp.cpp extras/ripple-libpp/extras/rippled/src/ripple/unity/ed25519.c ) # Boost library (if not already included) find_boost( regex system thread) target_link_libraries(${YOUR_APP_NAME} ${Boost_LIBRARIES}) # OpenSSL library (if not already included) set(openssl_min 1.0.2) find_openssl(${openssl_min}) target_link_libraries(${YOUR_APP_NAME} ${OPENSSL_LIBRARIES}) ...
Some code examples are provided in src/test/ripple-libpp_demo.cpp
to demonstrate how to create, sign, and verify the signature of a
transaction. Building and running this demo is an optional step to
verify that dependencies are installed and available as expected.
Note that the demo is not a comprehensive suite of tests of the relevent rippled functionality; that is covered by rippled's unit tests.
In addition to the Usage dependencies, building the demo requires
For linux and other unix-like OSes, run the following commands:
$ cd ${YOUR_RIPPLE_LIBPP_DIRECTORY}
$ mkdir -p build/gcc.debug
$ cd build/gcc.debug
$ cmake ../..
$ cmake --build .
$ ./ripplelibppdemo
For 64-bit Windows, open a MSBuild Command Prompt for Visual Studio and run the following commands:
> cd %YOUR_RIPPLE_LIBPP_DIRECTORY%
> mkdir build
> cd build
> cmake -G"Visual Studio 14 2015 Win64" ..
> cmake --build .
> .\Debug\ripplelibppdemo.exe
32-bit Windows builds are not officially supported.