* Update license and author metadata in workspace crates.
- ensure that the license field is set to GPL-3 for all GPL-3 licensed crates;
- ensure that the author field is set to "Zcash Foundation", responsible for maintenance;
- preserve the original authorship info in AUTHORS.md for human-readable history.
Updating the author field ensures that all of the machine systems that read
crate metadata list the ZF organization, not any single individual, as the
maintainer of the crate.
* Prefix all internal crate names with zebra-.
This does not move the directories containing these crates to also have zebra-
prefixes (for instance, zebra-chain instead of chain). I think that this would
be preferable, but because it's a `git mv`, it will be simple to do later and
leaving it out of this change makes it easier to see the renaming of all of the
internal modules.
* Remove git dependency from eth-secp256k1
* Avoid an error seemingly related to Deref coercions.
This code caused an overflow while evaluating type constraints. As best as I
can determine, the cause of the problem was something like so: the Rust
implementation of the Bitcoin-specific hash function used in the Bloom filter
doesn't operate on byte slices, but only on a `&mut R where R: Read`, so to
hash a byte slice, you need to create a mutable copy of the input slice which
can be consumed as a `Read` implementation by the hash function; the previous
version of this code created a slice copy using a `Deref` coercion instead of
`.clone()`, and when a tokio update added new trait impls, the type inference
for the `Deref` coercion exploded (somehow -- I'm not sure about the last
part?).
This commit avoids the problem by manually cloning the input slice.
The primary reason for this is so that Dependabot will auto-detect them and
watch their dependencies for upgrades and known security vulnerabilities, but will
also automatically run all tests for the workspace packages with 'cargo test' without
remembering to include '--all', and build each package with 'cargo build'. I've
included 'test-data' here mostly because we want all dependencies inter-consistent
when possible even for test data/code, even if that means 'test-data' gets built
during 'cargo build --release'.
- In this PR I extract from the crate `db` to the new `storage` crate all traits that is not specifically related to the concrete implementation of database. So I now can use `verification` crate without `rocksdb` dependency.
- Also I modify the `HeaderAcceptor` so that can be constructed without the private `BlockDeployments`.
* added couple of debug helpers to deal with panics
* trying to fix compilation
* trying to fix compilation
* test
* Revert "test"
This reverts commit 6169f7e1eb5cc7b43ea2e538686cb0144bf64712.
* db refactor in progress, refactored kvdb
* kvdb refactor
* removed unused RwLock
* removed unused RwLock
* BlockChainDatabase
* db refactor in progress
* implemented BlockProvider for newdb
* fixed compiling
* newdb TransactionMeta
* newdb tests
* reopen tests for newdb
* replaced old db with new db
* chain_verifier uses new db
* sync module uses refactored db
* check double spends in verification layer
* added Forkable trait to satisfy resolving recursive types by compiler
* new db regtests in progress
* fixed verification and sync unit tests
* fixed miner and rpc unit tests
* implemented fmt::Debug for few structs
* removed commented out code
* fixed bencher target
* removing commented out code, polishing db_refactor pr
* p2p <-> sync interfaces proposal
* updated with example
* send errors will be handled in p2p module => no need to return to the sync
* poc of outbound sync connection
* simplified send_to_peer
* context has cpu pool and enent loop handles
* on_message won't return ProtocolAction anymore
* session initialized sync protocol, remove retain cycles on P2P::drop
* removed ProtocolAction
* uncommented ping protocol
* node_table sorts nodes also by recently used time
* started work on sync package
* send getaddr on connect
* fixed node_table insert, added insert_many
* addr protocol
* sync headers response
* continue sync
* continue sync protocol
* separated sync connection start from sync connection creation
* switched to getblocks (instead of getheaders)
* starting to receive blocks in sync
* deal with orphaned blocks in sync::local_chain
* continue sync
* fix warnings
* removed TODOs
* protocol::sync is back to private state
* fixed grumbes