Skip to content

Commit

Permalink
Implement a simple HTTP(s) and Websocket stack/interface for
Browse files Browse the repository at this point in the history
libbitcoin subscriptions and query services, which extend existing
zeromq services.

Allow mbedtls to be conditionally compiled, which allows optional SSL
support.

Re-generate build artifacts.
  • Loading branch information
thecodefactory committed Oct 6, 2018
1 parent 7f8beaa commit d08d0e4
Show file tree
Hide file tree
Showing 47 changed files with 5,523 additions and 167 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,7 @@ libobelisk.pc

/src/bitcoin_server

build-libbitcoin-server
console/bs
libbitcoin-server.pc

6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ script:
# Download and build libbitcoin-server and all dependencies.
- if [[ $OSX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --without-consensus --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix; fi
- if [[ $LINUX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
- if [[ $LINUX && $GCC && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --disable-shared --build-dir=my-build --prefix=$TRAVIS_BUILD_DIR/my-prefix --with-bash-completiondir=$TRAVIS_BUILD_DIR/my-prefix/share/bash-completion/completions CFLAGS='-Og -g --coverage' CXXFLAGS='-Og -g --coverage'; fi
- if [[ $OSX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-zmq --disable-static --with-bash-completiondir; fi
- if [[ $LINUX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --disable-ndebug --disable-static --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
- if [[ $LINUX && $GCC && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --build-mbedtls --disable-shared --build-dir=my-build --prefix=$TRAVIS_BUILD_DIR/my-prefix --with-bash-completiondir=$TRAVIS_BUILD_DIR/my-prefix/share/bash-completion/completions CFLAGS='-Og -g --coverage' CXXFLAGS='-Og -g --coverage'; fi
- if [[ $OSX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-zmq --build-mbedtls --disable-static --with-bash-completiondir; fi
- if [[ $LINUX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --build-mbedtls --disable-ndebug --disable-static --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
- if [[ $LINUX && $GCC && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --without-consensus --disable-static --build-boost --build-zmq --with-bash-completiondir=$TRAVIS_BUILD_DIR/my-prefix/share/bash-completion/completions --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os -s' CXXFLAGS='-Os -s'; fi

after_success:
Expand Down
34 changes: 28 additions & 6 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ doc_DATA = \
# src/libbitcoin-server.la => ${libdir}
#------------------------------------------------------------------------------
lib_LTLIBRARIES = src/libbitcoin-server.la
src_libbitcoin_server_la_CPPFLAGS = -I${srcdir}/include -DSYSCONFDIR=\"${sysconfdir}\" ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS}
src_libbitcoin_server_la_LIBADD = ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS}
src_libbitcoin_server_la_CPPFLAGS = -I${srcdir}/include -DSYSCONFDIR=\"${sysconfdir}\" ${mbedtls} ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS} ${mbedtls_BUILD_CPPFLAGS}
src_libbitcoin_server_la_LIBADD = ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS} ${mbedtls_LIBS}
src_libbitcoin_server_la_SOURCES = \
src/configuration.cpp \
src/parser.cpp \
Expand All @@ -50,6 +50,19 @@ src_libbitcoin_server_la_SOURCES = \
src/services/heartbeat_service.cpp \
src/services/query_service.cpp \
src/services/transaction_service.cpp \
src/web/block_socket.cpp \
src/web/heartbeat_socket.cpp \
src/web/json_string.cpp \
src/web/query_socket.cpp \
src/web/socket.cpp \
src/web/transaction_socket.cpp \
src/web/http/connection.cpp \
src/web/http/connection.hpp \
src/web/http/http.hpp \
src/web/http/manager.cpp \
src/web/http/manager.hpp \
src/web/http/utilities.cpp \
src/web/http/utilities.hpp \
src/workers/authenticator.cpp \
src/workers/notification_worker.cpp \
src/workers/query_worker.cpp
Expand All @@ -61,8 +74,8 @@ if WITH_TESTS
TESTS = libbitcoin-server-test_runner.sh

check_PROGRAMS = test/libbitcoin-server-test
test_libbitcoin_server_test_CPPFLAGS = -I${srcdir}/include ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS}
test_libbitcoin_server_test_LDADD = src/libbitcoin-server.la ${boost_unit_test_framework_LIBS} ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS}
test_libbitcoin_server_test_CPPFLAGS = -I${srcdir}/include ${mbedtls} ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS} ${mbedtls_BUILD_CPPFLAGS}
test_libbitcoin_server_test_LDADD = src/libbitcoin-server.la ${boost_unit_test_framework_LIBS} ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS} ${mbedtls_LIBS}
test_libbitcoin_server_test_SOURCES = \
test/main.cpp \
test/server.cpp \
Expand All @@ -75,8 +88,8 @@ endif WITH_TESTS
if WITH_CONSOLE

bin_PROGRAMS = console/bs
console_bs_CPPFLAGS = -I${srcdir}/include ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS}
console_bs_LDADD = src/libbitcoin-server.la ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS}
console_bs_CPPFLAGS = -I${srcdir}/include ${mbedtls} ${bitcoin_protocol_BUILD_CPPFLAGS} ${bitcoin_node_BUILD_CPPFLAGS} ${mbedtls_BUILD_CPPFLAGS}
console_bs_LDADD = src/libbitcoin-server.la ${bitcoin_protocol_LIBS} ${bitcoin_node_LIBS} ${mbedtls_LIBS}
console_bs_SOURCES = \
console/executor.cpp \
console/executor.hpp \
Expand Down Expand Up @@ -119,6 +132,15 @@ include_bitcoin_server_services_HEADERS = \
include/bitcoin/server/services/query_service.hpp \
include/bitcoin/server/services/transaction_service.hpp

include_bitcoin_server_webdir = ${includedir}/bitcoin/server/web
include_bitcoin_server_web_HEADERS = \
include/bitcoin/server/web/block_socket.hpp \
include/bitcoin/server/web/heartbeat_socket.hpp \
include/bitcoin/server/web/json_string.hpp \
include/bitcoin/server/web/query_socket.hpp \
include/bitcoin/server/web/socket.hpp \
include/bitcoin/server/web/transaction_socket.hpp

include_bitcoin_server_workersdir = ${includedir}/bitcoin/server/workers
include_bitcoin_server_workers_HEADERS = \
include/bitcoin/server/workers/authenticator.hpp \
Expand Down
19 changes: 19 additions & 0 deletions builds/msvc/vs2013/libbitcoin-server/libbitcoin-server.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,15 @@
<ClCompile Include="..\..\..\..\src\services\query_service.cpp" />
<ClCompile Include="..\..\..\..\src\services\transaction_service.cpp" />
<ClCompile Include="..\..\..\..\src\settings.cpp" />
<ClCompile Include="..\..\..\..\src\web\block_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\heartbeat_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\connection.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\manager.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\utilities.cpp" />
<ClCompile Include="..\..\..\..\src\web\json_string.cpp" />
<ClCompile Include="..\..\..\..\src\web\query_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\transaction_socket.cpp" />
<ClCompile Include="..\..\..\..\src\workers\authenticator.cpp" />
<ClCompile Include="..\..\..\..\src\workers\notification_worker.cpp" />
<ClCompile Include="..\..\..\..\src\workers\query_worker.cpp" />
Expand All @@ -111,9 +120,19 @@
<ClInclude Include="..\..\..\..\include\bitcoin\server\services\transaction_service.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\settings.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\version.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\block_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\heartbeat_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\json_string.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\query_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\transaction_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\authenticator.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\notification_worker.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\query_worker.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\connection.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\http.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\manager.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\utilities.hpp" />
<ClInclude Include="..\..\resource.h" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,31 @@
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="include">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000005}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000007}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000006}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000008}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000007}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000009}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server\interface">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000008}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000A}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server\messages">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000009}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000B}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server\services">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000A}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000C}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server\web">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000D}</UniqueIdentifier>
</Filter>
<Filter Include="include\bitcoin\server\workers">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000B}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000E}</UniqueIdentifier>
</Filter>
<Filter Include="resource">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000C}</UniqueIdentifier>
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-00000000000F}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000000}</UniqueIdentifier>
Expand All @@ -43,9 +46,15 @@
<Filter Include="src\services">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000003}</UniqueIdentifier>
</Filter>
<Filter Include="src\workers">
<Filter Include="src\web">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000004}</UniqueIdentifier>
</Filter>
<Filter Include="src\web\http">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000006}</UniqueIdentifier>
</Filter>
<Filter Include="src\workers">
<UniqueIdentifier>{73CE0AC2-ECB2-4E8D-0000-000000000005}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\configuration.cpp">
Expand Down Expand Up @@ -93,6 +102,33 @@
<ClCompile Include="..\..\..\..\src\settings.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\block_socket.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\heartbeat_socket.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\http\connection.cpp">
<Filter>src\web\http</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\http\manager.cpp">
<Filter>src\web\http</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\http\utilities.cpp">
<Filter>src\web\http</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\json_string.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\query_socket.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\socket.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\web\transaction_socket.cpp">
<Filter>src\web</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\workers\authenticator.cpp">
<Filter>src\workers</Filter>
</ClCompile>
Expand Down Expand Up @@ -158,6 +194,24 @@
<ClInclude Include="..\..\..\..\include\bitcoin\server\version.hpp">
<Filter>include\bitcoin\server</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\block_socket.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\heartbeat_socket.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\json_string.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\query_socket.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\socket.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\transaction_socket.hpp">
<Filter>include\bitcoin\server\web</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\authenticator.hpp">
<Filter>include\bitcoin\server\workers</Filter>
</ClInclude>
Expand All @@ -167,6 +221,18 @@
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\query_worker.hpp">
<Filter>include\bitcoin\server\workers</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\web\http\connection.hpp">
<Filter>src\web\http</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\web\http\http.hpp">
<Filter>src\web\http</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\web\http\manager.hpp">
<Filter>src\web\http</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\web\http\utilities.hpp">
<Filter>src\web\http</Filter>
</ClInclude>
<ClInclude Include="..\..\resource.h">
<Filter>resource</Filter>
</ClInclude>
Expand Down
19 changes: 19 additions & 0 deletions builds/msvc/vs2015/libbitcoin-server/libbitcoin-server.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,15 @@
<ClCompile Include="..\..\..\..\src\services\query_service.cpp" />
<ClCompile Include="..\..\..\..\src\services\transaction_service.cpp" />
<ClCompile Include="..\..\..\..\src\settings.cpp" />
<ClCompile Include="..\..\..\..\src\web\block_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\heartbeat_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\connection.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\manager.cpp" />
<ClCompile Include="..\..\..\..\src\web\http\utilities.cpp" />
<ClCompile Include="..\..\..\..\src\web\json_string.cpp" />
<ClCompile Include="..\..\..\..\src\web\query_socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\socket.cpp" />
<ClCompile Include="..\..\..\..\src\web\transaction_socket.cpp" />
<ClCompile Include="..\..\..\..\src\workers\authenticator.cpp" />
<ClCompile Include="..\..\..\..\src\workers\notification_worker.cpp" />
<ClCompile Include="..\..\..\..\src\workers\query_worker.cpp" />
Expand All @@ -111,9 +120,19 @@
<ClInclude Include="..\..\..\..\include\bitcoin\server\services\transaction_service.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\settings.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\version.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\block_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\heartbeat_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\json_string.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\query_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\web\transaction_socket.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\authenticator.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\notification_worker.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\server\workers\query_worker.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\connection.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\http.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\manager.hpp" />
<ClInclude Include="..\..\..\..\src\web\http\utilities.hpp" />
<ClInclude Include="..\..\resource.h" />
</ItemGroup>
<ItemGroup>
Expand Down
Loading

0 comments on commit d08d0e4

Please sign in to comment.