* add FeeFields type
* use FeeFields with ::zero and try_into().unwrap()
* fixed tests
* avoid 0 accept_base_fee
* add aggregate_fee_fields method for transaction
* implement std::fmt::Display trait for FeeFields
* make base_fee argument non-optional in libtx::mod::tx_fee
* add global and thread local accept_fee_base; use to simplify tests
* set unusually high fee base for a change
* revert to optional base fee argument; default coming from either grin-{server,wallet}.toml
* remove optional base fee argument; can be set with global::set_local_accept_fee_base instead
* define constant global::DEFAULT_ACCEPT_FEE_BASE and set global value
* add Transaction::accept_fee() method and use
* Manual (de)ser impl on FeeFields
* fix comment bug
* Serialize FeeFields as int in tx
* allow feefields: u32:into() for tests
* try adding height args everywhere
* make FeeFields shift/fee methods height dependent
* prior to hf4 feefield testing
* rename selected fee_fields back to fee for serialization compatibility
* fix test_fee_fields test, merge conflict, and doctest use of obsolete fee_fields
* make accept_fee height dependent
* Accept any u64 in FeeFields deser
Co-authored-by: Jasper van der Maarel <j@sper.dev>
* use mmr sizes in header to validate block weight given header only
* add global weight validaton to headers when reading them untrusted off the network
* fixup tests, one pending test
* add test for deserializing untrusted block header exceeeding weight limits
* validate header mmr sizes, must grow for each block
* remove redundant height check
* fix tests after rebase
block specific TooHeavy error
* create 2.0.0 branch
* fix humansize version
* update grin.yml version
* PoW HardFork (#2866)
* allow version 2 blocks for next 6 months
* add cuckarood.rs with working tests
* switch cuckaroo to cuckarood at right heights
* reorder to reduce conditions
* remove _ prefix on used args; fix typo
* Make Valid Header Version dependant on ChainType
* Rustfmt
* Add tests, uncomment header v2
* Rustfmt
* Add FLOONET_FIRST_HARD_FORK height and simplify logic
* assume floonet stays closer to avg 60s block time
* move floonet hf forward by half a day
* update version in new block when previous no longer valid
* my next commit:-)
* micro optimization
* Support new Bulletproof rewind scheme (#2848)
* Update keychain with new rewind scheme
* Refactor: proof builder trait
* Update tests, cleanup
* rustfmt
* Move conversion of SwitchCommitmentType
* Add proof build trait to tx builders
* Cache hashes in proof builders
* Proof builder tests
* Add ViewKey struct
* Fix some warnings
* Zeroize proof builder secrets on drop
* Modify mine_block to use wallet V2 API (#2892)
* update mine_block to use V2 wallet API
* rustfmt
* Add version endpoint to node API, rename pool/push (#2897)
* add node version API, tweak pool/push parameter
* rustfmt
* Upate version api call (#2899)
* Update version number for next (potential) release
* zeroize: Upgrade to v0.9 (#2914)
* zeroize: Upgrade to v0.9
* missed Cargo.lock
* [PENDING APPROVAL] put phase outs of C32 and beyond on hold (#2714)
* put phase outs of C32 and beyond on hold
* update tests for phaseouts on hold
* Don't wait for p2p-server thread (#2917)
Currently p2p.stop() stops and wait for all peers to exit, that's
basically all we need. However we also run a TCP listener in this thread
which is blocked on `accept` most of the time. We do an attempt to stop
it but it would work only if we get an incoming connection during the
shutdown, which is a week guarantee.
This fix remove joining to p2p-server thread, it stops all peers and
makes an attempt to stop the listener.
Fixes [#2906]
* rustfmt
* Save and display optional slate messages
* rustfmt
* fixes and test updates
* rustfmt
* output json
* rustfmt
* add better serialisation of slate message, rename to secp_ser, add tests for serialization functions
* rustfmt
* max length for message enforced by API
* rustfmt