Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PoS integration #379

Closed
wants to merge 19 commits into from
Closed

PoS integration #379

wants to merge 19 commits into from

Conversation

* junkicide+tomas/pos-tx-tests:
  test: add seed for failed PoS VP test
  [ci skip] wasm checksums update
  pos/vp: remove redundant validity predicate storage key check
  doc fixed in proof_of_stake/
  Update comments
  quick doc fix
  removed a deprecated function, spelling fixes
  clean up documentation
  tests/pos: add proptest-regressions file
  Changelog: add #462
  wasm: test tx_withdraw
  wasm: tx_unbond tests
  PoS: fix Bonds data type and application of unbonding on it
  PoS: fix type s/OffsetUnboundingLen/OffsetUnbondingLen
  tests: reuse init_pos for native pos vp test
  tests: make native pos vp module public
  tests: add re-usable PoS initialization helper
  PoS: add PartialOrd, Ord, PartialEq and Eq for Epoched an EpochedDelta
  tests: expose native_vp test helpers
  shared/token: add arb_amount_ceiled testing strategy
  wasm: add tx_bond tests
  shared/token: add arb_amount testing strategy
  shared/key: add arb_common_keypair testing strategy
@tzemanovic tzemanovic force-pushed the tomas/pos-integration branch from a813adf to 600b2ed Compare September 23, 2022 08:13
- Updated tx_bond, tx_unbond and tx_withdraw and their tests to the new tx API

* tomas/unify-native-and-wasm-vp:
  [ci skip] wasm checksums update
  update wasm checksums
  wasm_for_tests: make
  Update shared/src/ledger/vp_env.rs
  changelog: add #1093
  wasm: improve error handling
  macros: add error handling to transaction and validity_predicate macros
  wasm: update for VM API changes
  tests: update for VM API changes
  VM: move vm_env sub-mod into tx/vp_prelude and add Tx/VpEnv and Ctx
  shared: update native_vp implementations for VpEnv methods
  shared/ledger/native_vp: implement VpEnv
  shared/vm: rename host_env TxEnv/VpEnv to TxVmEnv/VpVmEnv
  ledger: add tx and VP traits with host env functions
* tomas/refactor-pos-vp:
  changelog: add #318
  pos: fix bond zero amount error msg
  pos/validation: refactor accumulation of changes
* tomas+brentstone/common-read-storage-trait:
  fixup! rustdoc: fix more broken links
  rustdoc: fix more broken links
  rustdoc: resolve ambiguous link
  changelog: add #324
  update wasm checksums
  ledger/pos: implement PosReadOnly using StorageRead trait
  ledger/tx: inherit StorageRead in TxEnv
  ledger/storage: impl StorageRead for Storage
  ledger/vp: impl StorageRead for WASM VPs pre and post state
  ledger/native_vp: implement StorageRead for pre and post state
  ledger: add StorageRead trait with extensible error type
* tomas/remove-evidence-params:
  changelog: add #1248
  shell: skip and log outdated evidence in the shell
  shell: remove TM consensus evidence parameters
  update the changelog config to namada repo
  [ci] wasm checksums update
  ledger: debug log some ABCI++ requests
  ledger: make prepare_proposal and process_proposal stateless
  ledger: refactor tx_queue
  scripts/get_tendermint: update for ABCI++ temp fork release
  test/e2e/ledger: enable ignored tests for ABCI++ workaround
  shell: process transaction when `ProcessProposal` hasn't (non-validator)
  make: remove "*-abci-plus-plus"
  all: remove "ABCI" conditional compilation
  deps: remove ABCI dependencies, use ABCI++ as default
  changelog: add #247
  test/e2e: update assert_success/failure to first consume output
  [ci] improve e2e log upload to add validator logs
- Updated PosActions impl moved from vm_env into tx_prelude

* tomas/fix-validator-raw-hash:
  update wasm checksums
  pos: update validator raw hash validation
  changelog: add #326
  client/utils: switch off validator's p2p addr strict mode in localhost
  test/e2e: add test for double signing slashing
  shell: fix slashing log msg
  ledger/shell: fix validator look-up from tm raw hash
  tests/PoS: fix the validator's raw hash to correspond to consensus key
  PoS: fix the validator's raw hash to correspond to consensus key
  tendermint: fix address written to TM to correspond to consensus key
* tomas+brentstone/common-write-storage-trait:
  changelog: add #331
  update wasm checksums
  fix missing StorageWrite for Storage merkle tree update
  storage: remove unnecessary clone
  add more comments for StorageRead lifetime with an example usage
  add <'iter> lifetime to StorageRead trait to get around lack of GATs
  ledger: impl StorageWrite for Storage
  ledger: factor out TxEnv write methods into a new StorageWrite trait
* tomas/refactor-storage-prefix-iter:
  changelog: add #335
  wasm checksums update
  test/vm_host_env: refactor prefix iter tests with new `iter_prefix` fn
  storage_api: build a nicer `iter_prefix` function on top of StorageRead
* tomas/refactor-read-write:
  changelog: add #334
  wasm checksums update
  storage_api: add default borsh encoded read/write impl and handle errors
* tomas/vp-env-pre-post-via-storage-api:
  update wasm checksums
  changelog: add #380
  shared: Add pre/post to VpEnv and use them to provide default impls
* tomas/vp-tx-env-concrete-error:
  changelog: add #465
  [ci skip] wasm checksums update
  ledger: use storage_api::Error in VpEnv and TxEnv instead of generic
- updated `shared/src/types/key/mod.rs` to use `data_encoding::HEXLOWER` instead of `hex`

* namada/tomas/sorted-prefix-iter:
  [ci skip] wasm checksums update
  changelog: add #458
  tests: extend prefix iter tests for reverse order
  add support for rev_iter_prefix in storage and VP and tx envs
  test/vm_host_env: check prefix iter order in tx and VP
  shared/storage/key: add support for int/uint keys that maintain order
  deps: replace hex with data-encoding
@tzemanovic tzemanovic force-pushed the tomas/pos-integration branch from 600b2ed to ee19f2f Compare September 23, 2022 10:02
tzemanovic and others added 4 commits September 23, 2022 12:26
* tomas/fix-rustdoc: (116 commits)
  changelog: add #442
  rustdoc: fix outdated links
  make build-doc: only build rustdoc in this command
  [ci] remove drone
  ci: double the build-and-test timeout
  [ci] download masp paramters
  [ci] improve automation tool, add pls spawn devnet command
  [ci] added dev documentation build, added rust doc build
  I removed the limitation.
  I removed the limitation.
  encoding_spec: rm ":" from fragment links in e.g. `ed25519::PublicKey`
  docs/dev: update encoding spec generation
  [fix] use fetch-depth: 0 on tag pipeline
  Namada 0.7.1
  fix spelling of 'features' in Cargo.toml
  realign cargo/wasm integrity
  changelog: add #278
  test: allow to sign and verify secp256k1
  client: add check on validator consensus key
  shared: optional secp256k1 signing and verification to avoid wasm bloat
  pick scheme for generating validator keys
  must use ed25519 for validator consensus key and node ID
  update rustdoc on PKH
  make fmt
  deps: enable secp256k1 in tendermint-rs
  handle secp256k1 in key_to_tendermint()
  fmt && clippy
  use heliaxdev/libsecp256k1 crate fork as dependency for now
  release: update release.toml for namada repo
  new test for zeroizing secp256k1 keys
  wrap libsecp256k1::SecretKey in a Box within SecretKey struct
  add a test to zeroize secp256k1
  fix bug in supplying args to test_genesis_validators()
  make validator_key_to_json() compatible with ed25519 and secp256k1 keys
  fix bug to prevent generating keys with common SchemeType
  fix bug where we were generating a key with common scheme
  make fmt
  fix unit test test_toml_roundtrip to supply good validator keys
  e2e test_genesis_validators(): make each validator have different key scheme
  fix some comments
  fix bug in supplying keypair to Tendermint
  clean and simplify code in id_from_pk()
  allow CL specification of a specific key scheme for the TxInitValidator
  improve write_tendermint_node_key() to produce the proper json given the underlying key scheme
  convert from common to underlying key type in id_from_pk() when constructing the TendermintNodeId
  change variable names in fns try_to_sk() and try_to_sig() to reduce confusion
  clean up code implementing Serialize/Deserialize, comment on certain implementations
  remove Result layering for id_from_pk
  drop 'Consensus' from SchemeType enum variants
  incorporate options into key generation functions
  command line options for specifying key scheme
  initial commit for supporting secp256k1 keys
  clean and simplify code in id_from_pk()
  allow CL specification of a specific key scheme for the TxInitValidator
  improve write_tendermint_node_key() to produce the proper json given the underlying key scheme
  convert from common to underlying key type in id_from_pk() when constructing the TendermintNodeId
  change variable names in fns try_to_sk() and try_to_sig() to reduce confusion
  clean up code implementing Serialize/Deserialize, comment on certain implementations
  remove Result layering for id_from_pk
  drop 'Consensus' from SchemeType enum variants
  make libsecp256k1 objects public when wrapped within our own Key and Sig objects
  remove clippy::bind_instead_of_map now that we will use wildcard
  incorporate options into key generation functions
  command line options for specifying key scheme
  initial commit for supporting secp256k1 keys
  changelog: add #277
  move zeroize test out of macro (also in advance of incorporating secp256k1)
  wrap SigningKey in a Box pointer when placing into SecretKey struct, test that memory is actually zeroized after dropping SecretKey
  changes to Cargo.toml and Cargo.lock from adding latest version of zeroize crate
  docs: update book's config branch, edit-url and repo links
  docs: add notes about the books
  doc/docs: s/anoma/namada
  re-add `dev` docs section
  update outer readme
  Replace anoma with namada in quickstart
  Update config files
  update links to user guide docs
  update relative paths in dev docs
  changelog: add #322
  docs: move and link to openAPI spec from Ledger RPC
  Apply suggestions from code review
  Storage key regexes should permit any UTF-8 string
  Add invalid storage key error response example
  Add example for getting an account's public key
  A key can contain any ASCII, not just alphabetical characters
  Add specs/openapi.yml
  Add changelog
  .gitignore: make some patterns relative to repo root
  Add changelog
  .gitignore: make some patterns relative to repo root
  change string to valid path
  Initial info on Secp256k1 keys and zeroizing secret keys
  crypto.md: add context for signatures
  crypto.md: remove outdated encoding descriptions
  crypto.md: remove references to closed issue
  Updates changelog
  Removes mention to clap version
  Fixes typos. Updates comment on `clap`
  docs/dev: remove PoS spec and link to spec page instead
  changelog: add #1070
  ...
* namada/tomas+brent/lazy-vec-and-map:
  changelog: #503
  [ci] wasm checksums update
  remove unfinished lazy_set, lazy_hashset and lazy_hashmap for now
  ledger/storage/lazy: update lazy_set for updated trait LazyCollection
  ledger/storage/lazy: remove unused error cases
  WIP: Nested LazyMap validation and testing
  WIP: validation for lazy_map
  WIP: StateMachine tests for lazy_vec validation
  post-conditions for Transition::Update + some comments
  quick bug and documentation fix
  update after rebase on #458, #465
  storage/lazy_vec: add state machine test for lazy vec API
  storage/lazy_vec/validation: disallow unrecognized keys matching prefix
  impl LazyCollection trait for all the collections + refactor
  storage_api/collections/lazy: allow nested lazy collections in LazyMap
  add lazy_vec validation
  fix clippy
  storage_api/collections/lazy: add basic tests and missing methods
  cargo test test_lazy_vec_basics
  update lazy for explicit lifetime in StorageRead trait
  storage: add `Key::last` method, impl KeySeg for all ints
  Switch to use storage::KeySeg and add LazySet
  add lazy map without hashing
  refactored lazy collections, replaced hasher, added iter
  fmt && clippy
  add fn get_elem_key_by_hash to LazyMap
  lazy hash map first commit
  add lazy set (WIP), make LazyVec.get public
  add lazy vector
  create lazy data structures for storage access
  rustdoc: resolve ambiguous link
  fixup! Merge branch 'namada/tomas/sorted-prefix-iter' (#458)
* tomas/fix-shell-last-epoch:
  changelog: add #1249
  test/ledger: update last_epoch assertion
  ledger: fix last_epoch to only change when committing block
* tomas+tiago/fix-pred-epoch-height:
  changelog: add #384
  shared/storage: fix the height recorded for a new epoch
@brentstone brentstone force-pushed the tomas/pos-integration branch from 53cda6c to cc00fff Compare October 13, 2022 14:59
@tzemanovic
Copy link
Member Author

new integration branch for 0.9.0 is in #677

@tzemanovic tzemanovic closed this Oct 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants