Boost 1.66 Not Supported for rippled 0.81.0
A warning to developers:
rippled versions 0.81.0 and earlier do not compile with the recently-released Boost library version 1.66.0. To compile
rippled yourself, Ripple recommends using Boost version 1.65.1. The minimum supported version of Boost is 1.58.0, which is included in the official repositories of Ubuntu 16.04 Xenial.
If you try to compile
rippled version 0.81.0 with Boost version 1.66.0 or higher, you get compiler errors such as the following:
In file included from src/beast/include/beast/core/detail/type_traits.hpp:13:0, from src/beast/include/beast/core/impl/static_string.ipp:12, from src/beast/include/beast/core/static_string.hpp:1106, from src/beast/include/beast/core/string_param.hpp:13, from src/beast/include/beast/http/fields.hpp:12, from src/beast/include/beast/http/message.hpp:12, from src/ripple/server/Handoff.h:24, from src/ripple/overlay/Overlay.h:26, from src/ripple/app/consensus/RCLConsensus.cpp:39, from src/ripple/unity/app_consensus.cpp:21: /usr/include/boost/asio/io_service.hpp:27:20: error: conflicting declaration ‘typedef class boost::asio::io_context boost::asio::io_service’ typedef io_context io_service;
If you encounter this issue, please downgrade to Boost version 1.65.1.
Boost 1.66.0 introduces the
Boost.Beast library for HTTP and WebSocket connections. The Beast library was built by prolific coder and Ripple alum Vinnie Falco as an add-on to the
Boost.Asio library, for use in
rippled and other C++ software. Because Beast made its start in the
rippled code base, the version already included in
rippled conflicts with the version included as part of the Boost library in versions 1.66.0 and higher.
Ripple expects to make
rippled compatible with Boost 1.66.0 and higher in a future release. At that time,
rippled will no longer be compatible with Boost version 1.65.x and lower. Stay tuned to
rippled release announcements for updates on this transition.