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

Removing 0 as an undefined index #1

Open
wants to merge 2,384 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2384 commits
Select commit Hold shift + click to select a range
64f629d
update WasIHaveRPCSent to check multiple topic IDs with multiple mess…
kc1116 Jul 11, 2023
c66755b
fix mock bug
Jul 11, 2023
67b4390
add error description for newSource()
Jul 11, 2023
36c7855
Merge pull request #4543 from onflow/khalil/1897-ihave-rpc-tracker
kc1116 Jul 11, 2023
1f1a341
revert LRUEjector and remove random ejection fallback
Jul 12, 2023
183ce49
use fatal logging when system randomness fails
Jul 12, 2023
a2aa5d7
Merge branch 'master' into UlyanaAndrukhiv/3138-rest-api-on-observers
UlyanaAndrukhiv Jul 12, 2023
398b49c
add component and worker pool to rpc sent tracker
kc1116 Jul 12, 2023
e373b01
update all usages of NewGossipSubMeshTracer
kc1116 Jul 12, 2023
2a83452
update rpc sent tracker test
kc1116 Jul 12, 2023
14ef77d
Update rpc_sent_tracker.go
kc1116 Jul 12, 2023
6ddbb2b
auto update to onflow/cadence v0.39.14
SupunS Jul 11, 2023
82d6e5f
Update to flow-go-sdk@v0.41.9 version
SupunS Jul 12, 2023
a2f5f4b
update grep command to work for different grep versions and remove tmate
Jul 12, 2023
e38c31e
track last highest iHaves size
kc1116 Jul 12, 2023
117fcc0
Verification Node documentation (#4528)
yhassanzadeh13 Jul 12, 2023
20b917e
reset LastHighestIhavesSent every 1 minute
kc1116 Jul 12, 2023
c1e13c9
Merge branch 'master' into khalil/1899-async-rpc-sent-tracker
kc1116 Jul 12, 2023
f19483f
Update rpc_sent_tracker_test.go
kc1116 Jul 12, 2023
672df92
Merge branch 'khalil/1899-async-rpc-sent-tracker' of github.com:onflo…
kc1116 Jul 12, 2023
ac19f5f
Update network/alsp/manager/manager_test.go
kc1116 Jul 12, 2023
c924c1c
Update network/alsp/manager/manager_test.go
kc1116 Jul 12, 2023
ca4fc5b
Update network/alsp/manager/manager_test.go
kc1116 Jul 12, 2023
f67f007
Update network/alsp/manager/manager_test.go
kc1116 Jul 12, 2023
07796e9
Update manager_test.go
kc1116 Jul 12, 2023
8ca997d
Merge branch 'master' into UlyanaAndrukhiv/3138-rest-api-on-observers
UlyanaAndrukhiv Jul 14, 2023
fd4ffaf
Merge branch 'master' into bootstrapping-views
janezpodhostnik Jul 14, 2023
8e21991
Merge branch 'master' into tarak/go1.20-rand-prep
tarakby Jul 14, 2023
72b4db9
Merge pull request #4052 from onflow/tarak/go1.20-rand-prep
tarakby Jul 14, 2023
6228e63
Fix missing events in uploaded block data
fxamacker Jul 14, 2023
6fe26d1
Merge branch 'master' into fxamacker/fix-incomplete-events-in-gcp-upl…
fxamacker Jul 14, 2023
f1d5a06
Merge pull request #4562 from onflow/fxamacker/fix-incomplete-events-…
fxamacker Jul 14, 2023
f88f097
Go 1.20
SaveTheRbtz Feb 8, 2023
0bd284c
Update golangci-lint
Kay-Zee Feb 8, 2023
51b646b
Refactor badger cache and all the client code to use generics instead…
nozim Jul 16, 2023
9089a1e
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 17, 2023
8455b98
Merge branch 'master' into UlyanaAndrukhiv/3138-rest-api-on-observers
UlyanaAndrukhiv Jul 17, 2023
52c701e
Merge branch 'master' into UlyanaAndrukhiv/4217-single-gRPC-port
UlyanaAndrukhiv Jul 17, 2023
02be088
Fixed remarks
Guitarheroua Jul 17, 2023
2b9e8ee
Merge #4550
bors[bot] Jul 17, 2023
81bc2d8
update more go1.20 deprecated functions
Jul 17, 2023
79c011b
remove math/rand.Read calls
Jul 17, 2023
8bd2eef
Merge branch 'master' into petera/rename-without-netgo-tag
peterargue Jul 17, 2023
e26bc28
Merge pull request #4548 from onflow/petera/rename-without-netgo-tag
peterargue Jul 17, 2023
ef86705
remove unused function
Jul 17, 2023
6b9cce5
use assert.Zero
Jul 17, 2023
edc0bb6
Merge branch 'master' into 3932-refactor-badger-cache
nozim Jul 18, 2023
e2547b6
Added evicting cache client test
Guitarheroua Jul 18, 2023
dbe364c
Change config from pointer to value
Guitarheroua Jul 18, 2023
1b2e6df
Removed unused field
Guitarheroua Jul 18, 2023
da69a05
Fixed remarks
Guitarheroua Jul 18, 2023
cc90ff9
Fixed remarks
Guitarheroua Jul 18, 2023
aa528ad
Merge branch 'master' into bootstrapping-views
janezpodhostnik Jul 17, 2023
e3411ef
Merge pull request #4536 from onflow/bootstrapping-views
janezpodhostnik Jul 18, 2023
a2aaf27
Merge branch 'master' of github.com:Guitarheroua/flow-go into guitarh…
Guitarheroua Jul 18, 2023
0af1f45
Merge branch 'master' into tarak/go1.20
tarakby Jul 18, 2023
3ea1fd4
Fixed issue with sample after merge.
Guitarheroua Jul 18, 2023
80132f9
Fixed issue with all nodes unavailable.
Guitarheroua Jul 18, 2023
f654460
Make timeouts shorter in cf tests.
Guitarheroua Jul 18, 2023
bc369b2
Update network/p2p/tracer/gossipSubMeshTracer.go
kc1116 Jul 18, 2023
a7e305a
Fixed integration test.
Guitarheroua Jul 18, 2023
7b52ab1
encapsulate tracer-related config parameters
kc1116 Jul 18, 2023
b82247d
Update config/default-config.yml
kc1116 Jul 18, 2023
b8c72cc
Update network/p2p/p2pconf/gossipsub.go
kc1116 Jul 18, 2023
4e31202
Merge branch 'khalil/1899-async-rpc-sent-tracker' of github.com:onflo…
kc1116 Jul 18, 2023
bea0fff
Update gossipsub.go
kc1116 Jul 18, 2023
fb08d0d
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 18, 2023
7e9e885
Merge branch 'guitarheroua/2833-conn-pool-evictions-cause-conn-failur…
Guitarheroua Jul 18, 2023
e7dc893
[Networking] Handling iHave overpromising part-1 (#4556)
yhassanzadeh13 Jul 18, 2023
a97a02a
Merge branch 'master' into tarak/go1.20
tarakby Jul 18, 2023
1a5b5dc
Merge branch 'master' into guitarheroua/3129-access-add-circuit-breaker
Guitarheroua Jul 18, 2023
8aa1593
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 18, 2023
163cee6
Merge branch 'guitarheroua/2833-conn-pool-evictions-cause-conn-failur…
Guitarheroua Jul 18, 2023
4bacc83
internally construct metrics for the tracker
kc1116 Jul 18, 2023
87c07e0
remove AddWorkers
kc1116 Jul 18, 2023
1338279
change debug -> info
kc1116 Jul 18, 2023
bec095c
rename trackRPC -> trackableRPC
kc1116 Jul 18, 2023
119f946
rename RPCSent -> Track
kc1116 Jul 18, 2023
23c6cfe
document errors as benign
kc1116 Jul 18, 2023
e1c57c6
return error if submit returns false
kc1116 Jul 18, 2023
344b30f
rename rpcSent -> rpcSentWorkerLogic
kc1116 Jul 18, 2023
e6a0a33
add lastUpdate to lastHighestIHaveRPCSize tracking
kc1116 Jul 18, 2023
06575d4
Merge branch 'master' into khalil/1899-async-rpc-sent-tracker
kc1116 Jul 18, 2023
640f9bf
add KeyNetworkingSecurity when err returned during tracking
kc1116 Jul 18, 2023
1c55cf1
Merge branch 'master' into 1898-slashing-violations-consumer-alsp-int…
kc1116 Jul 18, 2023
fbd8446
Added test TestExecutionEvictingCacheClients
Guitarheroua Jul 18, 2023
2249991
[Access] Update REST metrics to use route name for all types
peterargue Jul 19, 2023
9682381
Merge pull request #4549 from onflow/1898-slashing-violations-consume…
kc1116 Jul 19, 2023
e67bcc9
Merge branch 'master' into tarak/go1.20
tarakby Jul 19, 2023
1aff7f9
Merge #4563
bors[bot] Jul 19, 2023
a2e8fb1
[Networking] Handling iHave broken promises (and part-2 of overpromis…
yhassanzadeh13 Jul 19, 2023
f2bc373
use new interface EntropyProvider in FVM instead of protocol.Snapshot
Jul 19, 2023
b8cf688
merge master branch
Jul 19, 2023
29deae0
update entropy provider mock file
Jul 19, 2023
4c643c8
Merge branch 'master' into guitarheroua/3129-access-add-circuit-breaker
Guitarheroua Jul 19, 2023
3412d68
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 19, 2023
c6624d2
ScriptExecutor should always populate env values even when the script…
m-Peter Jul 19, 2023
c7d1f07
Merged with master
UlyanaAndrukhiv Jul 19, 2023
43bea66
Return add to retrive connection.
Guitarheroua Jul 19, 2023
13c49c8
Merge branch 'guitarheroua/2833-conn-pool-evictions-cause-conn-failur…
Guitarheroua Jul 19, 2023
4e4ca6c
Merge branch 'master' into khalil/1899-async-rpc-sent-tracker
kc1116 Jul 19, 2023
574fb22
Append both errors in executeScript() with multierror
m-Peter Jul 19, 2023
7c2b340
Merge pull request #4498 from onflow/tarak/env-safe-random
tarakby Jul 19, 2023
1987e60
require url mapper in constructor
peterargue Jul 19, 2023
a7634ff
fix error return
peterargue Jul 19, 2023
811f83b
spike to improve locking in grpc connection factory
peterargue Jul 19, 2023
e09ba32
remove cache from factory
peterargue Jul 19, 2023
1aa6e3d
Add test cases for asserting the population of ProcedureOutput from s…
m-Peter Jul 20, 2023
248c4e9
Revert unnecessary changes
Guitarheroua Jul 20, 2023
b62727f
Merge branch 'master' into UlyanaAndrukhiv/4217-single-gRPC-port
UlyanaAndrukhiv Jul 20, 2023
da821bc
Fixed test case
Guitarheroua Jul 20, 2023
1237a59
Merge branch 'master' into script-executor-populate-env-values
m-Peter Jul 20, 2023
ac8c8b1
Implemented limitation for scripts execution nodes
Guitarheroua Jul 20, 2023
d9575a6
Merge branch 'master' of github.com:Guitarheroua/flow-go into guitarh…
Guitarheroua Jul 20, 2023
c0b4436
Updated according to comments
UlyanaAndrukhiv Jul 20, 2023
3ed6741
Fixed if statement
Guitarheroua Jul 20, 2023
b779edf
Added check for argument
Guitarheroua Jul 20, 2023
ea7748f
Added part of updates according to comments
UlyanaAndrukhiv Jul 20, 2023
77ff167
Merged with master
UlyanaAndrukhiv Jul 20, 2023
da22beb
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 20, 2023
6a857fe
Merge branch 'petera/example-conn-factory-refactor' of github.com:onf…
Guitarheroua Jul 20, 2023
06c67f2
Upgrade Emulator
janezpodhostnik Jul 20, 2023
de05263
Merge branch 'master' into petera/fix-rest-metrics-take3
peterargue Jul 20, 2023
ae9c109
Refactor connection factory
Guitarheroua Jul 20, 2023
85b17f9
Added comments to new components
Guitarheroua Jul 20, 2023
48cae42
Merge branch 'guitarheroua/2833-conn-pool-evictions-cause-conn-failur…
Guitarheroua Jul 20, 2023
1122b8c
removed unnecessary changes
Guitarheroua Jul 20, 2023
fb4e43f
removed unnecessary changes
Guitarheroua Jul 20, 2023
2782d45
Merge pull request #4575 from onflow/janez/upgrade-emulator
janezpodhostnik Jul 20, 2023
e510954
Merge branch 'master' into UlyanaAndrukhiv/4217-single-gRPC-port
UlyanaAndrukhiv Jul 20, 2023
4d37538
Merged with master
UlyanaAndrukhiv Jul 20, 2023
c1347be
Linted
UlyanaAndrukhiv Jul 20, 2023
435c8ff
Merge branch 'master' into petera/fix-rest-metrics-take3
peterargue Jul 20, 2023
806456f
Merge pull request #4571 from onflow/petera/fix-rest-metrics-take3
peterargue Jul 20, 2023
8bbacfc
Merge branch 'master' into guitarheroua/3129-access-add-circuit-breaker
Guitarheroua Jul 20, 2023
226f053
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 20, 2023
e96b90e
Merge branch 'master' into UlyanaAndrukhiv/4217-single-gRPC-port
UlyanaAndrukhiv Jul 20, 2023
7dc921b
Apply suggestions from code review
Guitarheroua Jul 20, 2023
384968a
change error terminator argument type
Guitarheroua Jul 20, 2023
36869d1
Merge branch 'master' of github.com:UlyanaAndrukhiv/flow-go into Ulya…
UlyanaAndrukhiv Jul 20, 2023
7faa9e7
Fixed last commit
UlyanaAndrukhiv Jul 20, 2023
999eb9b
add lock for last size and last size update
kc1116 Jul 20, 2023
65bc05b
remove topic ID from entity ID
kc1116 Jul 20, 2023
7c5daef
add test cases for concurrent tracking and duplicate RPC tracking
kc1116 Jul 20, 2023
c1d3b2e
remove add workers func
kc1116 Jul 20, 2023
d5e7b22
Merge branch 'master' into khalil/1899-async-rpc-sent-tracker
kc1116 Jul 20, 2023
9fa4f4a
Merge branch 'master' into 3932-refactor-badger-cache
Kay-Zee Jul 20, 2023
fe02ec9
Merge branch 'master' into script-executor-populate-env-values
janezpodhostnik Jul 21, 2023
ca27c87
Merge #4572
bors[bot] Jul 21, 2023
26b435e
Updated according to comments, added rest metrics to observer node
UlyanaAndrukhiv Jul 21, 2023
d47cc09
Merge branch 'master' into UlyanaAndrukhiv/3138-rest-api-on-observers
UlyanaAndrukhiv Jul 21, 2023
d6eb702
Merge branch 'master' into UlyanaAndrukhiv/4217-single-gRPC-port
UlyanaAndrukhiv Jul 21, 2023
cc4c03c
Fixed broken test
Guitarheroua Jul 21, 2023
26ef6f7
Merge branch 'master' into guitarheroua/3129-access-add-circuit-breaker
Guitarheroua Jul 21, 2023
5240b3b
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 21, 2023
695ff8c
Fixed review remarks
Guitarheroua Jul 21, 2023
3f3c15f
Merge pull request #4411 from UlyanaAndrukhiv/UlyanaAndrukhiv/4217-si…
durkmurder Jul 21, 2023
c7c05b9
Merged with master
UlyanaAndrukhiv Jul 21, 2023
b53dd43
Merge pull request #4499 from UlyanaAndrukhiv/UlyanaAndrukhiv/3138-re…
peterargue Jul 21, 2023
8644def
Merge branch 'master' of github.com:Guitarheroua/flow-go into guitarh…
Guitarheroua Jul 21, 2023
eb6b627
Fixed conflicts
Guitarheroua Jul 21, 2023
30ac5aa
Apply suggestions from code review
Guitarheroua Jul 21, 2023
82f8cba
Fixed review remarks
Guitarheroua Jul 21, 2023
0d5a2c4
Fixed integrarion test. Removed timeouts as it is invalid check there.
Guitarheroua Jul 21, 2023
ec9fb75
Merge branch 'master' of github.com:Guitarheroua/flow-go into guitarh…
Guitarheroua Jul 21, 2023
3bc333b
Merge branch 'master' into 3932-refactor-badger-cache
nozim Jul 23, 2023
bb8a8b0
Merge branch '3932-refactor-badger-cache' of github.com:nozim/flow-go…
nozim Jul 23, 2023
554071e
Generic related refactoring based on code review feedback
nozim Jul 23, 2023
b4c749c
CHanged timeouts
Guitarheroua Jul 24, 2023
359c8ce
Added sample benchmark of cache test generic vs interface with sample…
nozim Jul 24, 2023
46d10fb
Removed work around
Guitarheroua Jul 24, 2023
abf501b
Remove benchmark file, refactor benchmark test
nozim Jul 25, 2023
f90bea0
Update go.mod, remove benchmark files
nozim Jul 25, 2023
6a4e69b
Fix imports
nozim Jul 25, 2023
ab2ee74
Update rpc_sent_tracker.go
kc1116 Jul 25, 2023
41f7d5c
Update rpc_sent_tracker.go
kc1116 Jul 25, 2023
f1b7e5c
Update gossipSubMeshTracer_test.go
kc1116 Jul 25, 2023
2f95232
Merge branch 'master' into khalil/1899-async-rpc-sent-tracker
kc1116 Jul 25, 2023
3a8139b
Merge pull request #4553 from onflow/khalil/1899-async-rpc-sent-tracker
kc1116 Jul 25, 2023
f7c7116
Merge branch 'master' into guitarheroua/2833-conn-pool-evictions-caus…
Guitarheroua Jul 25, 2023
0607ed2
Merge pull request #4534 from Guitarheroua/guitarheroua/2833-conn-poo…
peterargue Jul 26, 2023
e39b63f
Handle code review feedback, remove benchmark file, comments and rena…
nozim Jul 26, 2023
2ee71bd
Merge branch 'master' into 3932-refactor-badger-cache
nozim Jul 26, 2023
9d68658
Fix goimports
nozim Jul 26, 2023
4dc66e6
Merge branch 'master' of github.com:Guitarheroua/flow-go into guitarh…
Guitarheroua Jul 27, 2023
3f3da35
Merge pull request #4565 from nozim/3932-refactor-badger-cache
durkmurder Jul 27, 2023
4f572a2
FVM flaky tests fix
janezpodhostnik Jul 25, 2023
86d1724
Merge #4581
bors[bot] Jul 27, 2023
02a6ab4
Merge branch 'master' into guitarheroua/3129-access-add-circuit-breaker
Guitarheroua Jul 27, 2023
731a26c
Fixed remarks
Guitarheroua Jul 27, 2023
f66dd13
Merge branch 'guitarheroua/3129-access-add-circuit-breaker' of github…
Guitarheroua Jul 27, 2023
2aca88e
Merge pull request #4496 from Guitarheroua/guitarheroua/3129-access-a…
durkmurder Jul 28, 2023
7623ce8
Merge #4546
bors[bot] Jul 28, 2023
e0527bc
add workflow to validate git tags
janezpodhostnik Jul 11, 2023
9d1c066
make the node fail to start on invalid version
janezpodhostnik Jul 11, 2023
115432e
Merge #4552
bors[bot] Jul 28, 2023
b597288
Added size to a list struct, removed some isUndefined() and setUndefi…
Jun 5, 2023
6bc29b8
Removed some more checks for undefined
Jun 5, 2023
b135031
Milestone: Removed isUndefined from code, tests do pass
Jun 5, 2023
50ad010
Milestone: setUndifined is removed
Jun 5, 2023
0235526
Removed +1 amd -1 shifts of index
Jun 5, 2023
3153368
Removed setPoolIndex
Jun 9, 2023
bc768cb
Cleaned up from superfluous comments
Jun 9, 2023
0d6628f
Fixed tests
Jun 9, 2023
640a689
Refactored methods to lists
Jun 9, 2023
c532cfb
Improve method names
Jun 9, 2023
286c00d
Improve method names and saved
Jun 9, 2023
e06fb76
Refactored out connect3
Jun 9, 2023
cfbf222
Refactored all lit methods
Jun 9, 2023
a168d69
Removed the need for pool index
Jun 9, 2023
9a6c363
Removed poll index file
Jun 9, 2023
88dc3b9
Removed obsolet comments
Jun 9, 2023
d2587e8
removed obsolete line
Jun 9, 2023
92aa83f
removed superfluous comment
Jun 9, 2023
e8bd105
fixed typo
Jun 9, 2023
547c133
Added a unit test for linked list
Jun 12, 2023
f081841
Fixed comments
Jun 12, 2023
4dc4023
Improved comment
Jun 12, 2023
1b78ad0
Added a unit test for append
Jun 16, 2023
51ae752
Implemented -1 as an invalid index-a
Jun 21, 2023
9f363dc
Put back all checks for the invalid index
Jun 21, 2023
9612f30
Added a consistency list check
Jun 21, 2023
3224d2d
Improved documentation
Jun 21, 2023
9503bd6
Added more checks for pool consictensy
Jun 21, 2023
9c8e431
Changed undefined value to max uint
Jun 22, 2023
418a33d
Added remove add tests
Jun 23, 2023
5721649
Changed variable name
Jun 23, 2023
2c2fd7b
Added some go doc descriptions
Jun 23, 2023
e126956
Fixed comments and import
Jun 23, 2023
f3d0bae
Fixed variable names
Jun 23, 2023
5e7c93c
Add a comment to invalid index
Jun 23, 2023
dbb1a06
Intoduced stateUsed and stateFree
Jun 30, 2023
08ca9a1
Modified test to include randoim operations
Jun 30, 2023
ff86508
Removed leftover debug code
Jun 30, 2023
85db735
Improved comments
Jul 2, 2023
f9a1e68
Refactored test
Jul 7, 2023
2543fc4
Added check in remove entity
Jul 7, 2023
5952770
Removed getStateFromType
Jul 7, 2023
9c8ea50
Removed asset test files
Jul 7, 2023
b629dbc
Formatted comments
Jul 7, 2023
90ebef1
fixed compilation error
Jul 7, 2023
423f085
Fixed typo
Jul 7, 2023
2cce08f
Improved test
Jul 12, 2023
65fe54a
Apply suggestions
Jul 14, 2023
f198a64
Minor modifications
Jul 14, 2023
167f5de
Minor clean-up
Jul 17, 2023
c366b7d
Rebased changes, replaced rand
Jul 19, 2023
772655e
minor clean-up
Jul 19, 2023
87599c8
minor clean-up2
Jul 19, 2023
ae190fc
Added godoc to hero pool constr
Jul 20, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- name: Setup go
uses: actions/setup-go@v3
with:
go-version: "1.19"
go-version: "1.20"
cache: true

- name: Build relic
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,14 @@ jobs:
- name: Build/Push ${{ matrix.role }} images
env:
IMAGE_TAG: ${{ inputs.docker_tag }}
GITHUB_CREDS: "machine github.com login ${{ secrets.REPO_SYNC_USER }} password ${{ secrets.REPO_SYNC }}"
run: |
make docker-build-${{ matrix.role }} docker-push-${{ matrix.role }}

- name: Build/Push ${{ matrix.role }} without_netgo images
if: ${{ inputs.include_without_netgo }}
env:
IMAGE_TAG: ${{ inputs.docker_tag }}
GITHUB_CREDS: "machine github.com login ${{ secrets.REPO_SYNC_USER }} password ${{ secrets.REPO_SYNC }}"
run: |
make docker-build-${{ matrix.role }}-without-netgo docker-push-${{ matrix.role }}-without-netgo
2 changes: 1 addition & 1 deletion .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '1.19'
go-version: "1.20"
- name: Checkout repo
uses: actions/checkout@v2
- name: Build relic
Expand Down
18 changes: 11 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ on:
- 'v[0-9]+.[0-9]+'

env:
GO_VERSION: 1.19
GO_VERSION: "1.20"

concurrency:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true

Expand Down Expand Up @@ -47,7 +47,7 @@ jobs:
uses: golangci/golangci-lint-action@v3
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: v1.49
version: v1.51
args: -v --build-tags relic
working-directory: ${{ matrix.dir }}
# https://github.com/golangci/golangci-lint-action/issues/244
Expand All @@ -66,8 +66,8 @@ jobs:
cache: true
- name: Run tidy
run: make tidy
- name: Emulator no relic check
run: make emulator-norelic-check
- name: code sanity check
run: make code-sanity-check

shell-check:
name: ShellCheck
Expand Down Expand Up @@ -149,7 +149,7 @@ jobs:
make1: install-tools
make2: test
retries: 3
race: 1
race: 0
- name: integration
make1: install-tools
make2: test
Expand Down Expand Up @@ -198,10 +198,14 @@ jobs:
- make -C integration mvp-tests
- make -C integration network-tests
- make -C integration verification-tests
- make -C integration upgrades-tests
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
# all tags are needed for integration tests
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v3
with:
Expand Down Expand Up @@ -242,7 +246,7 @@ jobs:
- name: Set up Localnet
run: bash -c 'cd integration/localnet/ && make -e OBSERVER=2 bootstrap && make start-flow'
- name: Ensure Observer is started
run: docker ps -f name=localnet_observer_1_1 | grep localnet_observer
run: docker ps -f name=localnet-observer_1-1 | grep localnet-observer
- name: Get Client Version ensuring the client is provisioned
run: docker run --network host localnet-client /go/flow -f /go/flow-localnet.json -n observer version
- name: Wait for a default waiting period until a clean state
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/flaky-test-debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches:
- '**/*flaky-test-debug*'
env:
GO_VERSION: 1.19
GO_VERSION: "1.20"

#concurrency:
# group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
Expand Down Expand Up @@ -36,7 +36,7 @@ jobs:
uses: golangci/golangci-lint-action@v3
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: v1.49
version: v1.51
args: -v --build-tags relic
working-directory: ${{ matrix.dir }}
# https://github.com/golangci/golangci-lint-action/issues/244
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/semver-tags.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Verify Tag

on:
push:
tags:
- '*'

jobs:
SemVer-Check:
runs-on: ubuntu-latest
steps:
- name: Check if tag is SemVer compliant
# the tag should be in semver format, but can optionally be prepended by "any_text_with_slashes/" and "v"
# valid examples crypto/v0.24.5-fvm, tools/flaky_test_monitor/v0.23.5, v0.23.5, 0.23.5-fvm
run: |
TAG_NAME=${GITHUB_REF#refs/tags/}
if [[ "${TAG_NAME}" =~ ^(.+\/)*v?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]; then
echo "Tag $TAG_NAME is SemVer compliant"
else
echo "Tag $TAG_NAME is not SemVer compliant"
exit 1
fi
2 changes: 1 addition & 1 deletion .github/workflows/test-monitor-flaky.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
env:
BIGQUERY_DATASET: production_src_flow_test_metrics
BIGQUERY_TABLE: test_results
GO_VERSION: 1.19
GO_VERSION: "1.20"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-monitor-regular-skipped.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ env:
BIGQUERY_DATASET: production_src_flow_test_metrics
BIGQUERY_TABLE: skipped_tests
BIGQUERY_TABLE2: test_results
GO_VERSION: 1.19
GO_VERSION: "1.20"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '1.19'
go-version: "1.20"
- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ go.work.sum

# Ledger checkpoint status files
**/checkpoint_status.json
**/export_report.json

# Local testing result files
tps-results*.json
12 changes: 4 additions & 8 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
/module/chunking/** @ramtinms
/integration/tests/verification @ramtinms @yhassanzadeh13

# Ledger Stream
# Ledger Stream
/ledger/** @ramtinms @AlexHentschel

# FVM Stream
/fvm/** @ramtinms @janezpodhostnik @pattyshack
# FVM Stream
/fvm/** @ramtinms @janezpodhostnik

# Networking Stream
/network/** @yhassanzadeh13
Expand All @@ -45,11 +45,7 @@
/tools/test_monitor/** @gomisha

# Performance Stream
/integration/benchmark/** @SaveTheRbtz @gomisha
/integration/localnet/** @SaveTheRbtz
/module/profiler/** @SaveTheRbtz @pattyshack
/module/trace/** @SaveTheRbtz @pattyshack
/module/tracer.go @SaveTheRbtz @pattyshack
/integration/benchmark/** @gomisha

# Execution Sync
/module/executiondatasync/** @peterargue
Expand Down
75 changes: 68 additions & 7 deletions CodingConventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ happy path is either
Benign failure cases are represented as typed sentinel errors
([basic errors](https://pkg.go.dev/errors#New) and [higher-level errors](https://dev.to/tigorlazuardi/go-creating-custom-error-wrapper-and-do-proper-error-equality-check-11k7)),
so we can do type checks.
2. _exception: the error a potential symptom of internal state corruption_.
2. _exception: the error is a potential symptom of internal state corruption_.
For example, a failed sanity check. In this case, the error is most likely fatal.
<br /><br />

Expand All @@ -107,11 +107,71 @@ happy path is either
where we treat everything beyond the known benign errors as critical failures. In unexpected failure cases, we assume that the vertex's in-memory state has been
broken and proper functioning is no longer guaranteed. The only safe route of recovery is to restart the vertex from a previously persisted, safe state.
Per convention, a vertex should throw any unexpected exceptions using the related [irrecoverable context](https://github.com/onflow/flow-go/blob/277b6515add6136946913747efebd508f0419a25/module/irrecoverable/irrecoverable.go).
* Many components in our BFT system can return benign errors (type (i)) and exceptions (type (ii))
* Use the special `irrecoverable.exception` [error type](https://github.com/onflow/flow-go/blob/master/module/irrecoverable/exception.go#L7-L26) to denote an unexpected error (and strip any sentinel information from the error stack)


3. _Optional Simplification for components that solely return benign errors._
* Many components in our BFT system can return benign errors (type (i)) and irrecoverable exceptions (type (ii))

3. **Whether a particular error is benign or an exception depends on the caller's context. Errors _cannot_ be categorized as benign or exception based on their type alone.**

![Error Handling](/docs/ErrorHandling.png)

* For example, consider `storage.ErrNotFound` that could be returned by the storage lager, when querying a block by ID
(method [`Headers.ByBlockID(flow.Identifier)`](https://github.com/onflow/flow-go/blob/a918616c7b541b772c254e7eaaae3573561e6c0a/storage/headers.go#L15-L18)).
In many cases, `storage.ErrNotFound` is expected, for instance if a node is receiving a new block proposal and checks whether the parent has already been ingested
or needs to be requested from a different node. In contrast, if we are querying a block that we know is already finalized and the storage returns a `storage.ErrNotFound`
something is badly broken.
* Use the special `irrecoverable.exception` [error type](https://github.com/onflow/flow-go/blob/master/module/irrecoverable/exception.go#L7-L26)
to denote an unexpected error (and strip any sentinel information from the error stack).

This is for any scenario when a higher-level function is interpreting a sentinel returned from a lower-level function as an exception.
To construct an example, lets look at our `storage.Blocks` API, which has a [`ByHeight` method](https://github.com/onflow/flow-go/blob/a918616c7b541b772c254e7eaaae3573561e6c0a/storage/blocks.go#L24-L26)
to retrieve _finalized_ blocks by height. The following could be a hypothetical implementation:
```golang
// ByHeight retrieves the finalized block for the given height.
// From the perspective of the storage layer, the following errors are benign:
// - storage.ErrNotFound if no finalized block at the given height is known
func ByHeight(height uint64) (*flow.Block, error) {
// Step 1: retrieve the ID of the finalized block for the given height. We expect
// `storage.ErrNotFound` during normal operations, if no block at height has been
// finalized. We just bubble this sentinel up, as it already has the expected type.
blockID, err := retrieveBlockIdByHeight(height)
if err != nil {
return nil, fmt.Errorf("could not query block by height: %w", err)
}

// Step 2: retrieve full block by ID. Function `retrieveBlockByID` returns
// `storage.ErrNotFound` in case no block with the given ID is known. In other parts
// of the code that also use `retrieveBlockByID`, this would be expected during normal
// operations. However, here we are querying a block, which the storage layer has
// already indexed. Failure to retrieve the block implies our storage is corrupted.
block, err := retrieveBlockByID(blockID)
if err != nil {
// We cannot bubble up `storage.ErrNotFound` as this would hide this irrecoverable
// failure behind a benign sentinel error. We use the `Exception` wrapper, which
// also implements the error `interface` but provides no `Unwrap` method. Thereby,
// the `err`s sentinel type is hidden from upstream type checks, and consequently
// classified as unexpected, i.e. irrecoverable exceptions.
return nil, irrecoverable.NewExceptionf("storage inconsistency, failed to" +
"retrieve full block for indexed and finalized block %x: %w", blockID, err)
}
return block, nil
}
```
Functions **may** use `irrecoverable.NewExceptionf` when:
- they are interpreting any error returning from a 3rd party module as unexpected
- they are reacting to an unexpected condition internal to their stack frame and returning a generic error

Functions **must** usd `irrecoverable.NewExceptionf` when:
- they are interpreting any documented sentinel error returned from a flow-go module as unexpected

For brief illustration, let us consider some function body, in which there are multiple subsequent calls to other lower-level functions.
In most scenarios, a particular sentinel type is either always or never expected during normal operations. If it is expected,
then the sentinel type should be documented. If it is consistently not expected, the error should _not_ be mentioned in the
function's godoc. In the absence of positive affirmation that `error` is an expected and benign sentinel, the error is to be
treated as an irrecoverable exception. So if a sentinel type `T` is consistently not expected throughout the function's body, make
sure the sentinel `T` is not mentioned in the function's godoc. The latter is fully sufficient to classify `T` as an irrecoverable
exception.


5. _Optional Simplification for components that solely return benign errors._
* In this case, you _can_ use untyped errors to represent benign error cases (e.g. using `fmt.Errorf`).
* By using untyped errors, the code would be _breaking with our best practice guideline_ that benign errors should be represented as typed sentinel errors.
Therefore, whenever all returned errors are benign, please clearly document this _for each public functions individually_.
Expand Down Expand Up @@ -160,7 +220,8 @@ For example, a statement like the following would be sufficient:
* Handle errors at a level, where you still have enough context to decide whether the error is expected during normal
operations.
* Errors of unexpected types are indicators that the node's internal state might be corrupted.
- Use the special `irrecoverable.exception` [error type](https://github.com/onflow/flow-go/blob/master/module/irrecoverable/exception.go#L7-L26) at the point an unexpected error is being returned, or when an error returned from another function is interpreted as unexpected


### Anti-Pattern

Continuing on a best-effort basis is not an option, i.e. the following is an anti-pattern in the context of Flow:
Expand Down
Loading