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

Merge #3612 into #3653 #1

Conversation

michaeldiamant
Copy link

Summary

Brings algorand#3653 up-to-date with master by resolving a merge conflict caused by algorand#3612. Merge conflict arose in refreshDebugState() due to EvalContext.debugState being marked as a pointer.

Test Plan

Ran tests for files under merge conflict.

tolikzinovyev and others added 20 commits March 9, 2022 18:17
## Summary

Move eval prefetcher to its own package for better isolation. Some other refactoring was necessary.

## Test Plan

This is refactoring.
## Summary

Complementing algorand/indexer#916 this merges the AccountsErrorResponse fields into the "data" object in ErrorResponse, so SDKs do not to have to distinguish between different error response types.

## Test Plan

Update existing tests checking the old AccountsErrorResponse fields.
…-bit aligned address (algorand#3740)

## Summary

prefetcher: ensure the groupTask.incompleteCount is allocated on a 64-bit aligned address.

This is required in order to avoid the following on a ARM32:
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xb541efb0]

goroutine 4220 [running]:
runtime/internal/atomic.goLoad64(0x8ae33be4, 0xb67e0fec, 0x8cf54500)
	runtime/internal/atomic/atomic_arm.go:131 +0x1c
github.com/algorand/go-algorand/ledger/internal.(*accountPrefetcher).prefetch(0x8cf54500, 0xb68023f0, 0x8cf532c0)
	github.com/algorand/go-algorand/ledger/internal/evalprefetcher.go:384 +0x1268
created by github.com/algorand/go-algorand/ledger/internal.prefetchAccounts
	github.com/algorand/go-algorand/ledger/internal/evalprefetcher.go:87 +0x128
```

## Test Plan

Test manually.
Three opcodes that all pertain to FIDO2 authorization.  They are slated for Teal7 here, but they can be delayed by changing fidoVersion.

Co-authored-by: Igor Durovic <[email protected]>
Co-authored-by: algoidurovic <[email protected]>
Co-authored-by: [email protected] <[email protected]>
## Solution 

ledger refactoring: test 6M assets/apps per account
resolves https://github.com/algorand/go-algorand-internal/issues/1857


## Testing

This is a test
Summary
This PR replaces the usage of the LibGoal with the direct RestClient. The change could have performance implications when running against large sets of data.

Test Plan
This is a test.
* Fix typo in OpenAPI json and yml files

* Included output of make generate
## Summary

This PR improves the test in the following ways:
1. The checkPoint method is no longer timer-based; instead, it's using the WaitForBlock which moves the blocking operation to the node.
2. The generated accounts secret keys are now deterministic. This would allows repeated runs to have the same set of keys.
3. More testing was added for return variables across the test.

## Test Plan

This is a test.
Summary
The goal-partkey-information test randomly fails.
The changes in this PR improve the intermediate logs, which would be helpful in analyzing the source of the failure.

Test Plan
This is a test.
…rand#3759)

Summary
The ed25519 batch verification implementation in algorand#3031 provides a performance improvement for validating multiple signatures (such as multiple transaction signatures). Since each OneTimeSignature used by agreement votes is actually 3 ed25519 signatures, this hooks up the verifier to the batch verification implementation, yielding a ~12% performance improvement in the included benchmark on my computer.

Test Plan
Added benchmark, existing tests should pass.
Simplify handling of "active slots" to fix possible obo error. Unit tests added to confirm typing.
* SHA3-256 added

Co-authored-by: Matt-Ryley <[email protected]>
…nsus version (algorand#3730)

## Summary

When the agreement receives a proposal from a consensus version it cannot yet support, the node disconnects from the sender and logs the fact that it was unable to decode the proposal without providing guidance on the consensus version issue. This PR adds a warning message to the log specifying that the agreement cannot handle the consensus version's proposals
## Summary

LookupLatest combines base account and resources data, and in some cases it cannot
determine reliably how many resources account has, therefore it reads data directly from the DB.
The DB might advance causing cachedDBRound (and base account data) and  resourceDbRound
to be out of sync, and a retry needed.
If on retry baseAccount data is outdated, foundAccount flag incorrectly contains a value from
a previous iteration causing completion by checkDone because of empty ad (ledgercore.AccountData).
Having ad and foundAccount synchronized on retry eliminates the problem.

In addition checkDone improved for scenarios when accounts have only own assets.

## Test Plan

Added new test
## Summary

This PR completes the previous started efforts and ensure all the requests are tunneled directly to the participation registry for optimal performance.

## Test Plan

Unit tests added.
## 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 <[email protected]>

* make sure return types tested even when simple errors occur

Co-authored-by: michaeldiamant <[email protected]>
@michaeldiamant
Copy link
Author

Closing - algorand@c25ba18 merges master in.

@michaeldiamant michaeldiamant deleted the algochoi/tealdbg-subroutine_merge_master branch March 16, 2022 18:56
algochoi pushed a commit that referenced this pull request May 27, 2022
algochoi pushed a commit that referenced this pull request Sep 13, 2022
Tests: Remove using unreleased semicolon support in AVM test
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.

10 participants