-
Notifications
You must be signed in to change notification settings - Fork 524
go-algorand 2.8.0-stable #2622
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 2.8.0-stable #2622
Conversation
peerSelector.go: various bug fixes - introduce peerSelectorPeer to wrap the network.Peer and add peerClass information, to be able to distinguish between peers of the same address but different classes. - keep track of download failures to be able to increase the cost of each failure when failing more than succeeding. This is to evict the peer faster when constantly failing to download. - initialize rankSum and rankSamples to initialRank of the class. Otherwise, the peer rank will have a very long warmup time before relfecting the correct rank. - let resetRequestPenalty bound the rank within the class bounds. Otherwise, the penalty calculation pushes the rank out of the class bounds (bug). - getNextPeer is local to the package - getNextPeer, PeerDownloadDurationToRank and RankPeer use peerSelectorPeer instead of network.Peer - refreshAvailablePeers distinguishes between peers with the same address but of different peer class - findPeer returns the peer given the address and the peer class (instead of just the address) catchpointCatchup_test.go: - Remove comment about giving the second node all the stake, since it is not the case here. - Use the round from the catchpoint instead of guessing the round as 36. In case the following catchpoint was obtained due to race conditions, checking for round 37 will be trivial, since it will also be obtained from the catchpoint. catchpointService.go and service.go: - Update the code to use peerSelectorPeer instead of network.Peer with peerSelector peerSelector_test.go: - Update the tests to use peerSelectorPeer instead of network.Peer with peerSelector - Cleanup debugging printouts.
Add tests to increase coverage for onlineacct roundlru txtail
Fix go-algorand dev builds for darwin-arm64 machines (Apple's M1 CPUs).
testing: add unit tests for ledger BlockQueue
testing: enable unit tests on travis mac build
Add enums to player permutation tests: This made it easier for me to understand the different 7 initial player states * 14 simulated events when reading through each permutation's expected actions. I hope the enum names I picked are accurate — would appreciate any feedback on better names.
testing: move extra page test to e2e_subs
Specify that the truncated division is used (https://en.wikipedia.org/wiki/Modulo_operation#Variants_of_the_definition)
mostly casing issues, ie, algorand > Algorand || sqlite > SQLite
Use periodicSyncLogger in a test to avoid unnecessary log outputs.
Travis nightly build failed due to no-output for over 10m from build process.
Travis is currently unable to only notify on failures of a particular branch, however, it can notify on us on the build of a particular branch (both success and failures). Since we are also considering CircleCI, I think it would be best to just add the slack notification into the travis file now for the rel/nightly branch and notify the #devops-jenkins channel (where most of our jobs status activity goes) when it both succeeds/fails. The "successes" will also help us determine whether or not the test ran at all.
Adds extract opcodes that allow a substring to be extracted given a start index and a length (#2347). The specs for the extract and extract3 opcodes are the same as the substring and substring3 opcodes, but takes a length rather than an end index. This also adds extract16bits, extract32bits, extract64bits which extracts 2, 4, and 8 byte strings respectively and converts them into integers.
Both CentOS 7 and CentOS 8 support dnf-automatic, so using that for cron update is preferred. This should enable using the same package on both systems.
This PR remove 3 e2e tests that are deprecated ( i.e. for over a year now ) : TestClientPrioritizesPendingTransactions TestTransactionPoolExponentialFees TestTransactionPoolOrderingAndClearing All the 3 tests were designed to test ordering, fees and prioritization of transactions in the transaction pool. These feature were completely removed when we released v1/v2, and we have no plans to bring these back.
…lect actual behavior (#2554) Changes a helper function name from opExtractNBits to opExtractNBytes to reflect actual behavior.
…#2563) In current logic, the agreement is sending a notification to the catchup whenever it sees a cert vote threshold without a corresponding block. When this happens on a round that is no longer supported by the current binary, it would lead to continues requests for the said block. This PR addresses the issue by testing if the coming block is expected to be supported or not. In case we know that it won't be supported, we avoid downloading it entirely.
#2562) lookup in no-GOPATH locations for packages in gocodec testing; The existing code is trying to use the GOPATH as the base for the packages directories, however, this might not be the case when tests are being executed on travis.
The asset parameter fields name, unit name and url might contain non-utf 8 printable characters. This PR modifies the REST API so that the existing field would only be returned in case the entire string is a utf-8 printable string. To complement that, a _b64 version of the field would be provided, allowing the client to support non-printable strings.
Use dashes to match the v2 API convention.
This PR changes the way we check our understanding of the stack during assembly. We try to give errors as we assemble, based on the types that we believe are on the stack when we assemble an opcode that has stack expectations. Previously, we *only* check the very top of the stack, since almost all opcodes only looked at or modified the top. In addition, we were very conservative with opcodes that manipulated the stack. For example, once we assembled a `swap` we only knew that the top of the stack was [any, any]. If the top was [int, bytes], we lost track. Now we know the stack after that is [bytes, int]. Several opcodes still need this enhancement. "dig" and "swap" are done, and serve as examples. The following should be done next: `dup`, `dup2`, `cover`, `uncover`. Slightly trickier, we can also improve `select`. If both of the "then" and "else" types are the same, we can know that `select` leaves that type behind. `setbit` can be improved to return the type of the thing it is modifying. To enhance an opcode, write a typeOpcode function that determines, based on the opcodes immediates and on the current state of the stack, what checkStack should check confirm the prior stack state (for example, dig n needs a stack of depth n+1), and to setup the stack afterward (for example, we know the stack after `swap` in more detail that simply any,any. Register this typeOpcode function using "stacky()" in the opcodes table. These functions must be quite careful. The typestack might not be long enough due to user error. To report that nicely, we need to avoid panicing here, so checkStack can do its work. For example, `dig 4` needs to yield a StackValues of 5 StackAnys, even if the current typestack is only 3 deep.
Use byte format for asset b64 fields
go-algorand 2.8.0-beta
|
Jonathan Weiss seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Codecov Report
@@ Coverage Diff @@
## rel/stable #2622 +/- ##
=============================================
Coverage ? 46.97%
=============================================
Files ? 348
Lines ? 55715
Branches ? 0
=============================================
Hits ? 26170
Misses ? 26604
Partials ? 2941 Continue to review full report at Codecov.
|
algobarb
left a comment
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.
I think we're just waiting for the Travis build to pass
Highlights
This is a maintenance release focused around many test improvements and other optimizations. Additionally there are some added improvements, such as:
Changes
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources