Skip to content

Commit 4c9831d

Browse files
committed
Stub in electrum and stratum_v1 protocol handlers.
1 parent 161c714 commit 4c9831d

File tree

12 files changed

+163
-19
lines changed

12 files changed

+163
-19
lines changed

Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ src_libbitcoin_node_la_SOURCES = \
6464
src/protocols/protocol_block_in_31800.cpp \
6565
src/protocols/protocol_block_out_106.cpp \
6666
src/protocols/protocol_block_out_70012.cpp \
67+
src/protocols/protocol_electrum.cpp \
6768
src/protocols/protocol_explore.cpp \
6869
src/protocols/protocol_filter_out_70015.cpp \
6970
src/protocols/protocol_header_in_31800.cpp \
@@ -75,6 +76,7 @@ src_libbitcoin_node_la_SOURCES = \
7576
src/protocols/protocol_observer.cpp \
7677
src/protocols/protocol_peer.cpp \
7778
src/protocols/protocol_performer.cpp \
79+
src/protocols/protocol_stratum_v1.cpp \
7880
src/protocols/protocol_transaction_in_106.cpp \
7981
src/protocols/protocol_transaction_out_106.cpp \
8082
src/sessions/session.cpp \

builds/cmake/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ add_library( ${CANONICAL_LIB_NAME}
276276
"../../src/protocols/protocol_block_in_31800.cpp"
277277
"../../src/protocols/protocol_block_out_106.cpp"
278278
"../../src/protocols/protocol_block_out_70012.cpp"
279+
"../../src/protocols/protocol_electrum.cpp"
279280
"../../src/protocols/protocol_explore.cpp"
280281
"../../src/protocols/protocol_filter_out_70015.cpp"
281282
"../../src/protocols/protocol_header_in_31800.cpp"
@@ -287,6 +288,7 @@ add_library( ${CANONICAL_LIB_NAME}
287288
"../../src/protocols/protocol_observer.cpp"
288289
"../../src/protocols/protocol_peer.cpp"
289290
"../../src/protocols/protocol_performer.cpp"
291+
"../../src/protocols/protocol_stratum_v1.cpp"
290292
"../../src/protocols/protocol_transaction_in_106.cpp"
291293
"../../src/protocols/protocol_transaction_out_106.cpp"
292294
"../../src/sessions/session.cpp"

builds/msvc/vs2022/libbitcoin-node/libbitcoin-node.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@
149149
<ClCompile Include="..\..\..\..\src\protocols\protocol_block_in_31800.cpp" />
150150
<ClCompile Include="..\..\..\..\src\protocols\protocol_block_out_106.cpp" />
151151
<ClCompile Include="..\..\..\..\src\protocols\protocol_block_out_70012.cpp" />
152+
<ClCompile Include="..\..\..\..\src\protocols\protocol_electrum.cpp" />
152153
<ClCompile Include="..\..\..\..\src\protocols\protocol_explore.cpp" />
153154
<ClCompile Include="..\..\..\..\src\protocols\protocol_filter_out_70015.cpp" />
154155
<ClCompile Include="..\..\..\..\src\protocols\protocol_header_in_31800.cpp" />
@@ -160,6 +161,7 @@
160161
<ClCompile Include="..\..\..\..\src\protocols\protocol_observer.cpp" />
161162
<ClCompile Include="..\..\..\..\src\protocols\protocol_peer.cpp" />
162163
<ClCompile Include="..\..\..\..\src\protocols\protocol_performer.cpp" />
164+
<ClCompile Include="..\..\..\..\src\protocols\protocol_stratum_v1.cpp" />
163165
<ClCompile Include="..\..\..\..\src\protocols\protocol_transaction_in_106.cpp" />
164166
<ClCompile Include="..\..\..\..\src\protocols\protocol_transaction_out_106.cpp" />
165167
<ClCompile Include="..\..\..\..\src\sessions\session.cpp" />

builds/msvc/vs2022/libbitcoin-node/libbitcoin-node.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@
147147
<ClCompile Include="..\..\..\..\src\protocols\protocol_block_out_70012.cpp">
148148
<Filter>src\protocols</Filter>
149149
</ClCompile>
150+
<ClCompile Include="..\..\..\..\src\protocols\protocol_electrum.cpp">
151+
<Filter>src\protocols</Filter>
152+
</ClCompile>
150153
<ClCompile Include="..\..\..\..\src\protocols\protocol_explore.cpp">
151154
<Filter>src\protocols</Filter>
152155
</ClCompile>
@@ -180,6 +183,9 @@
180183
<ClCompile Include="..\..\..\..\src\protocols\protocol_performer.cpp">
181184
<Filter>src\protocols</Filter>
182185
</ClCompile>
186+
<ClCompile Include="..\..\..\..\src\protocols\protocol_stratum_v1.cpp">
187+
<Filter>src\protocols</Filter>
188+
</ClCompile>
183189
<ClCompile Include="..\..\..\..\src\protocols\protocol_transaction_in_106.cpp">
184190
<Filter>src\protocols</Filter>
185191
</ClCompile>

include/bitcoin/node/interfaces/electrum.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ struct electrum_methods
8686
using server_peers_subscribe = at<19>;
8787
using server_ping = at<20>;
8888
using server_version = at<21>;
89-
90-
////using subscribers = unsubscriber<external_t<decltype(methods)>>;
9189
};
9290

9391
} // namespace interface

include/bitcoin/node/protocols/protocol_electrum.hpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,24 @@ class BCN_API protocol_electrum
3434
{
3535
public:
3636
typedef std::shared_ptr<protocol_electrum> ptr;
37+
using rpc_interface = interface::electrum;
3738

3839
inline protocol_electrum(const auto& session,
3940
const network::channel::ptr& channel,
4041
const options_t& options) NOEXCEPT
41-
: node::protocol_rpc<interface::electrum>(session, channel, options),
42+
: node::protocol_rpc<rpc_interface>(session, channel, options),
4243
network::tracker<protocol_electrum>(session->log)
4344
{
4445
}
4546

46-
/// Public start is required.
47-
inline void start() NOEXCEPT override
48-
{
49-
node::protocol_rpc<interface::electrum>::start();
50-
}
47+
void start() NOEXCEPT override;
48+
49+
protected:
50+
/// Handlers.
51+
bool handle_blockchain_headers_subscribe(const code& ec,
52+
rpc_interface::blockchain_headers_subscribe) NOEXCEPT;
53+
bool handle_blockchain_relayfee(const code& ec,
54+
rpc_interface::blockchain_relayfee) NOEXCEPT;
5155
};
5256

5357
} // namespace node

include/bitcoin/node/protocols/protocol_stratum_v1.hpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,22 @@ class BCN_API protocol_stratum_v1
3333
{
3434
public:
3535
typedef std::shared_ptr<protocol_stratum_v1> ptr;
36+
using rpc_interface = interface::stratum_v1;
3637

3738
inline protocol_stratum_v1(const auto& session,
3839
const network::channel::ptr& channel,
3940
const options_t& options) NOEXCEPT
40-
: node::protocol_rpc<interface::stratum_v1>(session, channel, options),
41+
: node::protocol_rpc<rpc_interface>(session, channel, options),
4142
network::tracker<protocol_stratum_v1>(session->log)
4243
{
4344
}
4445

45-
/// Public start is required.
46-
inline void start() NOEXCEPT override
47-
{
48-
node::protocol_rpc<interface::stratum_v1>::start();
49-
}
46+
void start() NOEXCEPT override;
47+
48+
protected:
49+
/// Handlers.
50+
bool handle_mining_extranonce_subscribe(const code& ec,
51+
rpc_interface::mining_extranonce_subscribe) NOEXCEPT;
5052
};
5153

5254
} // namespace node

include/bitcoin/node/protocols/protocol_stratum_v2.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class BCN_API protocol_stratum_v2
4444
{
4545
}
4646

47-
/// Public start is required.
47+
// TODO: subscribe to and handle messages.
4848
inline void start() NOEXCEPT override
4949
{
5050
network::protocol::start();

src/protocols/protocol_bitcoind_rest.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ BC_PUSH_WARNING(NO_VALUE_OR_CONST_REF_SHARED_PTR)
4444

4545
void protocol_bitcoind_rest::start() NOEXCEPT
4646
{
47-
using namespace std::placeholders;
48-
4947
BC_ASSERT(stranded());
5048

5149
if (started())

src/protocols/protocol_bitcoind_rpc.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ BC_PUSH_WARNING(NO_VALUE_OR_CONST_REF_SHARED_PTR)
4242

4343
void protocol_bitcoind_rpc::start() NOEXCEPT
4444
{
45-
using namespace std::placeholders;
46-
4745
BC_ASSERT(stranded());
4846

4947
if (started())

0 commit comments

Comments
 (0)