-
Notifications
You must be signed in to change notification settings - Fork 493
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
go-algorand 3.3.0-beta #3423
go-algorand 3.3.0-beta #3423
Conversation
## Summary A test helper function `commitRound` accessed `l.trackers.lastFlushTime` without taking a lock. Fixed. ## Test Plan ``` go test ./ledger -run TestAppEmpty -race -count=50 ok github.com/algorand/go-algorand/ledger 4.078s ```
## Summary Fix e2e.sh mixed indent characters.
## Summary Fix a small type discrepancy in the OpenAPI spec ahead of some other work that's about to happen.
## Summary This sets `-p 1` for the e2e-go tests, intended to make them more deterministic when running on a VM with relatively constrained resources. Since each e2e-go test might spin up a few nodes, it seems like it would help to avoid resource contention. ## Test Plan Tests should run as before. Desired effect can be verified by looking at the test output where the value of PARALLEL_FLAG is printed out before tests are run.
Add Custom Scenario for Performance Testing. Add README on how to run custom scenario and modify create_and_deploy_recipe.sh to accept a network template that will generate a new recipe.
go-algorand 3.2.1-stable
## Summary Add ParticipationRegistry methods for setting and retrieving state proof keys. Since they aren't in master yet there is a `type StateProofKey []byte` stub which will need to be updated later. ## Test Plan New unit tests.
b64 opcode, tests, and specs
go-algorand relstable3.2.1-remerge
Upgrading to 1.16 to help alleviate issues with working on different go versions, and update to a supported, more secure version. Release notes for Go 1.15 and 1.16: https://tip.golang.org/doc/go1.16 https://tip.golang.org/doc/go1.15
## Summary Compatibility for `partkeyinfo` was also needed by some users. In addition to the different format, the old command also allows printing key information when the node is not running Workarounds: 1) use an older `goal` binary. 2) use `algokey part info --keyfile <file>` ## Test Plan Tested manually: ``` ~$ goal account partkeyinfo -d /tmp/private_network/Node/ Dumping participation key info from /tmp/private_network/Node/... Participation ID: CPLHRU3WEY3PE7XTPPSIE7BGJYWAIFPS7DL3HZNC4OKQRQ5YAYUA Parent address: DGS6VNX2BRMKGKVAS2LTREMYG33TOCYPFLPCQ3DUTJULQU6P6S7KJCDNTU Last vote round: 1 Last block proposal round: 2 Effective first round: 1 Effective last round: 3000000 First round: 0 Last round: 3000000 Key dilution: 10000 Selection key: 5QRrTgzSUTqqym43QVsBus1/AOwGR5zE+I7FGwA14vQ= Voting key: PK0NMyZ4BKSjPQ9JuT7dQBLdTpjLQv2txuDYDKhkuqs= ~$ goal account partkeyinfo -d /tmp/private_network/Node/ -c Dumping participation key info from /tmp/private_network/Node/... ------------------------------------------------------------------ File: Wallet2.0.3000000.partkey { "acct": "DGS6VNX2BRMKGKVAS2LTREMYG33TOCYPFLPCQ3DUTJULQU6P6S7KJCDNTU", "last": 3000000, "sel": "5QRrTgzSUTqqym43QVsBus1/AOwGR5zE+I7FGwA14vQ=", "vote": "PK0NMyZ4BKSjPQ9JuT7dQBLdTpjLQv2txuDYDKhkuqs=", "voteKD": 10000 } ```
## Summary This test (TestEcdsa) tests the ecdsa_pk_decompress opcode and intentionally "tampers" with the public key by setting the first byte to zero. Occasionally this test is failing, likely because the first byte was already zero. (The test failures are for the cases where failure is expected, `pass=false`) ## Test Plan Existing test should pass, occasional flakiness should go away.
* Fix method signature parse bug * Support reference types * Review dog fixes * Fix comments
## Summary This is to allow ARCs (github.com/algorandfoundation/ARCs) to have their own hash prefix without risk of collision. ## Test Plan It is purely informational. There is no real code change.
… in (#3299) The catchup service stops when it is complete, i.e. it has reached up to the round which is being agreed on. The catchup service knows it is complete and should stop, when it finds that a block is in the ledger before it adds it. In other words, apart from the catchup, only the agreement adds blocks to the ledger. And when the agreement adds a block to the ledger before the catchup, it means the agreement is ahead, and the catchup is complete. When `fetchAndWrite` detects the block is already in the ledger, it returns. The return value of `false` stops the catchup syncing. In previous releases, `fetchAndWrite` was only checking if the block is already in the ledger after attempting to fetch it. Since it fails to fetch a block not yet agreed on, the fetch fails after multiple attempts, and `fetchAndWrite` returns `false` ending the catchup. A recent change made this process more efficient by first checking if the block is in the ledger before/during the fetch. However, once the block was found in the ledger, `fetchAndWrite` returned true instead of false (consistent with already existing logic since forever, which was also wrong). This caused the catchup to continue syncing after catchup was complete. This change fixes the return value from true to false.
Disable a flaky test, to be re-enabled later with #3267.
…lse (#3301) ## Summary The fetchAndWrite function contains some complex logic to ultimately determine if we should continue trying to catch up. The conditions that might cause it to return false should be more explicitly enumerated. ## Test Plan Just comments
…ter being stopped. (#3303) ## Summary The block service was attempting to serve block via the http handler even after it has been stopped. This lead to undesired downstream failures in the ledger, which was shutdown as well. ## Test Plan unit test added.
go-algorand 3.2.2-stable
…enesis-id. (#3308) ## Summary Avoid creating algod process for the sole purpose of retrieving the genesis-id. Existing code was calling `algod -G -d <data dir>` in order to obtain the genesis version string. The genesis version string can be easily retrieved by loading the genesis file. ## Test Plan Use existing e2e tests.
## Summary This PR fixes a link in a README. ## Testing I clicked on the new link.
## Summary The wording on this was tripping me, maybe I was having an off day. I think it would be slightly easier if the message were to tell exactly what you need to do (and not use the angle brackets).
fix random data race in unit test
…into rel/stable
* Allow setting manager, reserve, freeze, and clawback at goal asset create * Add e2e tests * Add more tests for goal asset create flags Co-authored-by: Fionna <[email protected]>
For nightly builds ("rel/nightly"), we want to have deadlock enabled. For rel/beta and rel/stable, we want to make sure we can build and upload a binary with deadlock disabled so that it can be used for release testing and validation purposes.
crypto package need not depend on config. There is an unnecessary dependency on config. signer.KeyDilution takes the `config.ConsensusParams` as argument to pick the DefaultKeyDilution from it. This introduces dependency from the crypto package to config package. Instead, only the DefaultKeyDilution value can be passed to signer.KeyDilution.
This PR introduces algodump, a tcpdump-like tool for monitoring algod network messages.
Added support for not having certain files in signing script
Current agreement code only writes a `context : agreement` to a subset of the logged messages. This change extends the said entry, which would make it easier to pre-process logs entries by their corresponding component. The change in this PR is focused on: 1. make sure that the "root" agreement logger always injects the `context : agreement` argument. 2. change the various locations in the agreement code to use the root agreement logger instead of referring to the application-global instance (`logging.Base()`).
During the node shutdown, all the current outgoing connections are being disconnected. Since these connections are web sockets, they require a close connection message to be sent. However, sending this message can take a while, and in situations where the other party has already shut down, we might never get a response. That, in turn, would lead the node waiting until the deadline is reached. The current deadline was 5 seconds. This PR changes the deadline during shutdown to be 50ms.
Codecov Report
@@ Coverage Diff @@
## rel/beta #3423 +/- ##
============================================
+ Coverage 47.47% 47.63% +0.15%
============================================
Files 369 370 +1
Lines 59652 59826 +174
============================================
+ Hits 28322 28498 +176
+ Misses 28044 28017 -27
- Partials 3286 3311 +25
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
go-algorand 3.3.0-beta
Overview
Updating golang version, introducing new features to goal and algod, cleaning up code, and adding State Proof loading methods. NOTE: we upgraded to golang 1.16.11 and arm32v7 (for arm32 builds)
Feature Highlights
goal app method
(Support reference types ingoal app method
#3275)Changelog
/Accounts/ACCOUNTID
endpoint to return Minimum Balance information (Minimum Account Balance in Algod #3287)data/abi
package (Removing C/crypto dependencies fromdata/abi
package #3375)AtomicCommitWriteLock()
(Delete unusedAtomicCommitWriteLock()
#3383)FastPartitionRecovery
fromConsensusParams
(DeprecateFastPartitionRecovery
fromConsensusParams
#3386)goal app method
(Support reference types ingoal app method
#3275)goal app method
(Support app creation ingoal app method
#3353)goal account info
to return Minimum Balance information (Minimum Account Balance in Algod #3287)goal app method
handling of args and return values (Updategoal app method
handling of args and return values #3352)goal account renewpartkey
(Separate Txn and PartKey validity forgoal account renewpartkey
#3286)WebsocketNetwork
(Use rejecting limit listener inWebsocketNetwork
#3380)Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources