refactor(types): share HTTP commit certificate JSON types across evm-node and consensus#40
Closed
crazywriter1 wants to merge 22 commits intocirclefin:mainfrom
Closed
Conversation
…ments (circlefin#2) ## Summary - Add `arcup/` installer scripts for downloading and managing arc-node binaries from GitHub releases - Add `docs/installation.md` and `docs/running-an-arc-node.md` public guides - Refactor consensus streaming (`malachite-app`) with LRU cache for improved memory management - Add Zero5 hardfork and Osaka timestamp activation - Replace internal snapshot URL with public `snapshots.arc.network` endpoint - Add rate limiter to transaction spammer with governor-based throttling - Refresh README with simplified feature list and links to public docs - Add Apache-2.0 license headers to `mesh-analysis` crate - Remove internal-only `CLAUDE.md` and `atlantis.yaml` - Bump dependencies (Cargo.lock, package-lock.json)
…circlefin#5) ## Summary - Add `rustls-tls-native-roots` to snapshot download reqwest features (fixes TLS on platforms without bundled certs) - Document spammer backpressure and fire-and-forget operating modes in spammer + quake READMEs - Refresh `docs/ARCHITECTURE.md` with current crate paths, precompile addresses, remove stale denylist references - Add ADR 0002-0004 entries to `docs/adr/README.md` - Add testnet/alpha software disclaimer to root `README.md` - Add persistence latency tracking module to eth-engine - Extend consensus ready handler with validator set management - Fix follow endpoint URL handling - Add new CLI config options for consensus tuning - Update quake localdev scenarios and compose templates - Update node docs and dependency versions --------- Co-authored-by: atiwari-circle <ayush.tiwari@circle.com>
Update REGISTRY_NAMESPACE from circle/arc to circle/arc-network in build-docker.yaml Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…dValue error reply, quake storage config (circlefin#7) ## Summary - **arcup**: redirect info/warn/error to stderr, fail on HTTP errors with `curl -f`, surface `update_arcup` curl errors, respect `ARC_DIR` in env file - **evm**: remove `can_load_account` indirection, propagate `load_account` errors directly in blocklist check - **consensus**: send reply before propagating error in `ProcessSyncedValue` (CCHAIN-1498), add error path tests - **quake**: add `legacy_state_root` and `storage.v2` manifest fields - **docs**: improve installation cargo install instructions (drop hardcoded `--root /usr/local`) ## Test plan - [ ] `arcup install` and `arcup` self-update fail gracefully on bad URLs - [ ] EVM blocklist check propagates load errors instead of silently skipping - [ ] ProcessSyncedValue sends reply on validation failure before returning error - [ ] Quake manifest generation includes `legacy_state_root` and `storage.v2` fields --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ndling, multi-subnet ENI support, spammer ERC-20/mix mode (circlefin#8) ## Summary - Migrate CL config to CLI flags, support remote multi-subnet testnets, improve mesh analysis reporting - Add snapshot skip-existing logic with .snapshot-url version marker and --force flag - Improve arcup installer: surface curl errors, fail on HTTP errors, respect ARC_DIR in env file - Add secondary ENI configuration for multi-subnet bridge nodes (cloud-init systemd service + IMDS-based policy routing) - Bundle arc-snapshots binary into EL and CL Docker images - Spammer: add ERC-20 function mix (transfer/approve/transferFrom), --mix flag for transaction type blending, backpressure send mode - Add quake sync speed test and sync_speed check module - Fix localdev genesis addresses, update package-lock.json - Doc updates: Docker coming soon note, installation additions Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- update node sync docs - persistent metering for sync protocol
- mention pre-built binaries are coming soon
- Add centered Arc logo with light/dark mode support - Add Apache 2.0 COPYRIGHT file - Add Acknowledgements section to README
## Summary - update Public CI to run on `main` instead of `master` - update the Docker workflow PR trigger to target `main` - update the `Makefile` fallback branch for `buf-breaking` to `main` ## Verification - confirmed the repository default branch is `main` - checked the touched workflow/tooling files for remaining `master` references - ran `make -n buf-breaking` and verified it now targets `.git#branch=main` - ran `git diff --check`
…irclefin#16) Fixes circlefin#15 ## Problem When running the node with `docker-compose -f arc_execution.yaml -f arc_consensus.yaml up -d`, the execution engine crashes on startup: \`\`\` Error: failed to listen on ipc endpoint '/sockets/reth.ipc': No such file or directory \`\`\` The command section already references `--ipcpath=/sockets/reth.ipc` and `--auth-ipc.path=/sockets/auth.ipc`, but there's no corresponding volume mount for `/sockets` in the compose file so the directory doesn't exist inside the container. ## Fix Added `./sockets:/sockets` to the volumes section of the `arc_execution` service. ## Testing After adding the mount and creating the local `sockets/` directory, both `arc_execution` and `arc_consensus` containers boot and sync correctly.
## Summary Syncs changes ### Changes included: - **crates/quake/src/infra/remote.rs**: Fix shell quoting in pssh command (double → single quotes) - **crates/quake/terraform/cc-data.yaml**: Fix shell variable escaping in pssh.sh cloud-init script - **scripts/scenarios/nightly-chaos-testing.sh**: Remove hardcoded `--seed` from quake commands, add chaos loop replay seed documentation - **crates/malachite-app/src/handlers/restream_proposal.rs**: Refactor block lookup to use `get_first(height, hash)` instead of round-based lookup - **docs/installation.md**: Add OS-specific build dependency instructions, remove outdated submodule reference - **deployments/blockscout.yaml**: Add Blockscout block explorer docker-compose configuration - **deployments/monitoring/config-blockscout/backend.env**: Add Blockscout backend environment configuration
## Summary - Add frontend environment configuration for Blockscout block explorer deployment ## Test plan This fix `make testnet` command in readme https://github.com/circlefin/arc-node/blob/main/README.md#local-testnet
Source commit : 08cd975bb34338bf943eff1e3561a3a68143d017 Source run : https://github.com/crcl-main/circle-chain-reth/actions/runs/24227211207
Source commit : 44b59535d4c6ae8ad107fbbd05c192c9a218fb34 Source run : https://github.com/crcl-main/circle-chain-reth/actions/runs/24235230081
Source commit : 3a21786b5985c201f861a68c7b362f5fd8db5a0f Source run : https://github.com/crcl-main/circle-chain-reth/actions/runs/24244857352
Source commit : f621f21c4656064a0f77b5247d1bb00ca31d7bbe Source run : https://github.com/crcl-main/circle-chain-reth/actions/runs/24247056963
Source commit : 65df33917e65e211610a0db7deb8064eb1c95c6c Source run : https://github.com/crcl-main/circle-chain-reth/actions/runs/24263409154
## Summary - Sync changes
Add arc_consensus_types::commit_http (HttpCommitCertificate, HttpCommitSignature) and try_into_commit_certificate. Use from arc-evm-node get_certificate and malachite-app rpc_sync; RpcCommitCertificate HTTP response uses HttpCommitSignature. Add commit_http unit tests; serde_with dep + Cargo.lock.
Contributor
|
Hi @crazywriter1, Apologies for the unexpected close. This PR was auto-closed as a side-effect of an update to the main branch in circlefin/arc-node. GitHub closes PRs when their base commit no longer exists on the target branch, which is why your contribution ended up here. Your change is still very much welcome. To restore it, please rebase your branch onto the new main and open a fresh PR: Then open a new PR against main — feel free to link back to this one for context, and we'll prioritize review. Thanks for contributing to Arc, and sorry for the inconvenience. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves the minimal commit certificate JSON types (
height,round,block_hash, signatures with base64-encoded bytes) intoarc_consensus_types::commit_httpasHttpCommitCertificate/HttpCommitSignature, withtry_into_commit_certificate()for conversion toCommitCertificate<ArcContext>.Motivation
The same wire shape was duplicated between
arc-evm-node(get_certificate) andarc-node-consensus(rpc_syncclient), which risks drift and inconsistent JSON handling. Centralizing the types keeps execution RPC sync and consensus HTTP/JSON-RPC paths aligned.Changes
crates/types/src/commit_http.rsandpub mod commit_httpinarc-consensus-types.serde_with(withbase64) toarc-consensus-types; updateCargo.lock.arc-evm-node: re-exportRpcCommitCertificatefrom sharedHttpCommitCertificate; remove local duplicate structs and TODO.arc-node-consensus: useHttpCommitCertificatein RPC sync batch deserialization; replaceinto_commit_certificatewithtry_into_commit_certificate.malachite-appHTTPRpcCommitCertificateresponse now usesVec<HttpCommitSignature>for signatures (same serialization as before).Testing
cargo test -p arc-consensus-types(includes newcommit_httpunit tests).cargo test -p arc-evm-node get_certificate.cargo test -p arc-node-consensus(withOPENSSL_NO_VENDOR=1if vendored OpenSSL build fails locally).cargo clippy -p arc-consensus-types -p arc-node-consensus -p arc-evm-node --all-targets -- -D warnings.