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

Support for multiple contracts per account #7

Conversation

@janezpodhostnik janezpodhostnik force-pushed the janez/multiple-smart-contract-support branch from 8b39a62 to 0637150 Compare September 25, 2020 19:58
@janezpodhostnik janezpodhostnik self-assigned this Sep 29, 2020
@@ -56,6 +56,8 @@ require (

replace mellium.im/sasl => github.com/mellium/sasl v0.2.1

replace github.com/fxamacker/cbor/v2 => github.com/turbolent/cbor/v2 v2.2.1-0.20200911003300-cac23af49154
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@turbolent I have to add this otherwise it doesn't build. Is this ok?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, right. The replace is only local to the package itself (i.e. onflow/cadence), and won't be applied in packages importing it (like here, flow-go). Let me look into this

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fvm/env.go Outdated Show resolved Hide resolved
fvm/env.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
@janezpodhostnik janezpodhostnik marked this pull request as ready for review October 9, 2020 16:31
@turbolent
Copy link
Member

@janezpodhostnik Looks great! Can you please target this against a feature branch, we can't merge this to master yet.

@janezpodhostnik janezpodhostnik changed the base branch from master to feature/multiple-contract-support October 13, 2020 18:34
@janezpodhostnik
Copy link
Contributor Author

@janezpodhostnik Looks great! Can you please target this against a feature branch, we can't merge this to master yet.

done

Copy link
Member

@turbolent turbolent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, awesome work @janezpodhostnik!

Would be great to get a second review from someone more familiar with FVM, @psiemens @m4ksio could you maybe have a look please?

Copy link
Contributor

@psiemens psiemens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a huge feature, great job implementing it!

I left a few comments about the design, my biggest being a question about the usage of RLP

fvm/state/accounts.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
return fmt.Errorf("account with address %s does not exist", address)
}

newContracts, err := rlp.NewEncoder().Encode(contracts)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think we should store each contract in its own register slot?

RLP was a solution we used for account keys before we had given sufficient thought to how storage should work. I don't think we have to use it here unless there's a compelling need

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code of each contract is stored in a separate register – this "contracts" value / RLP list is the set of all contract names.

@janezpodhostnik I was also confused about the naming. Some ideas to alleviate that:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renaming was a good idea to make it clearer whats actually stored. I also switched to cbor encoder/decoder, or did you have something else in mind @psiemens?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@janezpodhostnik Renaming looks good!

I don't know what's commonly used for serialization on the EN/FVM side, might be good to keep it consistent.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see! I was a bit confused before.

Yep, CBOR is a good choice.

I suppose it would be even better if we could do a prefix scan for all of the contract_ keys. Is that why you brought it up on Slack, @turbolent? It looks like @ramtinms and @m4ksio are planning on adding support for that. How hard do you think it would be to remove this list in the future?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hard part about switching this to prefixes would be the register migration. The code change would be very minor.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@psiemens I had asked about the prefix scan on Slack because we need it for general iteration over all storage paths of an account, but yeah, it could be used here as well.

fvm/state/accounts_test.go Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
fvm/state/accounts_test.go Outdated Show resolved Hide resolved
fvm/state/accounts_test.go Outdated Show resolved Hide resolved
fvm/state/accounts.go Outdated Show resolved Hide resolved
Copy link
Contributor

@psiemens psiemens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just left a few more comments but nothing related to the logic.


// contractNames container for a list of contract names. Should always be sorted.
// To ensure this, don't sort while reading it from storage, but sort it while adding/removing elements
type contractNames []string
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I miss something, or we need this list only to check for presence?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also use it in env.go ResolveLocation. If in cadence an import is used as:

import from A
// instead of 
// import foo from A

That needs to resolve to all contracts on A, which we can only get by keeping a list of contracts on A (or by prefix search when that will be available)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure - does this require it to be sorted though?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it needs to be sorted to be deterministic. If it is not, the register reads/touches will not be consistent across different machines

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added the sorting to have a deterministic state commitment. The sorting wont be necessary if we just get them by key prefix.

@onflow onflow deleted a comment from janezpodhostnik Oct 20, 2020
@turbolent
Copy link
Member

@janezpodhostnik looks like there are enough approvals now, feel free to merge this and then https://github.com/dapperlabs/flow-emulator/pull/105 can be updated to use this feature branch

@janezpodhostnik janezpodhostnik merged commit 70cd252 into feature/multiple-contract-support Oct 26, 2020
@janezpodhostnik janezpodhostnik deleted the janez/multiple-smart-contract-support branch October 26, 2020 18:59
gomisha added a commit that referenced this pull request Jul 12, 2022
jordanschalm added a commit that referenced this pull request Jul 14, 2022
* update static epoch test to use same testing flow

* updated bft-tests.yml for debugging TestEpochStaticTransition/TestStaticEpochTransition

* added scheduled run every hour

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #1

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #2

* #3 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #4 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #5 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #6 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #7 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #8 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #9 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #10 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* remove sleep

* Dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* 7699 dummy commit

* 3651 dummy commit

* 21538 dummy commit

* 7108 dummy commit

* 7186 dummy commit

* 1772 dummy commit

* 30464 dummy commit

* 15633 dummy commit

* 11129 dummy commit

* 15839 dummy commit

* remove dummy file

* remove dummy file

Co-authored-by: gomisha <[email protected]>
gomisha added a commit that referenced this pull request Jul 15, 2022
* added timestamp to logs for block_state, testnet_state_tracker

* added CI flaky test debug workflow for TestEpochStaticTransition/TestStaticEpochTransition

* fixed typo in test-category in CI file

* fixed docker build image target

* updated workflow to run cron scheduler on non-master branch

* fixed bug in CI file - flaky-test-debug.yml

* Update static epoch test to use same testing flow (#2761)

* update static epoch test to use same testing flow

* updated bft-tests.yml for debugging TestEpochStaticTransition/TestStaticEpochTransition

* added scheduled run every hour

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #1

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #2

* #3 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #4 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #5 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #6 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #7 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #8 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #9 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #10 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* remove sleep

* Dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* 7699 dummy commit

* 3651 dummy commit

* 21538 dummy commit

* 7108 dummy commit

* 7186 dummy commit

* 1772 dummy commit

* 30464 dummy commit

* 15633 dummy commit

* 11129 dummy commit

* 15839 dummy commit

* remove dummy file

* remove dummy file

Co-authored-by: gomisha <[email protected]>

* minor cleanup

* more minor cleanup

Co-authored-by: Jordan Schalm <[email protected]>
durkmurder added a commit that referenced this pull request Jul 19, 2022
* update to Cadence v0.24.6

* Remove header caching

This 1 item caching introduces global lock and source of a 3+% slowdown.
```
$ go test -tags relic -bench='BenchmarkComputeBlock' -count 10 -run='^$' ./engine/execution/computation/.
...
$ benchstat old new
name                             old us/tx    new us/tx     delta
ComputeBlock/1/cols/16/txes-8       590 ± 3%      803 ±62%    ~     (p=0.404 n=10+10)
ComputeBlock/1/cols/32/txes-8       554 ± 2%      559 ± 2%  +0.93%  (p=0.043 n=9+8)
ComputeBlock/1/cols/64/txes-8       557 ± 4%      538 ± 2%  -3.46%  (p=0.000 n=10+10)
ComputeBlock/1/cols/128/txes-8      560 ± 1%      538 ± 2%  -3.92%  (p=0.000 n=7+9)
ComputeBlock/4/cols/16/txes-8       558 ± 3%      539 ± 1%  -3.51%  (p=0.000 n=10+10)
ComputeBlock/4/cols/32/txes-8       555 ± 1%      540 ± 1%  -2.81%  (p=0.000 n=10+10)
ComputeBlock/4/cols/64/txes-8       556 ± 2%      538 ± 2%  -3.13%  (p=0.000 n=10+10)
ComputeBlock/4/cols/128/txes-8      546 ± 1%      527 ± 2%  -3.50%  (p=0.000 n=10+10)
ComputeBlock/16/cols/16/txes-8      552 ± 3%      533 ± 2%  -3.44%  (p=0.000 n=10+10)
ComputeBlock/16/cols/32/txes-8      548 ± 1%      527 ± 2%  -3.68%  (p=0.000 n=9+10)
ComputeBlock/16/cols/64/txes-8      548 ± 1%      530 ± 1%  -3.34%  (p=0.000 n=10+10)
ComputeBlock/16/cols/128/txes-8     522 ± 1%      519 ± 2%    ~     (p=0.327 n=9+9)
```

* update crypto module version

* fix DST dashes

* update crypto version to v0.24.4

* fix import errors

* added prometheus gauges

* go fmt

* check if block is nil

* fix error check

* update help message

* update test to support Epoch Tx

* fixed mock

* comments

* update Cadence

* update Cadence

* update location creation

* add logs

* update Go SDK

* [BFT Testing] refactors gRPC interface  (#2599)

* empty wintermute test

* fix for brining up corrupted node

* added testnet.AsCorrupted() to specify corrupted node config

* added happy path from verification test; dummy orchestrator WIP implementation while BootstrapNetwork() is refactored

* dummy orchestrator WIP - added attack network

* adds corrupted identities

* implements dummy orchestrator

* wires in dummy orchestrator

* refactors wintermute

* adds log for attack network

* refactors lifecycle of attacker

* adds port exposing

* enables port exposing for corrupted nodes

* adds logging for corrupted nodes

* adds logging for default conduit factory

* fixes bug with building corrupted images

* refactors chain id as a parameter

* implements corrupted port mapping

* temp solution adds attacker docker address

* adds port mapping to test suite

* uncomments attacker registration

* fixes bug: empty publish list

* adds docker and local mode to attacker

* new Github workflow for BFT integration tests (#2418)

* added another bft branch filter

* implements dummy orchestrator tracker

* adds error for attacker address

* adds comment to corrupted connector

* removes redundant epose method

* adds a godoc

* adds comment

* removed unit-integration test category

* adds safety check for orrupted and ghost nodes

* adds godoc for dummy orchestrator

* adds more encapsulation

* adds comments

* makes generating execution receipt exportable

* (no branch): Auto stash before checking out "HEAD"

* removes corrupted execution result

* makes generating result approval exportable

* adds result approval generation to ccf

* fixes the tests

* adds attestation fixture

* adds message content as a parameter to message fixture

* fixes bug with publish

* wip

* adds test for result approval

* adds corrupted execution receipt test

* adds todos to factory

* refactors output types of wintermute orchestrator

* fixes lint issue

* removes unused variable

* Misha/6221 BFT Dummy Orchestrator - CI fix (#2445)

* CI fix - put back unit-integration test category, removed error test category check in test-setup.sh

* CI debug - test-setup.sh modified for debugging

* CI debug - run-tests.sh modified for debugging

* CI debug - run-tests.sh modified to send echo statements to standard error

* CI fix - test-setup.sh modified to send echo statements to standard error

* CI fix - added logging to test-setup.sh for unmatched test category

* CI testing - re-enabled unit test running

* CI - skipped-test-tracker.yml ready for CI test - added BFT integration tests, CI logging to test running

* CI - skipped-test-tracker.yml ready for CI test - run-tests.sh, test-setup.sh reverted to original actions to test in CI

* CI - skipped-test-tracker-integration.yml ready for CI test - added BFT integration tests, CI logging to test running

* CI - skipped-test-tracker-integration.yml, skipped-test-tracker.yml reverted back to not using tee for running tests - tests were taking too long to complete run

* CI - skipped-test-tracker-integration.yml, skipped-test-tracker.yml reverted to not using integration-bft test because it's consistently failing

* CI - skipped-test-tracker-integration.yml, skipped-test-tracker.yml reverted to not using BFT branches

* adds attack state getter

* adds wait for block by id

* adds wintermute test suite

* refactors wintermute attack orchestrator

* adds wintermute test

* Update insecure/wintermute/helpers.go

Co-authored-by: Misha <[email protected]>

* Update insecure/wintermute/helpers.go

Co-authored-by: Misha <[email protected]>

* fixes lint

* fixes receipt and approval bug with factory

* adds pass through test for receipt

* adds approval test

* adds chunk data pack with start state

* fixes bugs with wintermute orchestrator

* adds comments to attack orchestrator

* adds comments to wintermute orchestrator

* revises a comment

* adds comments

* implements test for passing through miscellaneous events

* fixes a bug

* adds testing for result approval pass through

* adds test wintermute result approval

* adds wait for approvals from any

* refactors result approval from

* makes the code more DRY

* refactors wintermute attack test

* adds comment to wintermute test

* refactors wintermute test

* adds is flag set

* lint fix

* lint fix

* nit

* refactors grpc interface

* updates grpc interface

* refactors attacknetwork interface

* refactors corrupted client

* updates mocks

* refactors corrupted connection

* refactors lifecycle management of corrupted connector

* refactors corrupted connector interface

* refactors factory

* removes grpc from attack network

* makes corrupted connector ready done aware

* fixes corrupted connector

* fixes corrupted connector tests

* re-generates mocks

* implements with mock ccfs

* wip

* removes mocks that we no longer need

* refactors corrupted connector interface

* regenerates mocks

* fixes corrupted connector tests

* wip: fixes attack network tests

* fixes all tests in attack network

* refactors mock attacker observer client

* fixes channel bug with factory

* fixes factory tests

* refactors integration tests

* refactors channel-based delivery

* fixes a bug with mock ccf

* BFT CI - fixed building all docker images for BFT tests, not just corrupted images

* increases timeout

* bumps up the timeout

* switches log level

* adds logging to factory

* switches back log levels

* fixes race condition

* skipping the test

* skipping test

* skips other tests that need a ccf grpc server

* fixes race condition in ccf

* adds more logging info

* makes attacker registration exported

* adds checking for attacker registration prior to sending messages

* updated to go 1.18

* switches all logs to debug

* unskips pass through

* adds block rate to pass through

* adds hotstuff timeout

* replaces testnet trakcer

* refactors log level

* excludes attacker

* switches all nodes to honest

* removes timeout

* skips wintermute

* comments out push approval channel

* comments in push approvals

* lint fix

* fixes lint and unskips passthrough

* skips passthrough and unskips wintermute

* skips wintermute, unskips passthrough

* bft integration tests running sequentially

* Update insecure/wintermute/attackOrchestrator.go

Co-authored-by: Jordan Schalm <[email protected]>

* Update integration/tests/bft/wintermute/wintermute_test.go

Co-authored-by: Jordan Schalm <[email protected]>

* Update integration/tests/lib/result_approval_state.go

Co-authored-by: Jordan Schalm <[email protected]>

* Update integration/tests/bft/wintermute/suite.go

Co-authored-by: Jordan Schalm <[email protected]>

* lint fix

* refactors sealing condition

* lint fix

* Update integration/tests/lib/result_approval_state.go

Co-authored-by: Jordan Schalm <[email protected]>

* adds more logging to block state

* adds more logging to state tracker

* bumps up wintermute timeout

* adds more logging to factory

* fixes a bug with factory

* fixes wintermute sealing condition

* Update integration/tests/bft/wintermute/wintermute_test.go

Co-authored-by: Jordan Schalm <[email protected]>

* Update integration/tests/common/sealing_and_verification.go

Co-authored-by: Jordan Schalm <[email protected]>

* Update integration/tests/bft/wintermute/wintermute_test.go

Co-authored-by: Peter Argue <[email protected]>

* Update insecure/wintermute/attackOrchestrator_test.go

Co-authored-by: Peter Argue <[email protected]>

* refactors wait group

* lint fix

* escalates log levels

* revises attack network tests

* revises a comment

* hammerings on corrupted node connection

* unskips factory tests

* fixes a log message

* revises corrupted connectors test

* adds a comment

* adds a comment

* adds a comment

* refactors factory

* Makefile - added clarification why need to run bft tests sequentially

* adds comments to mockAttackerObserveClient

* nit

* Update insecure/attacknetwork/corruptedConnector.go

Co-authored-by: Peter Argue <[email protected]>

* renames grpc method

* makes receive loop blocking

* go fmt

* go fmt

* moving lock from orchestrator to attacker

* adds a comment

Co-authored-by: gomisha <[email protected]>
Co-authored-by: Misha <[email protected]>
Co-authored-by: Jordan Schalm <[email protected]>
Co-authored-by: Peter Argue <[email protected]>

* fix migration test

* update test

* add legacy controller migration to the migrations

* remove time.Sleep

* update core contracts

* update outdated mocks

* add done channel to HotstuffFollower

* update HotstuffFollower mock

* fix unit tests

* update HotstuffFollower mock

* Revert "update HotstuffFollower mock"

This reverts commit fa42d25.

* close the done channel without defer

* removed tempfix comment

* fix lint

* update flow-core-contract module version

* fix linter issue

* update state commitments in tests after service account contract updates

* update to read only channel

* update state commitments

* improve error documentation for middleware

- add BenignNetworkingError sentinel that covers the entire class of benign networking errors
- add MiddlewareStartError sentinel that covers the entire class of errors returned from Middleware.start
- return appropriate sentinel errors and update godocs

* Update access_api_proxy_test.go

* comments and warning log

* fixed interface

* fix bls tests

* update to read only channel

* update to master of flow-go-sdk

* update to read only channel

* added a check for 0 execution nodes being passed

* Unskipping passing flaky test

* Moving emulator-based tests to the integration package (#2738)

* [Exec] Remove global lock from script execution

* process block responses

* remove unused import

* Update consensus/hotstuff/follower_loop.go

Co-authored-by: Leo Zhang <[email protected]>

* send proposalTask by pointer

* lint fix

* handleExecutionReceipt check for missing blocks

* call metric within the callback for handleCollection

* benchstat improvement

* go fmt

* [BFT Testing] Add BFT tests to regular CI workflows (#2725)

* added integration-bft test-category to flaky-test-monitor-integration.yml

* added integration-bft test-category to workflows - 1) CI 2) flaky-test-monitor 3) skipped-test-tracker 4) skipped-test-tracker-integration

* added corrupted Docker images to docker-build-flow target

* Makefile minor clean up

Co-authored-by: Yahya Hassanzadeh <[email protected]>

* reduce benchmark_repetitions a little

* removed uneccesary mock

* wrapping not found error

* record metrics inside callback

* fix return empty list without error

* [Exec] Remove Stop The World pauses from trx execution

* remove STW from script execution

* simplify

* fixed getTransactionResultsByBlockIDFromAnyExeNode

* factor runtime metrics to a separate file

* rename the file

* fixed lint

* add a comment to the GetHeapAllocsBytes()

* [Networking] Fixes flakey DNS cache expiry test (#2670)

* Debug logging messages for expire cache test

* Added comments to the code

* Swapped to sequential queries for testing purposes

* adding log messages

* Logging and locking cache

* switches back to sequential

* wip

* adds logger to cache and makes update atomic

* cleans up resolver test

* cleans up resolver test

* cleans up resolver

* wip

* fixes race condition

* refactors dns cache interface

* implements locking ip and txt domains

* fixes broken tests

* refactors dns locking signature

* adds test for dns cache lock

* adds comments for tests

* adds go doc

* moves locking from resolver to cache

* cleans up logs

* refactors dns cache tests

* adds update ip domain to dns cache

* adds update txt domain to dns cache

* revises a comment

* adds dns cache update test

* refactors dns cache interface

* updates dns cache docs

* refactors records

* updates dns cache docs

* fixes a bug with dns cache

* revises dns cache

* refactors with resolution result

* reverts log level for unitttests

* adds return for error path of locking a domain

* fixes a comment

* reduces test timeouts

Co-authored-by: Leon Yu <[email protected]>

* Update command used

* remove sentinels, instead document benign errors

* return errors directly

* Update engine/access/ingestion/engine.go

Co-authored-by: Peter Argue <[email protected]>

* update maxReceiptHeight

* update maxCollectionHeight

* add comment to the metric name string

Co-authored-by: Leo Zhang <[email protected]>

* add consistency to error docs

* optimize emergency-sealing check

limit emergency sealing count

add comments

update comments

rename variables and add comments

suggestions for PR #2673 (#2703)

* expanded documentation around emergency sealing and renamed a few variables to improve clarity

* typo

* Update engine/consensus/approvals/Readme.md

Co-authored-by: Leo Zhang <[email protected]>

rename config

fix tests

fix tests

Apply suggestions from code review

Co-authored-by: Jordan Schalm <[email protected]>

update comments

* comments and switch followerBlockProposal struct for inRangeBlockResponse argument

* chore(localnet): faster account creation

* wrap error message

Co-authored-by: Leo Zhang <[email protected]>

* comments

Co-authored-by: Leo Zhang <[email protected]>

* Update engine/common/follower/engine.go

Co-authored-by: Leo Zhang <[email protected]>

* comments and go fmt

* Fixed docker-build-loader docker image build failure

* tweak Programs locking + minor refactoring

- reduce Get's critical section (don't hold lock when looking up parent's entry)
- guard HasChanges

* remove disk size metrics

* Don't leak signerLock outside of Account

* chore(loader): faster worker Stop()

* add signer ids to access API

fix access/handler

fix tests

fix tests

* Add Andrew Meyer to performance stream

Adding myself to the performance stream as suggested by @SaveTheRbtz

* chore(loader): switch from Client to Access API

* [Execution] check if state commitment exists before executing scripts (#2763)

* optimize inner loop

* add tests and test fix

* lint fix

* remove wal_metrics

* [AN] - Trigger Cache Eviction on Overwrite (#2760)

* trigger eviction logic for overwriting an entry

* comment with reasoning

Co-authored-by: Vishal <[email protected]>

* chore(loader): cleanup follower

* address PR comments

* cleanup comments

* consistent naming

* remove some details from comment

* chore(loader): wait for account creation results

* go mod tidy

* Update state/protocol/util.go

Co-authored-by: Alexander Hentschel <[email protected]>

* Update access/handler.go

Co-authored-by: Alexander Hentschel <[email protected]>

* Update state/protocol/util.go

Co-authored-by: Alexander Hentschel <[email protected]>

* Update state/protocol/util.go

Co-authored-by: Alexander Hentschel <[email protected]>

* Update README.md

Update note about setting up the crypto module locally for every new version

* add unit test for unhandled sealing segment case

* handle multi-block root sealing segment

* s/Rem/Remove/g to improve code readability

* duplicate error in the return statement

* improve naming

* [BFT Testing] Fixes wintermute orchestrator race condition (#2780)

* adds some comments

* adds mutual exclusion to attack orchestrator

* removes debug lines

* Unskipping join and leave ln test

* Apply suggestions from code review

Co-authored-by: Khalil Claybon <[email protected]>

* Apply suggestions from code review

Co-authored-by: Khalil Claybon <[email protected]>

* remove timeout case

* unused import

* work in progress

* resolved circular import

* added mock, linted code

* more cleanup

* organized imports

* organized imports

* organized imports

* :-(

* still trying to convince linter :-(   :-(

* next try to convince linter

* wip

* attempt failed

* [localnet] Putting limit to EXECUTION config to avoid potential confusion

* [localnet] also apply the same limit check for Consensus node

* wip

* linted code

* reducing unnecessary changes

* complete and mature draft

* Apply suggestions from code review

Co-authored-by: Jordan Schalm <[email protected]>

* addressing reviewer comments part 2

* extended `UnknownBlockError`

* linted code

* Add comments for returned errors

* change unittest fixture to use *flow.Header instead of flow.Header

Make test code more consistent with regular code

* add explicit note that root block is self-sealing

* Invoke contracts directly instead of via currying

* chore(localnet): fix observer's trace endpoint

* fix flaky test: TestStaticEpochTransition (#2698)

* added timestamp to logs for block_state, testnet_state_tracker

* added CI flaky test debug workflow for TestEpochStaticTransition/TestStaticEpochTransition

* fixed typo in test-category in CI file

* fixed docker build image target

* updated workflow to run cron scheduler on non-master branch

* fixed bug in CI file - flaky-test-debug.yml

* Update static epoch test to use same testing flow (#2761)

* update static epoch test to use same testing flow

* updated bft-tests.yml for debugging TestEpochStaticTransition/TestStaticEpochTransition

* added scheduled run every hour

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #1

* kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition #2

* #3 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #4 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #5 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #6 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #7 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #8 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #9 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* #10 kick off another CI test run for TestEpochStaticTransition/TestStaticEpochTransition

* remove sleep

* Dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* 7699 dummy commit

* 3651 dummy commit

* 21538 dummy commit

* 7108 dummy commit

* 7186 dummy commit

* 1772 dummy commit

* 30464 dummy commit

* 15633 dummy commit

* 11129 dummy commit

* 15839 dummy commit

* remove dummy file

* remove dummy file

Co-authored-by: gomisha <[email protected]>

* minor cleanup

* more minor cleanup

Co-authored-by: Jordan Schalm <[email protected]>

* chore(trace): rename file

* [FVM] removing legacy controller from storage (#2713)

* remove legacy controller

* fix tests

* update chunk verifier

* update test

* update emulator to support controller removal

* update flow protobuf version

* go mod tidy

* apply PR's comments

* update flow proto files

* update flow emulator version

* go mod tidy

* update state commitment

* no in-place payload update

* expected update to state commitments

* update recent changes

* apply PR's comment

* Skipped broken tests related to active pacemaker

* Skipped more tests

* Skipped more tests

Co-authored-by: Bastian Müller <[email protected]>
Co-authored-by: bors[bot] <26634292+bors[bot]@users.noreply.github.com>
Co-authored-by: GetElastech <[email protected]>
Co-authored-by: Alexey Ivanov <[email protected]>
Co-authored-by: Tarak Ben Youssef <[email protected]>
Co-authored-by: Daniel Holmes <[email protected]>
Co-authored-by: danielholmes839 <[email protected]>
Co-authored-by: Khalil Claybon <[email protected]>
Co-authored-by: Janez Podhostnik <[email protected]>
Co-authored-by: Janez Podhostnik <[email protected]>
Co-authored-by: ramtinms <[email protected]>
Co-authored-by: Ramtin M. Seraj <[email protected]>
Co-authored-by: Simon Zhu <[email protected]>
Co-authored-by: Yahya Hassanzadeh <[email protected]>
Co-authored-by: gomisha <[email protected]>
Co-authored-by: Misha <[email protected]>
Co-authored-by: Jordan Schalm <[email protected]>
Co-authored-by: Peter Argue <[email protected]>
Co-authored-by: Faye Amacker <[email protected]>
Co-authored-by: Daniel Sainati <[email protected]>
Co-authored-by: lolpuddle <[email protected]>
Co-authored-by: Tarak Ben Youssef <[email protected]>
Co-authored-by: Leon Yu <[email protected]>
Co-authored-by: Leo Zhang <[email protected]>
Co-authored-by: Tony Z <[email protected]>
Co-authored-by: Patrick Lee <[email protected]>
Co-authored-by: Alexey Ivanov <[email protected]>
Co-authored-by: Andrew Meyer <[email protected]>
Co-authored-by: Vishal <[email protected]>
Co-authored-by: Alexander Hentschel <[email protected]>
Co-authored-by: danielholmes839 <[email protected]>
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.

5 participants