Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion builds/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ project( libbitcoin-node
LANGUAGES C CXX )


set( repository_root_dir "${CMAKE_CURRENT_SOURCE_DIR}/../../" )
set( repository_root_dir "${CMAKE_CURRENT_SOURCE_DIR}/../.." )

if ( MSVC )
set( CMAKE_STATIC_LIBRARY_PREFIX "lib" )
Expand Down
2 changes: 0 additions & 2 deletions builds/gnu/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ src_libbitcoin_node_la_SOURCES = \
${srcdir}/../../src/estimator.cpp \
${srcdir}/../../src/full_node.cpp \
${srcdir}/../../src/settings.cpp \
${srcdir}/../../src/validate.cpp \
${srcdir}/../../src/channels/channel_peer.cpp \
${srcdir}/../../src/chasers/chaser.cpp \
${srcdir}/../../src/chasers/chaser_block.cpp \
Expand Down Expand Up @@ -115,7 +114,6 @@ include_bitcoin_node_HEADERS = \
${srcdir}/../../include/bitcoin/node/events.hpp \
${srcdir}/../../include/bitcoin/node/full_node.hpp \
${srcdir}/../../include/bitcoin/node/settings.hpp \
${srcdir}/../../include/bitcoin/node/validate.hpp \
${srcdir}/../../include/bitcoin/node/version.hpp

include_bitcoin_node_channelsdir = \
Expand Down
2 changes: 1 addition & 1 deletion builds/gnu/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ AC_ARG_VAR([CC], "C compiler to use, such as gcc or clang")
AC_ARG_VAR([CXX], "C++ compiler to use, such as g++ or clang++")
AC_ARG_VAR([PKG_CONFIG_PATH], "Additional directories for package discovery.")

repository_root_dir="@abs_top_srcdir@/../.."
repository_root_dir=`cd "${srcdir}/../.." && pwd`

# Check for baseline language coverage in the compiler for the C++20 standard.
#------------------------------------------------------------------------------
Expand Down
2 changes: 0 additions & 2 deletions builds/msvc/vs2022/libbitcoin-node/libbitcoin-node.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@
<ClCompile Include="..\..\..\..\src\sessions\session_manual.cpp" />
<ClCompile Include="..\..\..\..\src\sessions\session_outbound.cpp" />
<ClCompile Include="..\..\..\..\src\settings.cpp" />
<ClCompile Include="..\..\..\..\src\validate.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h" />
Expand Down Expand Up @@ -219,7 +218,6 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\sessions\session_peer.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\sessions\sessions.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\settings.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\validate.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\version.hpp" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,6 @@
<ClCompile Include="..\..\..\..\src\settings.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\validate.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h">
Expand Down Expand Up @@ -347,9 +344,6 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\settings.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\validate.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\version.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
Expand Down
2 changes: 0 additions & 2 deletions builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@
<ClCompile Include="..\..\..\..\src\sessions\session_manual.cpp" />
<ClCompile Include="..\..\..\..\src\sessions\session_outbound.cpp" />
<ClCompile Include="..\..\..\..\src\settings.cpp" />
<ClCompile Include="..\..\..\..\src\validate.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h" />
Expand Down Expand Up @@ -219,7 +218,6 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\sessions\session_peer.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\sessions\sessions.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\settings.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\validate.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\version.hpp" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,6 @@
<ClCompile Include="..\..\..\..\src\settings.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\validate.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h">
Expand Down Expand Up @@ -347,9 +344,6 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\settings.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\validate.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\version.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
Expand Down
1 change: 0 additions & 1 deletion include/bitcoin/node.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
#include <bitcoin/node/events.hpp>
#include <bitcoin/node/full_node.hpp>
#include <bitcoin/node/settings.hpp>
#include <bitcoin/node/validate.hpp>
#include <bitcoin/node/version.hpp>
#include <bitcoin/node/channels/channel.hpp>
#include <bitcoin/node/channels/channel_peer.hpp>
Expand Down
22 changes: 18 additions & 4 deletions include/bitcoin/node/chasers/chaser_transaction.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,29 @@ class BCN_API chaser_transaction

code start() NOEXCEPT override;

virtual void store(const system::chain::transaction::cptr& block) NOEXCEPT;
/// Validate and archive a submitted package, accepted as a whole.
/// The package is only validated when test, so nothing is archived.
virtual void submit(const system::chain::transactions_cptr& txs,
bool test, submit_handler&& handler) NOEXCEPT;

protected:
virtual bool handle_chase(const code& ec, chase event_,
event_value value) NOEXCEPT;

virtual void do_confirmed(header_t link) NOEXCEPT;
virtual void do_store(
const system::chain::transaction::cptr& header) NOEXCEPT;
virtual void do_submit(const system::chain::transactions_cptr& txs,
bool test, const submit_handler& handler) NOEXCEPT;

/// Recompute the pool context, closing the pool if not current.
virtual void do_bump() NOEXCEPT;

private:
code validate(size_t& index,
const system::chain::transaction_cptrs& txs) NOEXCEPT;
code validate(const system::chain::transaction& tx) NOEXCEPT;

// These are protected by strand.
system::chain::context pool_{};
bool pooling_{};
};

} // namespace node
Expand Down
1 change: 1 addition & 0 deletions include/bitcoin/node/define.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ typedef std::function<void(const code&, uint64_t)> estimate_handler;

/// Organization types.
typedef std::function<void(const code&, size_t)> organize_handler;
typedef std::function<void(const code&, size_t)> submit_handler;
typedef database::store<database::mmap> store;
typedef database::query<store> query;

Expand Down
5 changes: 5 additions & 0 deletions include/bitcoin/node/error.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ enum error_t : uint8_t
duplicate_block,
duplicate_header,

/// transaction pool
pooling_disabled,
empty_package,

/// fee estimation
estimate_disabled,
estimate_premature,
Expand Down Expand Up @@ -105,6 +109,7 @@ enum error_t : uint8_t
confirm10,
confirm11,
confirm12,
transaction1,
estimates_initialize,
estimates_push1,
estimates_push2,
Expand Down
5 changes: 5 additions & 0 deletions include/bitcoin/node/full_node.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ class BCN_API full_node
virtual void prioritize(const system::hash_digest& hash,
organize_handler&& handler) NOEXCEPT;

/// Validate and archive a submitted package, accepted as a whole.
/// The package is only validated when test, so nothing is archived.
virtual void submit(const system::chain::transactions_cptr& txs,
bool test, submit_handler&& handler) NOEXCEPT;

/// Manage download queue.
virtual void get_hashes(map_handler&& handler) NOEXCEPT;
virtual void put_hashes(const map_ptr& map,
Expand Down
5 changes: 5 additions & 0 deletions include/bitcoin/node/protocols/protocol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@ class BCN_API protocol
virtual void prioritize(const system::hash_digest& hash,
organize_handler&& handler) NOEXCEPT;

/// Validate and archive a submitted package, accepted as a whole.
/// The package is only validated when test, so nothing is archived.
virtual void submit(const system::chain::transactions_cptr& txs,
bool test, submit_handler&& handler) NOEXCEPT;

/// Events subscription.
/// -----------------------------------------------------------------------

Expand Down
24 changes: 0 additions & 24 deletions include/bitcoin/node/protocols/protocol_transaction_out_106.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ class BCN_API protocol_transaction_out_106
const network::channel::ptr& channel) NOEXCEPT
: node::protocol_peer(session, channel),
node_witness_(session->node_settings().provide_witness),
broadcast_(maximum_retained),
network::tracker<protocol_transaction_out_106>(session->log)
{
}
Expand All @@ -55,10 +54,6 @@ class BCN_API protocol_transaction_out_106
/// Process tx announcement.
virtual bool do_announce(transaction_t link) NOEXCEPT;

virtual bool handle_broadcast_transaction(const code& ec,
const network::messages::peer::transaction::cptr& message,
uint64_t sender) NOEXCEPT;

virtual bool handle_receive_get_data(const code& ec,
const network::messages::peer::get_data::cptr& message) NOEXCEPT;
virtual void send_transaction(const code& ec, size_t index,
Expand All @@ -71,28 +66,9 @@ class BCN_API protocol_transaction_out_106

virtual bool announce(const system::hash_digest& hash) NOEXCEPT;

/// Retain a broadcast tx, pending request by the peer.
virtual void retain(const system::hash_digest& hash,
const system::chain::transaction::cptr& tx) NOEXCEPT;

/// Obtain and drop a retained tx, or nullptr.
virtual system::chain::transaction::cptr release(
const system::hash_digest& hash) NOEXCEPT;

private:
using retained_t = std::pair<system::hash_digest,
system::chain::transaction::cptr>;
using retained_txs = boost::circular_buffer<retained_t>;

static constexpr size_t maximum_retained = 42;

retained_txs::iterator find(const system::hash_digest& hash) NOEXCEPT;

// These are thread safe.
const bool node_witness_;

// This is protected by strand.
retained_txs broadcast_;
};

} // namespace node
Expand Down
5 changes: 5 additions & 0 deletions include/bitcoin/node/sessions/session.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ class BCN_API session
virtual void prioritize(const system::hash_digest& hash,
organize_handler&& handler) NOEXCEPT;

/// Validate and archive a submitted package, accepted as a whole.
/// The package is only validated when test, so nothing is archived.
virtual void submit(const system::chain::transactions_cptr& txs,
bool test, submit_handler&& handler) NOEXCEPT;

/// Manage download queue.
virtual void get_hashes(map_handler&& handler) NOEXCEPT;
virtual void put_hashes(const map_ptr& map,
Expand Down
40 changes: 0 additions & 40 deletions include/bitcoin/node/validate.hpp

This file was deleted.

Loading