Skip to content

Commit 8d533a6

Browse files
authored
Merge pull request #1708 from evoskuil/master
Rename compute_filter_header to compute_filter and add override.
2 parents 36dfdbb + b4986d5 commit 8d533a6

File tree

3 files changed

+34
-24
lines changed

3 files changed

+34
-24
lines changed

include/bitcoin/system/wallet/neutrino.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,12 @@ struct BC_API block_filter
4141
BC_API bool compute_filter(data_chunk& out,
4242
const chain::block& block) NOEXCEPT;
4343

44-
BC_API hash_digest compute_filter_header(const hash_digest& previous_header,
44+
BC_API hash_digest compute_header(const hash_digest& previous_header,
4545
const data_chunk& filter) NOEXCEPT;
4646

47+
BC_API hash_digest compute_header(hash_digest& filter_hash,
48+
const hash_digest& previous_header, const data_chunk& filter) NOEXCEPT;
49+
4750
BC_API bool match_filter(const block_filter& filter,
4851
const chain::script& script) NOEXCEPT;
4952

src/wallet/neutrino.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,17 @@ bool compute_filter(data_chunk& out, const chain::block& block) NOEXCEPT
8181
return !!writer;
8282
}
8383

84-
hash_digest compute_filter_header(const hash_digest& previous_header,
84+
hash_digest compute_header(const hash_digest& previous_header,
8585
const data_chunk& filter) NOEXCEPT
8686
{
87-
return bitcoin_hash(splice(bitcoin_hash(filter), previous_header));
87+
return bitcoin_hash(bitcoin_hash(filter), previous_header);
88+
}
89+
90+
hash_digest compute_header(hash_digest& filter_hash,
91+
const hash_digest& previous_header, const data_chunk& filter) NOEXCEPT
92+
{
93+
filter_hash = bitcoin_hash(filter);
94+
return bitcoin_hash(filter_hash, previous_header);
8895
}
8996

9097
bool match_filter(const block_filter& filter,

test/wallet/neutrino.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -107,101 +107,101 @@ BOOST_AUTO_TEST_CASE(neutrino__compute__first_11_blocks__success)
107107
const chain::block block(data, true);
108108
data_chunk filter;
109109
BOOST_REQUIRE(neutrino::compute_filter(filter, block));
110-
const auto header = neutrino::compute_filter_header(previous_filter_header, filter);
110+
const auto header = neutrino::compute_header(previous_filter_header, filter);
111111
////std::cout << "header: " << encode_base16(header) << std::endl;
112112
////std::cout << "filter: " << encode_base16(filter) << std::endl;
113113
previous_filter_header = header;
114114
}
115115
}
116116

117-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_0__success)
117+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_0__success)
118118
{
119119
const auto expected = base16_hash("21584579b7eb08997773e5aeff3a7f932700042d0ed2a6129012b7d7ae81b750");
120120
const auto previous_header = base16_hash("0000000000000000000000000000000000000000000000000000000000000000");
121121
const auto filter = base16_chunk("019dfca8");
122-
const auto result = neutrino::compute_filter_header(previous_header, filter);
122+
const auto result = neutrino::compute_header(previous_header, filter);
123123
BOOST_REQUIRE_EQUAL(result, expected);
124124
}
125125

126-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_2__success)
126+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_2__success)
127127
{
128128
const auto expected = base16_hash("186afd11ef2b5e7e3504f2e8cbf8df28a1fd251fe53d60dff8b1467d1b386cf0");
129129
const auto previous_header = base16_hash("d7bdac13a59d745b1add0d2ce852f1a0442e8945fc1bf3848d3cbffd88c24fe1");
130130
const auto filter = base16_chunk("0174a170");
131-
const auto result = neutrino::compute_filter_header(previous_header, filter);
131+
const auto result = neutrino::compute_header(previous_header, filter);
132132
BOOST_REQUIRE_EQUAL(result, expected);
133133
}
134134

135-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_3__success)
135+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_3__success)
136136
{
137137
const auto expected = base16_hash("8d63aadf5ab7257cb6d2316a57b16f517bff1c6388f124ec4c04af1212729d2a");
138138
const auto previous_header = base16_hash("186afd11ef2b5e7e3504f2e8cbf8df28a1fd251fe53d60dff8b1467d1b386cf0");
139139
const auto filter = base16_chunk("016cf7a0");
140-
const auto result = neutrino::compute_filter_header(previous_header, filter);
140+
const auto result = neutrino::compute_header(previous_header, filter);
141141
BOOST_REQUIRE_EQUAL(result, expected);
142142
}
143143

144-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_15007__success)
144+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_15007__success)
145145
{
146146
const auto expected = base16_hash("07384b01311867949e0c046607c66b7a766d338474bb67f66c8ae9dbd454b20e");
147147
const auto previous_header = base16_hash("18b5c2b0146d2d09d24fb00ff5b52bd0742f36c9e65527abdb9de30c027a4748");
148148
const auto filter = base16_chunk("013c3710");
149-
const auto result = neutrino::compute_filter_header(previous_header, filter);
149+
const auto result = neutrino::compute_header(previous_header, filter);
150150
BOOST_REQUIRE_EQUAL(result, expected);
151151
}
152152

153-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_49291__success)
153+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_49291__success)
154154
{
155155
const auto expected = base16_hash("b6d98692cec5145f67585f3434ec3c2b3030182e1cb3ec58b855c5c164dfaaa3");
156156
const auto previous_header = base16_hash("ed47705334f4643892ca46396eb3f4196a5e30880589e4009ef38eae895d4a13");
157157
const auto filter = base16_chunk("0afbc2920af1b027f31f87b592276eb4c32094bb4d3697021b4c6380");
158-
const auto result = neutrino::compute_filter_header(previous_header, filter);
158+
const auto result = neutrino::compute_header(previous_header, filter);
159159
BOOST_REQUIRE_EQUAL(result, expected);
160160
}
161161

162-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_180480__success)
162+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_180480__success)
163163
{
164164
const auto expected = base16_hash("c582d51c0ca365e3fcf36c51cb646d7f83a67e867cb4743fd2128e3e022b700c");
165165
const auto previous_header = base16_hash("d34ef98386f413769502808d4bac5f20f8dfd5bffc9eedafaa71de0eb1f01489");
166166
const auto filter = base16_chunk("0db414c859a07e8205876354a210a75042d0463404913d61a8e068e58a3ae2aa080026");
167-
const auto result = neutrino::compute_filter_header(previous_header, filter);
167+
const auto result = neutrino::compute_header(previous_header, filter);
168168
BOOST_REQUIRE_EQUAL(result, expected);
169169
}
170170

171-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_926485__success)
171+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_926485__success)
172172
{
173173
const auto expected = base16_hash("546c574a0472144bcaf9b6aeabf26372ad87c7af7d1ee0dbfae5e099abeae49c");
174174
const auto previous_header = base16_hash("8f13b9a9c85611635b47906c3053ac53cfcec7211455d4cb0d63dc9acc13d472");
175175
const auto filter = base16_chunk("09027acea61b6cc3fb33f5d52f7d088a6b2f75d234e89ca800");
176-
const auto result = neutrino::compute_filter_header(previous_header, filter);
176+
const auto result = neutrino::compute_header(previous_header, filter);
177177
BOOST_REQUIRE_EQUAL(result, expected);
178178
}
179179

180-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_987876__success)
180+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_987876__success)
181181
{
182182
const auto expected = base16_hash("0965a544743bbfa36f254446e75630c09404b3d164a261892372977538928ed5");
183183
const auto previous_header = base16_hash("fe4d230dbb0f4fec9bed23a5283e08baf996e3f32b93f52c7de1f641ddfd04ad");
184184
const auto filter = base16_chunk("010c0b40");
185-
const auto result = neutrino::compute_filter_header(previous_header, filter);
185+
const auto result = neutrino::compute_header(previous_header, filter);
186186
BOOST_REQUIRE_EQUAL(result, expected);
187187
}
188188

189-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_1263442__success)
189+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_1263442__success)
190190
{
191191
const auto expected = base16_hash("4e6d564c2a2452065c205dd7eb2791124e0c4e0dbb064c410c24968572589dec");
192192
const auto previous_header = base16_hash("31d66d516a9eda7de865df29f6ef6cb8e4bf9309e5dac899968a9a62a5df61e3");
193193
const auto filter = base16_chunk("0385acb4f0fe889ef0");
194-
const auto result = neutrino::compute_filter_header(previous_header, filter);
194+
const auto result = neutrino::compute_header(previous_header, filter);
195195

196196
BOOST_REQUIRE_EQUAL(result, expected);
197197
}
198198

199-
BOOST_AUTO_TEST_CASE(neutrino__compute_filter_header__block_1414221__success)
199+
BOOST_AUTO_TEST_CASE(neutrino__compute_header__block_1414221__success)
200200
{
201201
const auto expected = base16_hash("021e8882ef5a0ed932edeebbecfeda1d7ce528ec7b3daa27641acf1189d7b5dc");
202202
const auto previous_header = base16_hash("5e5e12d90693c8e936f01847859404c67482439681928353ca1296982042864e");
203203
const auto filter = base16_chunk("00");
204-
const auto result = neutrino::compute_filter_header(previous_header, filter);
204+
const auto result = neutrino::compute_header(previous_header, filter);
205205
BOOST_REQUIRE_EQUAL(result, expected);
206206
}
207207

0 commit comments

Comments
 (0)