-
Notifications
You must be signed in to change notification settings - Fork 523
go-algorand 3.6.0-beta Release PR #3923
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.6.0-beta Release PR #3923
Conversation
## Summary The TestDeadlockLogging was generating large amount of "junk" on top of the expected stack trace. This PR addresses that by dropping the redundant data. Example: https://circleci.com/api/v1.1/project/github/algorand/go-algorand/92568/output/106/0?file=true&allocation-id=622fb105959ff4390b6b098f-0-build%2F5VSI2HBA ## Test Plan Unit test exists.
* Some simple optimizations for app execution Also some benchmarks that show relative costs for the CPU part of processing transactions * Convert opcodes to return error, rather than set cx.err * Pavel recomendation. Considering bigger change to refreshDebugState Tests more opcodes, including branches and others that have not return values. Automates handling of more opcodes by understanding immediate arguments. Fixes the ordering of return value testing. * Unify naming Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com> * make sure return types tested even when simple errors occur Co-authored-by: michaeldiamant <michaeldiamant@users.noreply.github.com>
* Warn on invalid method signature assembly * Print warnings to stderr
…count (algorand#3773) ## Summary When trying to sign a transaction file with goal, if the sender is a normal address but the signer is a logic program, the call fails with an error message like: `send.txn: txn[0] error LogicNot signed and not a Logic-only account` The error message comes from https://github.com/algorand/go-algorand/blob/33b87c432065d3be0ce1fdad682604f416676133/data/transactions/verify/txn.go#L314 It notes that a valid case is when Auth is set to the hash of the program but we aren't setting the auth on the transaction even if the -S flag is passed ## Test Plan Made a txn where sender is a regular account and signed it with ```sh goal clerk sign -i tmp.txn -o tmp.txn -S BJATCHES5YJZJ7JITYMVLSSIQAVAWBQRVGPQUDT5AZ2QSLDSXWWM46THOY -p tmp.teal ``` I borked the git history on the last one algorand#3459 so just nuked it and starting over here. Left it at @tsachiherman wanting better tests for this algorand#3459 (comment)
In DevMode, do not create a block for internal events (i.e. compact-cert creation). This is to assure reproducibility and eliminate the random shifts in round numbers.
## Summary The existing Ledger.OnlineTotals is going ( at the end of the 320 project ), be using the onlineAccountsTracker to get its information from. But unlike the existing l.accts.Totals(rnd) call, it won't get the totals, but only the amount of online totals ( i.e. basics.MicroAlgos ). Prepare the Ledger implementation for that change by deprecating the accountUpdates.Totals and naming it OnlineTotals. As such, it would return just the online portion of that structure ( i.e. totals.Online.Money ). ## Test Plan Ran existing tests on Ledger.OnlineTotals
## Summary The changes in algorand#3770 didn't include the changes in algorand#3769 and so tests don't compile on master currently — this updates another test that uses `Totals` to use `LatestTotals` instead. ## Test Plan Fixes tests.
## Summary This PR upgrade the go-algorand repository to use go 1.16 while adding workarounds for golang/go#44343. ## Test Plan Use performance testing to verify no regressions.
## Summary update go(mod/sum) to use golang 1.16 on the following dependencies: 1. go-codec 2. go-deadlock 3. msgp 4. websocket 5. graphtrace 6. oapi-codegen ## Test Plan Use existing tests.
* remove slice nil handling, add comments to explain * update testcases * partition, dog
`goal` supports signing transactions on a Ledger device. This is done by using github.com/karalabe/usb which is deprecated. Since we go-algorand is being updated to 1.16 we update the library and manually test this version with Ledger. Tested `goal` with Ledger Nano X and S.
…gorand#3728) * nit: always set Exclude value in accountInformationParams * fix comments from CR
* This is a prerequisite test before retiring AccountData.OnlineAccountData() that is used only in tests agreement and committee tests. * Historically all these tests depends on genesis data that is basic.AccountData. * Our GA genesis files have stake, status and voting data and never had resources basic.AccountData can be reduced to the original stake + voting data state and a new basic.AccountDataEx can be introduced for using in REST API * Ledger tests and test network generation tools need to be updated to accept a new reduced (original) basic.AccountData as genesis and resource records for assets and apps needed for tests after the ledger initialization.
…tation (algorand#3856) * Revert "Revert `fillBytes` method to `bigIntToBytes` for lower golang version (algorand#3498)" * leadingZeros update * minor updates with elliptics * byteLength
* dont make array with length if we're just appending to it * make it ahead of time like other slice init in the same file * tweaking unit tests to be less forgiving to local deltas slice
Unify most assembly routines to minimize difference and ease doc gen Flexible opcode costs and fewer assembly routines Co-authored-by: michaeldiamant <michaeldiamant@users.noreply.github.com>
Also pretty print langsoec so that chnages are easier to see.
…algorand#3836) Co-authored-by: Ben Guidarelli <ben.guidarelli@gmail.com> Co-authored-by: chris erway <51567+cce@users.noreply.github.com>
* make default key dilution uniform between algokey and goal * remove unused proto check * extra commit to trigger stuck cla-assistant
* Simplify assembly and add flexible opcode cost support Unify most assembly routines to minimize difference and ease doc gen Flexible opcode costs and fewer assembly routines * Mark exiting opcodes * Tracks types more accurately during assembly Ignores deadcode. Understands how jumps obscure typing info. Detects error within basic blocks Adds #pragma typetrack false Makes spec creation a bit more uniform * CR cleanup * Retain type tracking state during consecutive type tracking enablements * ensure type tracking continues after callsub * Centralize OpStream initialization by introducing factory method * Update missed references * Remove redundant initialization * CR updates * Simplify the representation of deadcode in Programknowledge * Update data/transactions/logic/assembler.go Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com> Co-authored-by: michaeldiamant <michaeldiamant@users.noreply.github.com>
…lgorand#3910) The trackerRegistry.dbRound value and cached dbRound values stored in trackers might go out of sync. Although they are updated under the same lock, produceCommittingTask might use outdated dbRound and give it to trackers with the updated state. The fix is simple: to have dbRound usage and produceCommittingTask invocation under the same lock.
Codecov Report
@@ Coverage Diff @@
## rel/beta #3923 +/- ##
============================================
+ Coverage 49.79% 49.98% +0.19%
============================================
Files 392 400 +8
Lines 68780 68631 -149
============================================
+ Hits 34251 34308 +57
+ Misses 30769 30621 -148
+ Partials 3760 3702 -58
Continue to review full report at Codecov.
|
|
I think there's a problem with the links in the actual Release notes, they go to i.e. "https://github.com/algo-devops-service/go-algorand/pull/3870" |
This issue and the capitalization issue were fixed in a recent PR on a separate repo that needs to be merged in (@algojack @onetechnical ) |
|
Fixed in place. (Still need to merge the other for future releases.) |
Overview
Maintenance release of incremental enhancements and fixes.
What's New
Changelog
New Features
Enhancements
fillBytesmethod in ABI and eval.go implementation (#3856)Bugfixes
Other
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources