Skip to content

Commit 75366b6

Browse files
authored
Merge branch 'master' into tarak/optimize-ci-setup
2 parents d89dbdd + 9303e27 commit 75366b6

File tree

76 files changed

+4309
-674
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+4309
-674
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ generate-mocks: install-mock-generators
156156
mockery --name '.*' --dir=engine/execution/computation/computer --case=underscore --output="./engine/execution/computation/computer/mock" --outpkg="mock"
157157
mockery --name '.*' --dir=engine/execution/state --case=underscore --output="./engine/execution/state/mock" --outpkg="mock"
158158
mockery --name '.*' --dir=engine/collection --case=underscore --output="./engine/collection/mock" --outpkg="mock"
159+
mockery --name '.*' --dir=engine/common/follower/cache --case=underscore --output="./engine/common/follower/cache/mock" --outpkg="mock"
159160
mockery --name '.*' --dir=engine/consensus --case=underscore --output="./engine/consensus/mock" --outpkg="mock"
160161
mockery --name '.*' --dir=engine/consensus/approvals --case=underscore --output="./engine/consensus/approvals/mock" --outpkg="mock"
161162
rm -rf ./fvm/mock

cmd/access/node_builder/access_node_builder.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ func (builder *FlowAccessNodeBuilder) enqueuePublicNetworkInit() {
10721072
// - The passed in private key as the libp2p key
10731073
// - No connection gater
10741074
// - Default Flow libp2p pubsub options
1075-
func (builder *FlowAccessNodeBuilder) initLibP2PFactory(networkKey crypto.PrivateKey, bindAddress string, networkMetrics module.LibP2PMetrics) p2pbuilder.LibP2PFactoryFunc {
1075+
func (builder *FlowAccessNodeBuilder) initLibP2PFactory(networkKey crypto.PrivateKey, bindAddress string, networkMetrics module.LibP2PMetrics) p2p.LibP2PFactoryFunc {
10761076
return func() (p2p.LibP2PNode, error) {
10771077
connManager, err := connection.NewConnManager(builder.Logger, networkMetrics, builder.ConnectionManagerConfig)
10781078
if err != nil {
@@ -1113,6 +1113,7 @@ func (builder *FlowAccessNodeBuilder) initLibP2PFactory(networkKey crypto.Privat
11131113
SetPeerManagerOptions(connection.ConnectionPruningDisabled, builder.PeerUpdateInterval).
11141114
SetStreamCreationRetryInterval(builder.UnicastCreateStreamRetryDelay).
11151115
SetGossipSubTracer(meshTracer).
1116+
SetGossipSubScoreTracerInterval(builder.GossipSubConfig.ScoreTracerInterval).
11161117
Build()
11171118

11181119
if err != nil {

cmd/collection/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,10 @@ func main() {
397397
collectionRequestQueue,
398398
collectionProviderWorkers,
399399
channels.ProvideCollections,
400-
filter.HasRole(flow.RoleAccess, flow.RoleExecution),
400+
filter.And(
401+
filter.HasWeight(true),
402+
filter.HasRole(flow.RoleAccess, flow.RoleExecution),
403+
),
401404
retrieve,
402405
)
403406
}).

cmd/execution_builder.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ import (
4949
"github.com/onflow/flow-go/engine/execution/rpc"
5050
"github.com/onflow/flow-go/engine/execution/state"
5151
"github.com/onflow/flow-go/engine/execution/state/bootstrap"
52-
"github.com/onflow/flow-go/engine/execution/state/delta"
5352
"github.com/onflow/flow-go/fvm"
5453
fvmState "github.com/onflow/flow-go/fvm/state"
5554
"github.com/onflow/flow-go/fvm/systemcontracts"
@@ -951,7 +950,10 @@ func (exeNode *ExecutionNode) LoadReceiptProviderEngine(
951950
receiptRequestQueue,
952951
exeNode.exeConf.receiptRequestWorkers,
953952
channels.ProvideReceiptsByBlockID,
954-
filter.HasRole(flow.RoleConsensus),
953+
filter.And(
954+
filter.HasWeight(true),
955+
filter.HasRole(flow.RoleConsensus),
956+
),
955957
retrieve,
956958
)
957959
return eng, err
@@ -1083,18 +1085,18 @@ func getContractEpochCounter(
10831085
script := fvm.Script(scriptCode)
10841086

10851087
// execute the script
1086-
err = vm.Run(vmCtx, script, delta.NewDeltaView(snapshot))
1088+
_, output, err := vm.RunV2(vmCtx, script, snapshot)
10871089
if err != nil {
10881090
return 0, fmt.Errorf("could not read epoch counter, internal error while executing script: %w", err)
10891091
}
1090-
if script.Err != nil {
1091-
return 0, fmt.Errorf("could not read epoch counter, script error: %w", script.Err)
1092+
if output.Err != nil {
1093+
return 0, fmt.Errorf("could not read epoch counter, script error: %w", output.Err)
10921094
}
1093-
if script.Value == nil {
1095+
if output.Value == nil {
10941096
return 0, fmt.Errorf("could not read epoch counter, script returned no value")
10951097
}
10961098

1097-
epochCounter := script.Value.ToGoValue().(uint64)
1099+
epochCounter := output.Value.ToGoValue().(uint64)
10981100
return epochCounter, nil
10991101
}
11001102

cmd/observer/node_builder/observer_builder.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,7 @@ func (builder *ObserverServiceBuilder) validateParams() error {
846846
// * No connection manager
847847
// * No peer manager
848848
// * Default libp2p pubsub options
849-
func (builder *ObserverServiceBuilder) initLibP2PFactory(networkKey crypto.PrivateKey) p2pbuilder.LibP2PFactoryFunc {
849+
func (builder *ObserverServiceBuilder) initLibP2PFactory(networkKey crypto.PrivateKey) p2p.LibP2PFactoryFunc {
850850
return func() (p2p.LibP2PNode, error) {
851851
var pis []peer.AddrInfo
852852

@@ -888,6 +888,7 @@ func (builder *ObserverServiceBuilder) initLibP2PFactory(networkKey crypto.Priva
888888
}).
889889
SetStreamCreationRetryInterval(builder.UnicastCreateStreamRetryDelay).
890890
SetGossipSubTracer(meshTracer).
891+
SetGossipSubScoreTracerInterval(builder.GossipSubConfig.ScoreTracerInterval).
891892
Build()
892893

893894
if err != nil {

cmd/scaffold.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ func (fnb *FlowNodeBuilder) BaseFlags() {
185185
fnb.flags.BoolVar(&fnb.BaseConfig.NetworkConnectionPruning, "networking-connection-pruning", defaultConfig.NetworkConnectionPruning, "enabling connection trimming")
186186
fnb.flags.BoolVar(&fnb.BaseConfig.GossipSubConfig.PeerScoring, "peer-scoring-enabled", defaultConfig.GossipSubConfig.PeerScoring, "enabling peer scoring on pubsub network")
187187
fnb.flags.DurationVar(&fnb.BaseConfig.GossipSubConfig.LocalMeshLogInterval, "gossipsub-local-mesh-logging-interval", defaultConfig.GossipSubConfig.LocalMeshLogInterval, "logging interval for local mesh in gossipsub")
188+
fnb.flags.DurationVar(&fnb.BaseConfig.GossipSubConfig.ScoreTracerInterval, "gossipsub-score-tracer-interval", defaultConfig.GossipSubConfig.ScoreTracerInterval, "logging interval for peer score tracer in gossipsub, set to 0 to disable")
188189
fnb.flags.UintVar(&fnb.BaseConfig.guaranteesCacheSize, "guarantees-cache-size", bstorage.DefaultCacheSize, "collection guarantees cache size")
189190
fnb.flags.UintVar(&fnb.BaseConfig.receiptsCacheSize, "receipts-cache-size", bstorage.DefaultCacheSize, "receipts cache size")
190191

cmd/util/ledger/reporters/account_reporter.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,12 @@ func (r *AccountReporter) Report(payload []ledger.Payload, commit ledger.State)
125125
}
126126

127127
type balanceProcessor struct {
128-
vm fvm.VM
129-
ctx fvm.Context
130-
view state.View
131-
env environment.Environment
132-
balanceScript []byte
133-
momentsScript []byte
128+
vm fvm.VM
129+
ctx fvm.Context
130+
storageSnapshot state.StorageSnapshot
131+
env environment.Environment
132+
balanceScript []byte
133+
momentsScript []byte
134134

135135
accounts environment.Accounts
136136

@@ -174,11 +174,11 @@ func NewBalanceReporter(
174174
txnState)
175175

176176
return &balanceProcessor{
177-
vm: vm,
178-
ctx: ctx,
179-
view: view,
180-
accounts: accounts,
181-
env: env,
177+
vm: vm,
178+
ctx: ctx,
179+
storageSnapshot: snapshot,
180+
accounts: accounts,
181+
env: env,
182182
}
183183
}
184184

@@ -343,15 +343,15 @@ func (c *balanceProcessor) balance(address flow.Address) (uint64, bool, error) {
343343
jsoncdc.MustEncode(cadence.NewAddress(address)),
344344
)
345345

346-
err := c.vm.Run(c.ctx, script, c.view)
346+
_, output, err := c.vm.RunV2(c.ctx, script, c.storageSnapshot)
347347
if err != nil {
348348
return 0, false, err
349349
}
350350

351351
var balance uint64
352352
var hasVault bool
353-
if script.Err == nil && script.Value != nil {
354-
balance = script.Value.ToGoValue().(uint64)
353+
if output.Err == nil && output.Value != nil {
354+
balance = output.Value.ToGoValue().(uint64)
355355
hasVault = true
356356
} else {
357357
hasVault = false
@@ -364,14 +364,14 @@ func (c *balanceProcessor) fusdBalance(address flow.Address) (uint64, error) {
364364
jsoncdc.MustEncode(cadence.NewAddress(address)),
365365
)
366366

367-
err := c.vm.Run(c.ctx, script, c.view)
367+
_, output, err := c.vm.RunV2(c.ctx, script, c.storageSnapshot)
368368
if err != nil {
369369
return 0, err
370370
}
371371

372372
var balance uint64
373-
if script.Err == nil && script.Value != nil {
374-
balance = script.Value.ToGoValue().(uint64)
373+
if output.Err == nil && output.Value != nil {
374+
balance = output.Value.ToGoValue().(uint64)
375375
}
376376
return balance, nil
377377
}
@@ -381,14 +381,14 @@ func (c *balanceProcessor) moments(address flow.Address) (int, error) {
381381
jsoncdc.MustEncode(cadence.NewAddress(address)),
382382
)
383383

384-
err := c.vm.Run(c.ctx, script, c.view)
384+
_, output, err := c.vm.RunV2(c.ctx, script, c.storageSnapshot)
385385
if err != nil {
386386
return 0, err
387387
}
388388

389389
var m int
390-
if script.Err == nil && script.Value != nil {
391-
m = script.Value.(cadence.Int).Int()
390+
if output.Err == nil && output.Value != nil {
391+
m = output.Value.(cadence.Int).Int()
392392
}
393393
return m, nil
394394
}

cmd/util/ledger/reporters/fungible_token_tracker_test.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,10 @@ func TestFungibleTokenTracker(t *testing.T) {
6565
fvm.WithInitialTokenSupply(unittest.GenesisTokenSupply),
6666
}
6767

68-
err := vm.Run(ctx, fvm.Bootstrap(unittest.ServiceAccountPublicKey, bootstrapOptions...), view)
68+
snapshot, _, err := vm.RunV2(ctx, fvm.Bootstrap(unittest.ServiceAccountPublicKey, bootstrapOptions...), view)
69+
require.NoError(t, err)
70+
71+
err = view.Merge(snapshot)
6972
require.NoError(t, err)
7073

7174
// deploy wrapper resource
@@ -101,9 +104,12 @@ func TestFungibleTokenTracker(t *testing.T) {
101104
AddAuthorizer(chain.ServiceAddress())
102105

103106
tx := fvm.Transaction(txBody, derivedBlockData.NextTxIndexForTestingOnly())
104-
err = vm.Run(ctx, tx, view)
107+
snapshot, output, err := vm.RunV2(ctx, tx, view)
108+
require.NoError(t, err)
109+
require.NoError(t, output.Err)
110+
111+
err = view.Merge(snapshot)
105112
require.NoError(t, err)
106-
require.NoError(t, tx.Err)
107113

108114
wrapTokenScript := []byte(fmt.Sprintf(`
109115
import FungibleToken from 0x%s
@@ -127,9 +133,12 @@ func TestFungibleTokenTracker(t *testing.T) {
127133
AddAuthorizer(chain.ServiceAddress())
128134

129135
tx = fvm.Transaction(txBody, derivedBlockData.NextTxIndexForTestingOnly())
130-
err = vm.Run(ctx, tx, view)
136+
snapshot, output, err = vm.RunV2(ctx, tx, view)
137+
require.NoError(t, err)
138+
require.NoError(t, output.Err)
139+
140+
err = view.Merge(snapshot)
131141
require.NoError(t, err)
132-
require.NoError(t, tx.Err)
133142

134143
dir := t.TempDir()
135144
log := zerolog.Nop()

0 commit comments

Comments
 (0)