Alfredo Garcia
454e75e7c0
Rename old references to BlockHeaderHash and BlockHeight ( #1002 )
...
* rename some references
* Apply suggestions from code review
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: teor <teor@riseup.net>
2020-09-04 15:40:48 -07:00
Jane Lusby
96c8809348
Implement Inventory Tracking RFC ( #963 )
...
* Add .cargo to the gitignore file
* Implement Inventory Tracking RFC
* checkpoint
* wire together the inventory registry
* add comment documenting condition
* make inventory registry optional
2020-09-01 14:28:54 -07:00
Henry de Valence
ebdceb5197
chain: rename TransactionHash to transaction::Hash
2020-08-17 11:46:34 -07:00
Henry de Valence
2712c4b72a
chain: rename BlockHeader to block::Header
2020-08-17 11:46:34 -07:00
Henry de Valence
103b663c40
chain: rename BlockHeight to block::Height
2020-08-17 11:46:34 -07:00
Henry de Valence
61dea90e2f
chain: rename BlockHeaderHash to block::Hash
...
This is the first in a sequence of changes that change the block:: items
to not include Block as a prefix in their name, in accordance with the
Rust API guidelines.
2020-08-17 11:46:34 -07:00
Henry de Valence
948b067808
chain: move Network, NetworkUpgrade to parameters
...
Also, avoid using star-imports of the enum variants, which pollutes the
namespace.
2020-08-17 11:46:34 -07:00
Henry de Valence
dad6340cd3
chain: move BlockHeight into block
2020-08-17 11:46:34 -07:00
Henry de Valence
b36fe8f937
chain: move sha256d to serialization module.
...
This extracts the SHA256d code from being split across two modules and puts it
in one module, under serialization.
The code is unchanged except for three deleted tests:
* `sha256d_flush` in `sha256d_writer` (not a meaningful test);
* `transactionhash_debug` (constructs an invalid transaction hash, and the
behavior is tested in the next test);
* `decode_state_debug` (we do not need to test the Debug output of
DecodeState);
2020-08-17 11:46:34 -07:00
Alfredo Garcia
b41e33e066
Bytes read and bytes written metrics ( #901 )
...
* add bytes read and written metrics
* Apply suggestions from code review
Co-authored-by: Jane Lusby <jlusby42@gmail.com>
* store address as string
* Apply suggestions from code review
Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>
* change addr to label
Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>
* remove newline
Co-authored-by: Jane Lusby <jlusby42@gmail.com>
Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>
2020-08-14 15:50:26 -07:00
teor
ee6f0de14d
refactor: Move NetworkUpgrade to zebra-chain
2020-08-10 18:54:42 +10:00
teor
536668f993
fix: allow(dead_code) on some protocol version functions
2020-07-28 22:10:20 -04:00
teor
993532b604
feature: Add a "Genesis" network upgrade
...
We can use this network upgrade to implement different consensus rules
and chain context handling for genesis blocks.
Part of the chain state design in #682 .
2020-07-27 14:03:14 -04:00
teor
da09965a5f
feature: Get the current minimum protocol version
2020-07-23 15:52:18 +10:00
teor
85f113bc18
doc: Add a TODO to the network protocol
2020-07-23 15:52:18 +10:00
teor
b0cd920fad
feature: Use the Heartwood protocol version in zebra-network
2020-07-21 10:46:07 -07:00
Alfredo Garcia
d8834b149a
Limit protocol messages size ( #645 )
...
* change body msg limit and test case
* accept body at the exact limit len
* test the edges of the limit value
2020-07-15 19:15:52 +10:00
Dimitris Apostolou
ba81d7d4c0
Fix typos
2020-07-07 11:13:49 -07:00
teor
f999ec75e6
fix: Remove a non-standard unicode character in a comment
2020-07-01 16:03:14 -04:00
Jane Lusby
9f802cd8dd
Wrap Transaction in Arc
2020-06-06 18:13:17 -04:00
Jane Lusby
9bcda0f9c7
Wrap Blocks in Arc throughout codebase
2020-06-05 00:36:55 -04:00
Jane Lusby
4a2d2a359c
add cargo fmt to ci ( #403 )
...
* add cargo fmt to ci
* rebase on main
* switch to stable
Co-authored-by: Jane Lusby <jane@zfnd.org>
2020-05-27 19:12:25 -07:00
Jane Lusby
4dc307f2f3
fix last warnings
2020-05-27 15:42:29 -04:00
Jane Lusby
b6b35364f3
cleanup warnings throughout codebase
2020-05-27 15:42:29 -04:00
George Tankersley
df79fa75e0
Implement minimal version handshaking ( #295 )
...
Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca>
2020-04-13 18:33:15 -04:00
Deirdre Connolly
a5f4db7528
Move just the Network enum to -chain, keep everything else in -network
2020-03-12 22:02:17 -04:00
Deirdre Connolly
380d622b37
Fix imports
2020-03-12 22:02:17 -04:00
Deirdre Connolly
b68e1e2d55
Move Network, Magic, and magics to zebra-chain
2020-03-12 22:02:17 -04:00
Henry de Valence
47cafc630f
Remove version fields from GetBlocks, GetHeaders.
...
These are instead set by the negotiated version.
2020-02-14 18:23:41 -05:00
Henry de Valence
befdb46dc3
Clean some warnings in the Bitcoin codec.
...
This doesn't clean the warnings about unused items in the builder, since
those are unused for a reason (the implementation that should use them
is missing).
2020-02-10 09:03:56 -08:00
Henry de Valence
972d16518f
Make ZcashSerialize infallible mod its Writer.
...
Closes #158 .
As discussed on the issue, this makes it possible to safely serialize
data into hashes, and encourages serializable data to make illegal
states unrepresentable.
2020-02-05 19:48:43 -05:00
Henry de Valence
b0f61c4dd2
Remove outdated comment (we use tokio codecs now)
2020-02-05 19:44:35 -05:00
Henry de Valence
eeb4a2470b
Remove version fields from Block, Tx messages.
...
These are included in the Block, Transaction objects themselves, so the
previous code ended up trying to deserialize two version fields per
object.
Closes #226 .
2020-02-05 19:44:35 -05:00
Henry de Valence
8d58dd804f
Note that tracing causes clippy false positives
...
Thanks @hawkw for pointing this out.
2020-02-05 12:42:32 -08:00
Henry de Valence
f04f4f0b98
Apply clippy fixes
2020-02-05 12:42:32 -08:00
Henry de Valence
b24f53f4a1
Add From impls for InventoryHash
2020-02-04 17:48:36 -08:00
Deirdre Connolly
6d3d4c4f64
s/GetData/NotFound/ in read_notfound
2020-02-04 18:04:53 -05:00
Deirdre Connolly
1ca55846eb
Little test to exercise sha256dWriter::flush()
2020-02-04 18:04:53 -05:00
Deirdre Connolly
beb72080cb
Delete out of date comment on incomplete Message variants
2020-01-30 13:39:13 -05:00
Deirdre Connolly
71d5571e39
Add roundtrip proptest for LockTime serialization/deserialization
...
Relates to #150
2020-01-28 03:48:23 -05:00
Deirdre Connolly
c2411f4315
Add a little proptest around Magic's Debug impl
2020-01-28 03:48:23 -05:00
Henry de Valence
92ddf0542f
Provide impl Zcash[De]Serialize for Vec<T: Zcash[De]Serialize>.
...
This replaces the read_list function and makes the code significantly cleaner.
The only downside is that it loses exact preallocation, but this is probably not a big deal.
2019-12-31 02:46:39 -05:00
Henry de Valence
2965187b91
Upgrade tokio, futures, hyper to released versions.
2019-12-13 17:42:15 -05:00
Deirdre Connolly
d559a3fa52
Return an error result if the filterload msg size is out of bounds
2019-12-05 13:48:42 -05:00
Deirdre Connolly
cbd95dfc1f
Pass body_len to read_filterload instead of calculating it ourself
...
This lets us still be generic over the reader trait and we aren't recomputing again.
Co-Authored-By: Henry de Valence <hdevalence@hdevalence.ca>
2019-12-05 13:48:42 -05:00
Deirdre Connolly
3fbfffeb44
Remove superfluous zcash_(de)serialize impls
2019-12-05 13:48:42 -05:00
Deirdre Connolly
9a0c2198aa
Parse out exact/max possible lengths for filterload filters
...
Add some unit tests that make sure we obey max values.
2019-12-05 13:48:42 -05:00
Deirdre Connolly
78f0b8aab0
Remove NODE_BLOOM service bit
...
We do not support bloom filters.
2019-12-05 13:48:42 -05:00
Deirdre Connolly
3c26092b01
Read max of 520 bytes for data fields when parsing filteradd messages
2019-12-05 13:48:42 -05:00
Deirdre Connolly
1b8b4d0fac
Encode and decode Filter* messages
...
Also remove stubs related to MerkleBlock and the catchall case for unknown types since we
are finally matching all variants of the Message enum.
2019-12-05 13:48:42 -05:00
Deirdre Connolly
72def27b78
Add FilterLoad, FilterAdd, FilterClear message variants
...
Also remove MerkleBlock stub, we are no longer supporting it (zcashd doesn't either).
2019-12-05 13:48:42 -05:00
Deirdre Connolly
f5aa5f3794
Add Tweak and Filter types
2019-12-05 13:48:42 -05:00
Henry de Valence
6db852fab2
Refactor protocol into internal, external modules.
...
This commit just moves things around and patches import paths.
2019-11-27 05:06:01 -05:00