You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 830ff2d
Browse filesBrowse the repository at this point in the historyBrowse files
fix(ci): remove the three sources of flakiness in the weekly example runs (#1482)
* fix(ci): remove the three sources of flakiness in the weekly example runs
- evm_block_explorer: query a post-Merge block. PublicNode routes across
regional pools and some only retain history from block ~15500000, so the
block 1 assertions failed with `pruned history unavailable` depending on
which pool served the outcall.
- unit_testable_rust_canister: prepare each test WASM once per test binary.
Two tests downloaded the NNS governance WASM concurrently to the same path,
and `fs::write` truncating under the peer's `fs::read` produced a partial
gzip that PocketIC rejected as `CanisterInvalidWasm`. curl's exit status was
also unchecked, so a failed transfer was cached as a valid artifact.
- _run-example.yml: warm the mops toolchain cache. Projects with more than one
Motoko canister run concurrent `mops build` invocations that race on the
shared moc download and extraction, failing the build with no diagnostics.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* docs(ci): point the mops workaround at the upstream issue
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(unit_testable_rust_canister): make the download temp name process-unique
Keeps the atomic-rename guarantee if the tests are ever run per-process
(cargo nextest) or in two checkouts at once, rather than relying on
libtest running tests as threads within one process.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(unit_testable_rust_canister): validate the whole cached gzip stream
The magic-prefix check accepted a truncated archive left behind by an
earlier interrupted download, so a corrupt cache entry survived and kept
failing as CanisterInvalidWasm. Decoding the stream covers the trailing
CRC and length, and a corrupt entry is now replaced rather than reused.
flate2 is already built for the test profile via pocket-ic.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: motoko/evm_block_explorer/README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,6 +83,8 @@ Both give the same interface as long as `icp.yaml` pins the release that is live
83
83
84
84
The example uses [PublicNode](https://ethereum-rpc.publicnode.com) by default — a free, no-registration provider that works out of the box locally and on mainnet. This is sufficient for getting started and automated testing.
85
85
86
+
PublicNode routes requests across regional node pools, and not all of them keep the full chain history — some only retain blocks from shortly before the Merge (block ~15500000). Queries for earlier blocks therefore fail with `pruned history unavailable` depending on which pool serves the outcall. `test.sh` queries a post-Merge block for that reason; an archive provider is needed to read early history reliably.
87
+
86
88
For production deployments requiring premium providers (Alchemy, Ankr, BlockPi), refer to the [EVM RPC canister documentation](https://github.com/dfinity/evm-rpc-canister) for how to configure API keys. Once configured, change `#EthMainnet(?[#PublicNode])` in `backend/EvmRpcApi.mo` to `#EthMainnet(null)` to use all configured providers for better consensus.
The example uses [PublicNode](https://ethereum-rpc.publicnode.com) by default — a free, no-registration provider that works out of the box locally and on mainnet. This is sufficient for getting started and automated testing.
66
66
67
+
PublicNode routes requests across regional node pools, and not all of them keep the full chain history — some only retain blocks from shortly before the Merge (block ~15500000). Queries for earlier blocks therefore fail with `pruned history unavailable` depending on which pool serves the outcall. `test.sh` queries a post-Merge block for that reason; an archive provider is needed to read early history reliably.
68
+
67
69
For production deployments requiring premium providers (Alchemy, Ankr, BlockPi), refer to the [EVM RPC canister documentation](https://github.com/dfinity/evm-rpc-canister) for how to configure API keys. Once configured, change `RpcServices::EthMainnet(Some(vec![EthMainnetService::PublicNode]))` in `backend/src/lib.rs` to `RpcServices::EthMainnet(None)` to use all configured providers for better consensus.
0 commit comments