-
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
Merge master into feature/1000-assets #2224
Merged
tsachiherman
merged 393 commits into
algorand:feature/1000-assets
from
algorandskiy:feature/1000-assets
Jun 2, 2021
Merged
Merge master into feature/1000-assets #2224
tsachiherman
merged 393 commits into
algorand:feature/1000-assets
from
algorandskiy:feature/1000-assets
Jun 2, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Most of the new TEAL 3 features already work with the debugger, but a few changes were needed to make the new array fields display properly on the Chrome frontend.
expand unit test
tealdbg: listen on specified address
e2e test runner : skip printing the logs when program is in terminated state.
Based on review comments, pushing down these for more fine tuned configuration and to eliminate the reuse of the fetcher.
Temporarily disable expect tests, as the failures there are blocking out testing.
Add a lot of math oriented opcodes that have been requested by teal users. sqrt, exp, expw, divmodw byteslice oriented math - a set of opcodes that will treat byteslices as arbitrary precision uints.
The previous fix for this test (algorand#2178) was incomplete. It did not included proper handling for the case of round 0. This PR addresses this corner case.
## Summary This PR contains three different changes that would allow the node to start up faster: 1. It disables the block 0 fix we previously deployed. This fix was intended to address catching up archival nodes, where we would calculate the block 0 hash incorrectly. The fix was long deployed, and the hash calculation is also fixed since. 2. The tracker and blocks databases are now being opened concurrently. 3. The accounts tracker database schema upgrade would now skip some of the steps that aren't required for a fresh database. Combining all the above, the ledger startup of a new node is now about 2-3 times faster. ## Test Plan This change has no functional enduser change. The existing tests provide sufficient coverage.
Unit tests to improve the test code coverage in peerSelector and catchup/service peerSelector.go 100% coverage catchup/service.go ~69%
Adding missing test for universalFetcher.go Code coverage increased from 74%->96%
…utdown (algorand#2181) <!-- Thanks for submitting a pull request! We appreciate the time and effort you spent to get this far. If you haven't already, please make sure that you've reviewed the CONTRIBUTING guide: https://github.com/algorand/go-algorand/blob/master/CONTRIBUTING.md#code-guidelines In particular ensure that you've run the following: * make generate * make sanity (which runs make fmt, make lint, make fix and make vet) It is also a good idea to run tests: * make test * make integration --> ## Summary Fix race [reported here](https://github.com/algorand/go-algorand-internal/issues/1268): ``` Read at 0x00c00675ed48 by goroutine 210: github.com/algorand/go-algorand/network.(*WebsocketNetwork).ServeHTTP() /home/travis/gopath/src/github.com/algorand/go-algorand/network/wsNetwork.go:1114 +0x19ad github.com/gorilla/mux.(*Router).ServeHTTP() /home/travis/gopath/pkg/mod/github.com/gorilla/[email protected]/mux.go:162 +0x193 github.com/algorand/go-algorand/network.(*RequestTracker).ServeHTTP() /home/travis/gopath/src/github.com/algorand/go-algorand/network/requestTracker.go:474 +0x77b net/http.serverHandler.ServeHTTP() /home/travis/.gimme/versions/go1.14.7.linux.amd64/src/net/http/server.go:2836 +0xce net/http.(*conn).serve() /home/travis/.gimme/versions/go1.14.7.linux.amd64/src/net/http/server.go:1924 +0x837 Previous write at 0x00c00675ed48 by goroutine 79: github.com/algorand/go-algorand/network.(*WebsocketNetwork).Stop() /home/travis/gopath/src/github.com/algorand/go-algorand/network/wsNetwork.go:855 +0x265 github.com/algorand/go-algorand/network.TestGetPeers() /home/travis/gopath/src/github.com/algorand/go-algorand/network/wsNetwork_test.go:977 +0xe1d testing.tRunner() /home/travis/.gimme/versions/go1.14.7.linux.amd64/src/testing/testing.go:1039 +0x1eb ``` ## Test Plan The CI should run this test. I don't think the flaky test runs on pull requests right now, but it should run during the nightly builds. The race is not reproducible on my system. Running this before and after the test does not report any errors (until a 10 minute timeout): ``` $ gotestsum --format testname -- -tags "sqlite_unlock_notify sqlite_omit_load_extension osusergo netgo static_build" -race github.com/algorand/go-algorand/network -run TestGetPeers -count 1000000000 ```
Recently the build tooling was updated in algorand#2108 which split out the installation of Go tools golint, stringer, swagger, msgp into a separate script install_buildtools.sh. This updates the README to reflect that in the environment setup instructions.
…lgorand#2197) run some independent commands in parallel, total test 230s -> 170s `20210526_115456 :179 finished e2e_subs/sectok-app.sh OK in 235.471021 seconds` down to `20210526_122739 :179 finished e2e_subs/sectok-app.sh OK in 169.771514 seconds`
Optimize assets-app test
When you run goal wallet new there is a confusing warning ("One or more non-printable characters ...") presented just before the backup phrase, which is displayed between some sanitized ANSI codes. This is due to security improvements in algorand#1585 to prevent goal from printing control characters. This PR removes the ANSI color formatting altogether from the infoBackupPhrase (already done for Windows in algorand#1942), which is one simple way to clean up this output and remove the warning message.
The TestApplicationsUpgradeOverREST e2e had a bug in the testing code - if the upgrade takes place before the broadcast takes place, the broadcast result could be non-err. This PR ensures that if we get a non-error, we have already upgraded.
…6.0-remerge go-algorand relstable2.6.0-remerge
debug tools: improve carpenter by adding timestamp
…se. (algorand#2206) The e2e test TestRewardUnitThreshold was failing on this statement: ```golang r.Truef(latestBalanceNewAccount.PendingRewards >= (initialBalanceNewAccount+amountRichAccountPokesWith)/rewardUnit, "new account should have pending rewards (e2e)") ``` I replaces the `r.Truef` with `r.GreaterOrEqualf` to get the values off when it fails. ( I wan't able to reproduce it, so I figured getting some extra info for the next time would be helpful )
While talking to @tsachiherman we noticed stray fmt'd files in my repo after running make sanity, and he suggested submitting a fix PR. I discovered this shell line generated a list of gofiles that is always empty, probably because the way we set up builds for branches (and vendoring) has changed since it was written.
…d#2216) Two small improvements recommended during CR of teal4-math
Allow paying for more program space.
This change allows contract to contract composability by allowing future app call transactions to read the scratch space of previous transactions. This allows smart contracts to expose side effects for future application calls, such as a price oracle returning the exchange rate of a particular asset pair. Changes include: Adding PastSideEffects fields to EvalParams. gload and gloads docs.
…ight expire. (algorand#2203) Refresh wallet handle after waiting for series of rounds, as handle might expire
When a relay receives a proposal for a future round, the proposal fails to be relayed. This change fixes that by sending it when the agreement advances to the corresponding round.
Fix issue cp: cannot create regular file 'gen/devnet/genesis.json': No such file or directory by creating a directory if it doesn't exist to store the genesis file. Changed the reference genesis.json file to installer/genesis/ path.
For some reason git failed to find a common accessor that would be ~50 commits back after #2069. So it re-merged everything from the point where |
tsachiherman
approved these changes
Jun 2, 2021
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.
pretty big PR
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.