Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
453 commits
Select commit Hold shift + click to select a range
e8c66f4
Disable some unusable tests
edmundnoble May 28, 2025
1d9060e
small test fixes
edmundnoble May 29, 2025
326027f
Fix rest api tests
edmundnoble May 29, 2025
e787c72
idk: try to fix headerSizeBytes
edmundnoble May 29, 2025
3571a9f
merge
edmundnoble May 29, 2025
b2088ad
Fix cutdb tests
edmundnoble May 30, 2025
5ab1ed2
Less syncToBlock calls in cut pipeline
edmundnoble May 30, 2025
bc6c14e
Add evm-development-singleton
edmundnoble May 30, 2025
152c09d
Use kadena-reth instead of evm-devnet-kadena-reth for evm genesis
edmundnoble May 30, 2025
9b9a4b3
Correct genesisTime
edmundnoble May 30, 2025
af072df
Some more EVM provider cleanup
larskuhtz May 28, 2025
8ef8271
Cleanup formatting of Miner.Coordinator a bit
larskuhtz May 28, 2025
6dcdf85
Some logging improvements for the EVM provider
larskuhtz May 28, 2025
bbe220f
Handle unexpected binary data in responses from EVM gracefully
larskuhtz May 28, 2025
42dbeba
Fix some benchmark compilation
edmundnoble May 30, 2025
a5c0f57
Re-enable failing replay tests
edmundnoble May 30, 2025
13bff45
Put Payload Provider tests back into main test suite
edmundnoble May 30, 2025
3d436f5
merge
edmundnoble May 30, 2025
c1c313c
Fix mempoolbench applycmdbench jsonencoding bench
edmundnoble May 30, 2025
843ceb8
Implement EVM engine_NewPaylaodV4 engine call
larskuhtz May 31, 2025
45bb7d0
implement newPayload function in EVM payload provider
larskuhtz May 31, 2025
49e69e8
Store EVM Execution Payloads in consensus
larskuhtz Jun 1, 2025
28085a2
fix evm development versions
larskuhtz Jun 1, 2025
78fed1a
Quieter logging
edmundnoble May 21, 2025
ccb92a6
add more logging to 'impossible to move' message
edmundnoble May 23, 2025
ad0c6d1
Increase debugging on missing treedb keys
edmundnoble Jun 2, 2025
bc05d1a
More logging
edmundnoble Jun 2, 2025
5e90a78
small logging fix
larskuhtz Jun 2, 2025
6148670
fix ancestor lookup in consensusState
larskuhtz Jun 3, 2025
11d5a11
Fix ancestor lookup in consensusState v2
edmundnoble Jun 3, 2025
57adf9e
Document consensusState a bit more
edmundnoble Jun 3, 2025
37889e8
Add Brief (These a b) instance
edmundnoble Jun 3, 2025
04c81f1
Fix Pact PP fork resolution
edmundnoble Jun 3, 2025
98894a1
Revert "Fix ancestor lookup in consensusState v2"
edmundnoble Jun 3, 2025
74c260e
Fix consensusState safeHeight calculation
edmundnoble Jun 3, 2025
8270e66
fork resolution on startup
edmundnoble Jun 4, 2025
eb18ecd
set withdrawalIndex in EVM payloads to block height
larskuhtz Jun 5, 2025
32264a0
Remove CI builds for 9.8.4 to speed up github actions builds
larskuhtz Jun 5, 2025
8e3b47f
update freeze file
larskuhtz Jun 5, 2025
9938be7
Faster genesisHeight calc
edmundnoble Jun 5, 2025
55de105
ChainId derive newtype
edmundnoble Jun 5, 2025
66b20a5
Fix payload refresh in EVM
edmundnoble Jun 9, 2025
b6eb77c
Take payload ID before FCU call
edmundnoble Jun 9, 2025
e37504c
Correct payload refresher thread in PactService
edmundnoble Jun 10, 2025
c852742
evm-genesis: fix number of chains and offsets of network ids.
larskuhtz Jun 12, 2025
dc8fd41
evm-genesis: fix chainweb-chain-id system contract
larskuhtz Jun 12, 2025
a86f9af
evm-genesis: fix format in aeson instances
larskuhtz Jun 12, 2025
4a0d634
Update genesis data for EVM payload provider
larskuhtz Jun 12, 2025
5ed0db4
Stop producing payloads in Pact when miner is unset
edmundnoble Jun 12, 2025
69c988e
update evm version and add evm-testnet
larskuhtz Jun 13, 2025
56833d2
fix ethereum network id in EvmTestnet version
larskuhtz Jun 14, 2025
635729a
Delete freeze
edmundnoble Jun 9, 2025
ceba9de
Add Pact genesis savepoint
edmundnoble Jun 11, 2025
18709e3
Add payload provider types to /info endpoint
edmundnoble Jun 17, 2025
0bb946f
Revert "Delete freeze"
edmundnoble Jun 17, 2025
af2271b
add xchan-redeem system contract account and larger testnet allocations
larskuhtz Jun 23, 2025
80c8bb0
fix evm-testnet genesis block payload hashes
larskuhtz Jun 23, 2025
d992e32
Stop erroring on failed initial PP sync
edmundnoble Jun 12, 2025
6193f27
remove unused deps
edmundnoble Jun 25, 2025
e673635
poll eth_syncing instead of just FCU
edmundnoble Jun 20, 2025
9d81b83
stop comparing and fetching safe
edmundnoble Jun 24, 2025
8416a32
make SYNCING log message Info
edmundnoble Jun 24, 2025
1ff0887
Include actual header in FCS exn
edmundnoble Jun 24, 2025
2089aff
decrease waitTime
edmundnoble Jun 24, 2025
c9e1159
merge
edmundnoble Jun 25, 2025
39e0291
Censor jwt secret
edmundnoble Jun 25, 2025
bf140fa
add EVM system contracts to evm-genesis
larskuhtz Jun 26, 2025
47e3218
update evm-development EVM genesis info
larskuhtz Jun 26, 2025
a3a5435
update EVM xchan redeem contract allocation
larskuhtz Jun 26, 2025
c6853db
evm-genesis: write payload data to file instead of stdout
larskuhtz Jun 26, 2025
47561c6
update evm-development and evm-testnet genesis info
larskuhtz Jun 26, 2025
f8a6cf9
Fix mining rewards for EVM provider and be more clear about precisions
larskuhtz Jun 27, 2025
3569141
fix miner reward tests
larskuhtz Jun 27, 2025
af4579f
disable fee consistency check again
larskuhtz Jun 27, 2025
8e84203
add a comment
larskuhtz Jun 27, 2025
1e620ba
Copy tests into artifacts
edmundnoble Jul 11, 2025
0c1f4ce
Add cut storage test
edmundnoble Jul 9, 2025
5acb69d
Simpler limited cut storage
edmundnoble Jul 11, 2025
e6ad62c
Re-enable most rest tests
edmundnoble Jul 24, 2025
ea2fdb1
No more todo
edmundnoble Jul 24, 2025
783e497
More idiomatic ResourceT in withChainwebTestServer
edmundnoble Jul 24, 2025
32e11db
More use of ResourceT in tests
edmundnoble Jul 24, 2025
f920656
Serve payloads on service APIs (including Pact outputs)
edmundnoble Jul 22, 2025
5750d4a
be lenient during rewind when reintroducing transactions
larskuhtz Jul 3, 2025
3776ec1
Remove from and reorder knownVersions
edmundnoble Jul 31, 2025
554eb61
Move header stream config into its own area
edmundnoble Jul 31, 2025
c4b923a
Add examples to version option
edmundnoble Jul 31, 2025
00c9430
Improved error messaging around EVM PP init
edmundnoble Jul 31, 2025
c26e307
Put minimal PP options into a group
edmundnoble Jul 31, 2025
2942a03
Typo fix
edmundnoble Jul 31, 2025
98fff0e
Delete pact queue size option
edmundnoble Jul 31, 2025
a82a5e4
Mark unsafeFromText NOINLINE
edmundnoble Aug 5, 2025
834e09b
Fix computeMerkleLogRoot
edmundnoble Aug 6, 2025
d9b4ba7
Use recapDevnet everywhere in prop_da_validate
edmundnoble Aug 6, 2025
a514284
Use real nonce in encodeAsMiningWork
edmundnoble Aug 6, 2025
c3897a4
Fix header validation test
edmundnoble Aug 6, 2025
6716e22
Nits
edmundnoble Aug 6, 2025
ea0ed66
Fix some more tests
edmundnoble Aug 6, 2025
59bf9be
Make MockTx.gasPrice JSONify as a string, not a number
edmundnoble Aug 6, 2025
e2d23d7
Make Kda pattern require 18 decimal digits, not 12
edmundnoble Aug 6, 2025
dad106a
Replace block gas limit TODO with comment
edmundnoble Aug 6, 2025
f69d29e
Add initial cut file option back into chainweb
edmundnoble Aug 19, 2025
58a8c87
Add graph transition test for d4k4
edmundnoble Aug 19, 2025
23b7b65
Fix limitCut performance regression
edmundnoble Aug 26, 2025
9fa2bae
Add extra bootstrap node for evm-testnet
edmundnoble Aug 21, 2025
7d59da4
Fix Pact 5 header oracle during rewinds
edmundnoble Aug 26, 2025
dc574a8
Restore Pact 4
edmundnoble Aug 26, 2025
0a570b3
merge
edmundnoble Aug 29, 2025
4433ed0
Migrate Pact 4
edmundnoble Aug 21, 2025
77f94d9
Merge pp-evm into master
edmundnoble Aug 29, 2025
ac25748
Use the right payload client
edmundnoble Sep 2, 2025
b6ae104
Move Chainweb.{Payload,Mempool} underneath Chainweb.Pact
edmundnoble Sep 3, 2025
dedd241
Fix recovery cut code
edmundnoble Sep 3, 2025
e1f5592
Expose both old and new Pact payload APIs, but use the old ones
edmundnoble Sep 3, 2025
328eca2
merge
edmundnoble Sep 3, 2025
ccc7d68
Stop node after initial cut is reached, if it's configured
edmundnoble Aug 28, 2025
8786bb0
Fix build
edmundnoble Sep 3, 2025
f654248
increase catchupStepSize to 500
larskuhtz Sep 12, 2025
c3a0deb
parallelize top level cut header fetching
larskuhtz Sep 12, 2025
5c2bfaa
Turn CutClientEnv into a newtype
larskuhtz Sep 14, 2025
4a3d649
Remove redundant imports and cleanup some imports lists
larskuhtz Sep 14, 2025
9b2d57d
rebase fixes
larskuhtz Sep 15, 2025
417a1c7
remove errors package
rsoeldner Sep 15, 2025
fc320da
Small documentation fixes in payload P2P REST API
larskuhtz Sep 16, 2025
c638bd8
Turn some datatypes into newtypes
larskuhtz Sep 16, 2025
9b250c9
Add RankedBlockHeaderDB and simplify TreeDB a bit
larskuhtz Sep 14, 2025
ff543c0
Export RankedBlockHeader
larskuhtz Sep 16, 2025
1b7c50c
Remote redundant language pragma in BlockHeaderDB
larskuhtz Sep 16, 2025
03ea1ef
Typo fix
edmundnoble Sep 17, 2025
97e4e2c
Typo fix 2
edmundnoble Sep 17, 2025
0676353
add blockhistory migration
rsoeldner Aug 28, 2025
95ce631
Move Minimal payload provider logging to Debug level
edmundnoble Sep 19, 2025
c998d1d
Change some names in getBranch
edmundnoble Sep 22, 2025
326541e
some code cleanup
larskuhtz Sep 27, 2025
a49fcd8
Incremental block header pruning
edmundnoble Sep 5, 2025
12bacf5
Add standalone-pruner
edmundnoble Sep 10, 2025
4e61f89
Fix legacy SPV errors and use BlockCtx in Pact 4 SPV too
edmundnoble Sep 25, 2025
5e64a63
Fix fork resolution in initialization of payload providers
larskuhtz Sep 28, 2025
28efdc0
fix ForkInfo creation in WebBlockHeaderStore
larskuhtz Sep 30, 2025
41cb354
Use BlockHistory if ConsensusState table is empty
edmundnoble Sep 23, 2025
7eb5ab9
Update src/Chainweb/Pact/Backend/ChainwebPactDb.hs
edmundnoble Sep 29, 2025
c925def
update Dockerfile
larskuhtz Oct 4, 2025
ac90634
Delete sql savepoints from Pact PP, use sql transactions
edmundnoble Oct 1, 2025
6957d97
improve brief instance for lists
larskuhtz Oct 2, 2025
081a833
factor out and improve forkinfo synchronization
larskuhtz Sep 30, 2025
12b5be8
give CutDB and WebBlockHeaderDB a proper logger
larskuhtz Oct 3, 2025
b7d7cb5
more logging cleanup
larskuhtz Oct 3, 2025
2693f77
provide candidate headers for forkinfo resolution
larskuhtz Oct 4, 2025
fecc0df
Add queried headers to the candidate headers
larskuhtz Oct 4, 2025
ce5e053
more log message formatting fixes
larskuhtz Oct 4, 2025
d37c178
More code cleanups
larskuhtz Oct 5, 2025
727781c
Prefetch payloads in batches from origins
larskuhtz Oct 5, 2025
1db989e
Update src/Chainweb/ChainValue.hs
larskuhtz Oct 5, 2025
541f1dd
union == unionWith const
larskuhtz Oct 5, 2025
55dda27
small code cleanups in Chainweb.Version
larskuhtz Oct 5, 2025
a291c10
replace prefetch by batched queries in fork info resolution
larskuhtz Oct 6, 2025
16dfe71
adjust prefetching based on benchmarks and cleanup code comments
larskuhtz Oct 6, 2025
fe657da
small fixes from code review
larskuhtz Oct 6, 2025
eaffea3
Avoid prefetching locally mined blocks
larskuhtz Oct 7, 2025
636cdda
Simplify HasTextRepresentation instance for BlockHeight
larskuhtz Oct 7, 2025
f0eae96
Add _forkInfoTraceBlockHashes function for ForkInfo
larskuhtz Oct 7, 2025
4554dde
Add pldRankedBlockPayloadHash getter EVM execution payload
larskuhtz Oct 7, 2025
d517ea3
Address issues from code review
larskuhtz Oct 7, 2025
30e8799
Make HasTextRepresentation newtype derivable
larskuhtz Oct 7, 2025
5593f48
improve some failure message as recommended in review
larskuhtz Oct 8, 2025
fbd049a
remove redundant import
larskuhtz Oct 8, 2025
40ab7ab
fix/disable builds for cwtools
larskuhtz Oct 8, 2025
d8098d4
fix formatting of pragmas
larskuhtz Oct 8, 2025
bbf23a8
Fix broken SPV oracles
edmundnoble Sep 25, 2025
74364b6
Restore Pact 4 upgrade transactions
edmundnoble Oct 8, 2025
da52c53
Restore pre-225 hyperlane plugin
edmundnoble Oct 8, 2025
54bb03d
Restore Pact 4 verifiers
edmundnoble Oct 8, 2025
3129b7b
add initSchema to withPayloadProvider
edmundnoble Sep 25, 2025
b737a69
fix SPV tests
larskuhtz Oct 9, 2025
203cbc8
keep track of failing tests but ignore in ci
larskuhtz Oct 9, 2025
a205a7f
reenable some benchmarks and disable broken actions in CI
larskuhtz Oct 9, 2025
86c6b3d
Update .github/workflows/applications.yml
larskuhtz Oct 9, 2025
039cc89
update build matrix
larskuhtz Oct 9, 2025
46b0e54
update ghc version of macos build
larskuhtz Oct 9, 2025
685de8c
update to latest version of pact-5
larskuhtz Oct 9, 2025
797fbbf
get rid of an upper dependency bound
larskuhtz Oct 9, 2025
c0ac4dc
update freeze file
larskuhtz Oct 9, 2025
5aa0047
fix macos
larskuhtz Oct 9, 2025
eb746cf
disable non-buildable cwtools in mac build
larskuhtz Oct 9, 2025
268840f
More explicit error handling in ForkInfo
edmundnoble Oct 9, 2025
5ebe906
improve HTTP failure messages
larskuhtz Oct 8, 2025
9d098a3
ToJSONKey instance RankedBlockHash
larskuhtz Oct 10, 2025
efbb2c1
ToJSONKey instance for ChainValue
larskuhtz Oct 10, 2025
99afc27
remote redundant imports
larskuhtz Oct 10, 2025
cea74d3
some utils for logging exceptions
larskuhtz Oct 10, 2025
04275f1
improve logging in cut pipline
larskuhtz Oct 10, 2025
76d489b
Merge pull request #2226 from kadena-io/evm/lars/http-failure-logs
rsoeldner Oct 10, 2025
1faa05a
update pact-4 pin to latest master
larskuhtz Oct 10, 2025
48d7b20
replace cryptonite by crypton chainweb-storage
larskuhtz Oct 10, 2025
1dc41d6
Use ppState /= newState as our progress condition in resolveForkInfo
edmundnoble Oct 10, 2025
d12a967
Disable batch fetch in minimal PP
edmundnoble Oct 9, 2025
0d6a747
Execute merged cut sync in parallel over chains
edmundnoble Oct 9, 2025
6f6057c
Use safe block as fork point in initial startup sync
edmundnoble Oct 9, 2025
2a01375
Pass MempoolAccess to withPactPayloadProvider, not MempoolBackend
edmundnoble Sep 19, 2025
1527bab
Rewrite concurrentWith
edmundnoble Oct 7, 2025
ddda02d
fix build
edmundnoble Oct 10, 2025
3076d22
fix tests in macos build
larskuhtz Oct 10, 2025
cb4ec3c
speedup macos builds by skipping brew update
larskuhtz Oct 10, 2025
1360ddb
fix ea
larskuhtz Oct 10, 2025
3570907
disable multi-node-tests in ci until fixed
larskuhtz Oct 10, 2025
1543f0c
Address compiler warnings in Ea
larskuhtz Oct 12, 2025
13e9594
fix resolved forkinfo trace computation
larskuhtz Oct 11, 2025
2686935
tiny cleanup
larskuhtz Oct 12, 2025
67001df
forkinfo sync: do not ignore newBlockCtx
larskuhtz Oct 12, 2025
9eedd09
remove unused code
larskuhtz Oct 12, 2025
984cf0a
fix assertion in resolveForInfoForProviderState
larskuhtz Oct 12, 2025
96bec65
suggestion from code review
larskuhtz Oct 12, 2025
898d002
fix some comments
larskuhtz Oct 12, 2025
732ce19
fix typo in rev. 96bec65 (suggestion from code review)
larskuhtz Oct 12, 2025
d49c25e
Improve Pact service log messages a bit
larskuhtz Oct 12, 2025
66fc824
Apply suggestions from code review
larskuhtz Oct 12, 2025
9f949d6
suggestions from code review
larskuhtz Oct 12, 2025
2bcd45e
Fix Dockerfile to support reorg of cwtools and chainweb-storage builds
larskuhtz Oct 13, 2025
2eca3c9
Add blockhistory-migration-tests to ci and some cleanup
larskuhtz Oct 13, 2025
3e66780
Fix EVM devnet version codes
larskuhtz Oct 12, 2025
5fdd76b
add create2-factory to evm development versions
larskuhtz Oct 12, 2025
6518338
fix version in unit tests
larskuhtz Oct 12, 2025
e6f94a8
Fix loop in renderException
larskuhtz Oct 14, 2025
fd6ee8b
Include trace in ForkInfoSyncFailure message
edmundnoble Oct 10, 2025
b0d209d
Fix cabal.project for cabal >3.16
edmundnoble Oct 10, 2025
ea3f043
BlockHistory changes
edmundnoble Oct 20, 2025
e31a773
BlockHistoryMigration resilience to consensus out of sync with Pact
edmundnoble Oct 20, 2025
2d3c08e
Delete some now-unused replay options from cw-node
edmundnoble Oct 20, 2025
93788fe
Revert "Delete some now-unused replay options from cw-node"
edmundnoble Oct 20, 2025
462941c
[jj-spr] initial version
edmundnoble Oct 20, 2025
9c7f817
merge master and evm/main
edmundnoble Oct 16, 2025
4d1e082
add missing freeze file
larskuhtz Nov 5, 2025
8b79f99
merge master into evm/main #2278
larskuhtz Nov 5, 2025
78a8433
merging evm/main into community fork
edmundnoble Nov 19, 2025
cad18f5
Fix tests
edmundnoble Oct 11, 2026
c0d9d6b
Add Chainweb.Scheduler
edmundnoble Oct 18, 2026
7a0f68b
Use Chainweb.Scheduler for some background jobs
edmundnoble Oct 18, 2026
8afc7b5
Split some modules out of Chainweb.Utils
edmundnoble Oct 18, 2026
be55bc1
Share a scheduler between nodes in multinode test
edmundnoble Oct 18, 2026
aaf6b18
Add CutDBBench
edmundnoble Oct 18, 2026
ad9fa17
Increase cut fetch timeout to 4.125s
edmundnoble Oct 18, 2026
7078ed8
Prefetch header branch during catchup
edmundnoble Oct 19, 2026
1b6c4b7
Only compute single-header ForkInfo if PP is enabled on that chain
edmundnoble Oct 19, 2026
4502efe
Merge master
edmundnoble Oct 19, 2026
19e9bdc
Fix debug info setting for latest Cabal
edmundnoble Oct 19, 2026
94c506a
Potential fix for pull request finding 'CodeQL / Workflow does not co…
edmundnoble Oct 20, 2026
6a8a07a
Make cabal cache sync non-fatal in CI workflows
edmundnoble Oct 20, 2026
a39d119
Fix macOS toolchain/SDK mismatch in CI
edmundnoble Oct 20, 2026
3ede34d
Use community cabal cache bucket in macOS workflow
edmundnoble Oct 20, 2026
ab8c9fb
Fix warnings
edmundnoble Oct 20, 2026
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
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# .git
**.hi
**.o
*.eventlog
*.eventlog
*.hp
*.prof
*.ps
*.tags
.DS_Store
.ghc.environment*
.stack-work
Dockerfile
Tmp*
chainweb-node
chainweb-node*
chainweb-node-prof*
chainweb-tests*
ci-logs
ci-logs*
dist
dist-newstyle
hie.log
out*
prof-data
tags
tmp
tmp*
5 changes: 4 additions & 1 deletion .github/actions/install-chainweb-from-artifacts/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ runs:
ubuntu-22.04)
sudo apt-get install -u libgflags2.2
;;
ubuntu-24.04)
sudo apt-get install -u libgflags2.2
;;
mac*)
brew update && brew install gnu-tar || true
brew update && brew install gflags llvm snappy || true
;;
*)
echo "::error::unsupported operating system ${{ inputs.os }}"
Expand Down
120 changes: 93 additions & 27 deletions .github/workflows/applications.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,12 @@ jobs:
DEBUG_INFO=${{ github.event.inputs.debugInfo }}
if [[ -n "$DEBUG_INFO" && "${DEBUG_INFO^^}" = "TRUE" ]] ; then
echo "building binaries with dwarf debug symbols"
echo "debug-info=True" >> $GITHUB_OUTPUT
echo "debug-info=2" >> $GITHUB_OUTPUT
echo "stripping=False" >> $GITHUB_OUTPUT
TAG_SUFFIX+=-dwarf
else
echo "building binaries without dwarf debug symbols"
echo "debug-info=False" >> $GITHUB_OUTPUT
echo "debug-info=0" >> $GITHUB_OUTPUT
echo "stripping=True" >> $GITHUB_OUTPUT
fi

Expand Down Expand Up @@ -140,16 +140,16 @@ jobs:
if "${{ github.event_name == 'schedule' }}" == "true"; then
MATRIX="$(jq -c '.' <<EOF
{

# The first version in this list is the version to be used for release
"ghc": ["9.10.3"],
"cabal": ["3.14"],
"cabal": ["latest"],
"os": ["ubuntu-22.04"],
"use-freeze-file": ["false"],
"include" : [
{
# These are the build values that will be used for release scripts
"ghc": "9.10.3",
"cabal": "3.14",
"cabal": "latest",
"os": "ubuntu-22.04",
"use-freeze-file": "true"
}
Expand All @@ -161,10 +161,22 @@ jobs:
MATRIX="$(jq -c '.' <<EOF
{
"ghc": ["9.10.3"],
"cabal": ["3.14"],
"os": ["ubuntu-22.04"],
"cabal": ["latest"],
"os": ["ubuntu-22.04", "ubuntu-24.04"],
"use-freeze-file": ["false"],
"include" : [
{
"ghc": "9.12.2",
"cabal": "latest",
"os": "ubuntu-24.04",
"use-freeze-file": "false"
},
{
"ghc": "9.12.2",
"cabal": "latest",
"os": "macos-latest",
"use-freeze-file": "false"
},
{
"ghc": "9.10.3",
"cabal": "3.14",
Expand Down Expand Up @@ -256,6 +268,9 @@ jobs:
- name: Install non-Haskell dependencies (ubuntu)
if: contains(matrix.os, 'ubuntu')
run: sudo apt-get install -y libgflags-dev liblz4-dev libzstd-dev libsnappy-dev libbz2-dev libmpfr-dev
- name: Install non-Haskell dependencies (macos)
if: contains(matrix.os, 'macos')
run: brew install -q gflags llvm snappy || true
# Project Configuration
- name: Create cabal.project.local
run: |
Expand Down Expand Up @@ -336,6 +351,7 @@ jobs:
diff -w <(git show HEAD:cabal.project.freeze) cabal.project.freeze || true
- name: Sync from cabal cache
if: env.USE_CABAL_CACHE == 'true'
continue-on-error: true
uses: larskuhtz/cabal-cache-action@4b537195b33898fcd9adc62cee2a44986fd7b1b6
with:
bucket: "community-kda-cabal-cache"
Expand All @@ -347,28 +363,33 @@ jobs:
- name: Install build dependencies
run: cabal build chainweb --only-dependencies
- name: Build chainweb library
run: cabal build --ghc-options=-j2 lib:chainweb
run: cabal build lib:chainweb
# # Temporarily disabled on lars/pp/* branches
- name: Build chainweb applications
run: |
cabal build -j2 --ghc-options=-j2 \
chainweb:bench:bench \
cabal build \
exe:b64 \
exe:compact \
exe:db-checksum \
exe:ea \
exe:genconf \
exe:header-dump \
exe:known-graphs \
exe:standalone-pruner \
exe:pact-diff \
exe:run-nodes \
exe:evm-genesis \
exe:tx-list \
exe:run-nodes \
test:chainweb-tests \
test:compaction-tests \
test:multi-node-network-tests \
test:remote-tests \
test:chainweb-storage-tests
test:chainweb-storage-tests \
test:blockhistory-migration-tests \
chainweb:bench:bench
# TODO: PP
# exe:header-dump \
# exe:db-checksum \
# test:compaction-tests \
- name: Build chainweb-node application
run: cabal build -j2 --ghc-options=-j2 chainweb-node:exe:chainweb-node
run: cabal build chainweb-node:exe:chainweb-node

# Checks
- name: Check that working directory tree is clean
Expand All @@ -377,6 +398,7 @@ jobs:
echo "Git working tree is not clean. The build changed some file that is checked into git." 1>&2
exit 1
fi

- name: Run ea and verify consistency of genesis headers
run: |
cabal run ea
Expand All @@ -389,30 +411,32 @@ jobs:
- name: Prepare artifacts
run: |
mkdir -p artifacts/chainweb
cp $(cabal list-bin b64) artifacts/chainweb
cp $(cabal list-bin bench) artifacts/chainweb
cp $(cabal list-bin chainweb-node) artifacts/chainweb
cp $(cabal list-bin chainweb-storage-tests) artifacts/chainweb
cp $(cabal list-bin chainweb-tests) artifacts/chainweb
cp $(cabal list-bin test:chainweb-storage-tests) artifacts/chainweb
cp $(cabal list-bin test:chainweb-tests) artifacts/chainweb
cp $(cabal list-bin test:remote-tests) artifacts/chainweb
cp $(cabal list-bin test:blockhistory-migration-tests) artifacts/chainweb
cp $(cabal list-bin test:multi-node-network-tests) artifacts/chainweb
cp $(cabal list-bin bench) artifacts/chainweb
cp $(cabal list-bin evm-genesis) artifacts/chainweb
cp $(cabal list-bin compact) artifacts/chainweb
cp $(cabal list-bin compaction-tests) artifacts/chainweb
cp $(cabal list-bin db-checksum) artifacts/chainweb
cp $(cabal list-bin ea) artifacts/chainweb
cp $(cabal list-bin genconf) artifacts/chainweb
cp $(cabal list-bin header-dump) artifacts/chainweb
cp $(cabal list-bin known-graphs) artifacts/chainweb
cp $(cabal list-bin multi-node-network-tests) artifacts/chainweb
cp $(cabal list-bin pact-diff) artifacts/chainweb
cp $(cabal list-bin remote-tests) artifacts/chainweb
cp $(cabal list-bin run-nodes) artifacts/chainweb
cp $(cabal list-bin standalone-pruner) artifacts/chainweb
cp $(cabal list-bin tx-list) artifacts/chainweb
cp $(cabal list-bin run-nodes) artifacts/chainweb
cp README.md artifacts/chainweb
cp CHANGELOG.md artifacts/chainweb
cp LICENSE artifacts/chainweb
cp chainweb.cabal artifacts/chainweb
cp cabal.project artifacts/chainweb
cp cabal.project.local artifacts/chainweb
cp cabal.project.freeze artifacts/chainweb
# cp $(cabal list-bin header-dump) artifacts/chainweb
# cp $(cabal list-bin compaction-tests) artifacts/chainweb
# cp $(cabal list-bin db-checksum) artifacts/chainweb
- name: Create artifacts archive
run: |
echo "tar -C ./artifacts/ -czf $ARTIFACTS_ARCHIVE chainweb"
Expand Down Expand Up @@ -455,6 +479,7 @@ jobs:
run: remote-tests

compaction-tests:
if: false # diabled on the evm branches
name: Compaction tests
needs: [config, build]
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -483,6 +508,8 @@ jobs:
compaction-tests

multi-node-network-tests:
# disabled for now on the evm branches. 10 nodes with 100 chains probably overwhelms the runners.
if: false
name: Multi-node network tests
needs: [config, build]
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -536,10 +563,41 @@ jobs:
timeout-minutes: 2
run: chainweb-storage-tests

blockhistory-migration-tests:
if: false # disabled because it needs databases as input
name: RocksDB library tests
needs: [config, build]
runs-on: ${{ matrix.os }}
env:
ARTIFACTS_NAME: chainweb-applications.${{ matrix.use-freeze-file }}.${{ matrix.ghc }}.${{ matrix.os }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.config.outputs.matrix) }}
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACTS_NAME }}
path: .
- name: Install chainweb from artifacts
uses: ./.github/actions/install-chainweb-from-artifacts
with:
os: ${{ matrix.os }}
ghc: ${{ matrix.ghc }}
use-freeze-file: ${{ matrix.use-freeze-file }}
- name: Run blockhistory-migration-tests tests
timeout-minutes: 2
run: blockhistory-migration-tests

# ########################################################################## #
# Run Benchmarks

# Benchmarks take a long time to run and should run in controlled environment.
# Github runners tent to be noisy. So, we only build but don't run the
# benchmarks on push events.
benchmarks:
if: false
name: Benchmarks
needs: [config, build]
strategy:
Expand Down Expand Up @@ -606,7 +664,12 @@ jobs:
timeout-minutes: 10
run: |
ulimit -n 10000
chainweb-tests --hide-successes --results-json test-results.json
grep -q -e '&&' FAILING_TESTS && echo "warning: FAILING_TESTS file is not empty" 1>&2
chainweb-tests \
--hide-successes \
--results-json test-results.json \
-p "$(tr '\n' ' ' < FAILING_TESTS)"


# Publish test results to S3
- name: Upload test results
Expand Down Expand Up @@ -665,6 +728,9 @@ jobs:
- ghc: "9.10.3"
os: "ubuntu-22.04"
use-freeze-file: "true"
- ghc: "9.10.3"
os: "ubuntu-22.04"
use-freeze-file: "false"
env:
OS: ${{ matrix.os }}
ARTIFACTS_NAME: chainweb-applications.${{ matrix.use-freeze-file }}.${{ matrix.ghc }}.${{ matrix.os }}
Expand Down
Loading
Loading