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

Release 0.4.0 #1504

Merged
merged 231 commits into from
Oct 21, 2019
Merged

Release 0.4.0 #1504

merged 231 commits into from
Oct 21, 2019

Conversation

bowenwang1996
Copy link
Collaborator

No description provided.

SkidanovAlex and others added 30 commits July 10, 2019 16:01
- Separating outgoing and incoming receipts, fixing the logic to collect outgoing receipts, properly saving incoming receipts if a chunk was skpiped.
- Previously if block was first orphaned, and then was missing chunks, chunks were not requested. Since orphans are processed in `chain`, but requests can only be done from `client`, this required some refactoring.
…erly work on validator rotation for chunks

- Changing validator rotation such that the current block is sufficient to know the epoch of the next block
- Fixing more issues with handling receipts
- Orphaning chunk one parts if the epoch is not known
- Re-requesting chunk one parts if they are missing when block is received
- Fixing some issues with using incorrect height/prev block when computing number of total parts
- For now making header sync to commit after every block, doing otherwise breaks the current interaction with the validator manager
1. Initiating state download (aka Catchup) on each first block of each epoch for the *next* epoch;
2. Reusing the state sync machinery we already have (and fixing various bugs in it) to actually sync state for chunks;
3. Immediately applying state transition for the next epoch if the state is downloaded, putting block into a queue if not;
4. Processing the queue once the state is downloaded;
5. Orhpaning the block if the state still not downloaded when the next epoch starts, unorphaning on (4);

Addresses #1046
In particular, merging all the work on validator rotation that was happening in master (fixing stake returns, kicking validators out etc) with the work on validator rotation for the shard chains.
Some aspects of the merged code still appear a bit flaky, more testing and fixes are coming
…onal issue that verify_chunk_sginatures calling and that it may result in error are fixed.
…tor_proposals. Removed post state root from ShardMsg
* Adding gas usage and limit to the header to track relevant information for rewards.

* Remove usage of ..Default::default in proto conversions, which is hiding issues

* Account deletion (#1107)

* Account deletion implementation

* Stakers can't be deleted, but must have more rent on their account (4 * epoch_length). Also added check_rent method to call after transaction execution to make sure there is still enough rent on the account

* Actually delete data when deleting an account and test that

* Add support for default values in runtime config (expected that we will put reasonable defaults in the binary), and fixed test_deserialize test / testnet.json

* Moved helper functions for transactions into test-utils User trait

* Reuse check_stake function from runtime and system

* Address comments

* Step 1. Add validator proposals are called from process_block. Additional issue that verify_chunk_sginatures calling and that it may result in error are fixed.

* Merge master into staging (#1116)

* bump version to 0.2.6 (#1091)

* Fix stake double return bug (#1084)

* fix stake double return bug and update tests

* use cache properly

* properly implement stake returning

* refactor test utils

* fix gensis config

* Fix block producer assignment (#1088)

* fix block producer assignment

* trying with test lock

* tweak test parameters

* bump version to 0.2.6

* Update docker to have git version and use cache (#1092)

* neartest.com has been retired (#1098)

* Change how docker port mapping works for macos (#1086)

* Apply Peter's fix to docker image start up code

* fix port mapping in nodelib

* fix #1042: Ban peer doesn't save to storage (#1093)

* Add registers to Wasm bindings

* Remove some unreachables (#1108)

* Revert back to cranelift backend for now (#1109)

Singlepass backend is crashing

* Fix stake test (#1095)

* Fix stake test

* Check expected validators.

* Specify expected validator order.

* No need to move anymore.

* Step 2. Move post_state_root into ChunkExtra with gas_used and validator_proposals. Removed post state root from ShardMsg

* Step 3. Gas limit/usage & validator proposals propagate

* Cleaned up tests in validator manager. First steps to make sure routing tables are populated.

* Fix chain tests

* Change 100ms to 250ms block production for chunk_manager tests
…to fork test that another epoch manager seeing only one fork will have exactly the same result
MaksymZavershynskyi and others added 16 commits October 17, 2019 15:48
…1455)

* Add test to correlate CPU usage and gas

* Nit

* Merge
* Make verbose more flexible
* Merge branch 'staging' into better-verbose
* Merge branch 'staging' into better-verbose
* Merge refs/heads/staging into better-verbose
* Enable coredumps in run_docker.sh
* Merge branch 'staging' into ulimit_c
* Merge refs/heads/staging into ulimit_c
* Add new round on handshake if invalid nonce.

* Add test. (it is failing now).

Remove warning about dropping messages.

* Fix test.
* initial read from registers API

* read_memory costs

* get_utf8_string and get_utf16_string don't read from registers

* Test registers API + fixes

* fix tests

* fix testnet.json
Add subtree sizes to trie nodes. The size is also used in computing
hashes, so all hashes will change.
…ey stress (#1485)

- Chainging the python sanity test to use routing (it passes)
- Changing how the horizon is working
  Before this change it was checking heights (H, H+1, H+2), and
  then routing to H+2. It is both wrong to check H (the chunk at
  H is already produced), and wrong to send to the last height we
  checked, because the recepient with a high chance one block
  behind us, and will redundantly re-forward the transaction.
  Now it looks at (H+1, H+2, H+3), still forwards to H+2.
- The previous change also fixes most of the catchup tests, since
  two blocks horizon was not enough under stress. Shifting horizon
  one block forward fixed most of them.

Some catchup tests still fail due to #1484
* Broadcast only from inbound | Add pingpong tests

* Add routing back.

* Validate sync info
* Use information returned from runtime for reward calculation
* Remove unused fields
* Merge branch 'staging' into rework-reward-calculation
* minimum sized docker image
* Merge branch 'staging' into minimum-dockerfile
* Proper check for transaction history validation
* Merge branch 'staging' into transaction-history-validation
* docs tweak
* improve cache
* small fix
* Fix test
* Merge branch 'staging' into transaction-history-validation
* fix more tests
* fix test_expired_tx
* fix bugs
* Fix more bugs
* fix one more bug
* proper fix
* fix clone
* Merge branch 'staging' into transaction-history-validation
* Separate invalid chain from expired
* fix test
* Merge branch 'staging' into transaction-history-validation
@@ -60,6 +64,15 @@ codegen-units = 1 # Use only 1 codegen-unit to enable full optimizations.
lto = true
codegen-units = 1 # Use only 1 codegen-unit to enable full optimizations.

[profile.dev.overrides.hex]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nuke this?

@bowenwang1996 bowenwang1996 merged commit 8f488f3 into master Oct 21, 2019
@bowenwang1996 bowenwang1996 deleted the v0.4.0 branch October 21, 2019 19:01
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.