deps: bump p3-merkle-tree from 0.4.2 to 0.5.2#5
Closed
dependabot[bot] wants to merge 34 commits intomainfrom
Closed
deps: bump p3-merkle-tree from 0.4.2 to 0.5.2#5dependabot[bot] wants to merge 34 commits intomainfrom
dependabot[bot] wants to merge 34 commits intomainfrom
Conversation
Trust Stack Network: Layer 1 blockchain with Plonky2 STARKs, ML-DSA-65, Poseidon2, shielded transactions, fast-sync protocol, and anti-fork protections. 81,000+ lines of Rust.
Delete 7 Halo2 files (circuit, prover, validator, shielded, optimized). Plonky3 adapter and p3-* crates already added in previous commit. Update Cargo.lock to reflect dependency changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reflects the completed Plonky3 STARK migration (Phase 12). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Clean all legacy references. Update bibliography to Plonky3/Polygon Labs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add NodeRole enum with capabilities (can_mine, can_relay, can_prove, stores_full_chain) - Add --role CLI flag to Node subcommand (default: miner) - Add role field to P2P HandshakeMessage (backwards compatible) - Role-based startup behavior (LightClient skips mining, Relay relays only, etc.)
- Multi-peer snapshot verification (>50% consensus required) - Migration hash (SHA-256 of V1+V2 roots) in state snapshots - MiningStatus enum with explicit warnings when miner is behind network tip
- Create plonky3-wasm/ crate with WasmProverP3 (wasm-bindgen) - Add export_viewing_key() and from_viewing_key() to ShieldedWallet - Add scan_block_view_only() for watch-only wallets - Add REST endpoints: GET /wallet/viewing-key, POST /wallet/watch
- RoleValidator: enforces ONE role per node, no dual roles - RoleProof: peers must prove capabilities (MIK for miners, chain height for relays, sample proof for provers) - PeerTask routing: work only sent to verified capable nodes - Fraud strikes: 3 failed validations = ban - Re-validation every 10 minutes - 8 unit tests covering all scenarios
- Remove Prover node role — ZK proofs now generated by Miners - Update config: DEV_FEE_PERCENT=5, RELAY_POOL_PERCENT=3, miner=92% - Add relay_pool() function in config/mod.rs - Update README: 3 node types, new reward table - Update whitepaper, brand guides, wallet docs - Rename "dev fund" → "dev fees" everywhere Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add libp2p P2P: GossipSub, Kademlia, AutoNAT, Relay, DCUtR - CLI: ./tsn miner/relay/light with auto-port, auto-wallet, auto-datadir - CLI: ./tsn balance scans via node API (no more stale offline scan) - Wallet for relay/light nodes (-w flag) - API starts before sync (no more deadlock on bootstrap) - Sync loop: continuous fetch when behind (not 1 batch per 30s) - Explorer: P2P peers with real PeerIDs + autoName - Explorer: resilient offline detection (5 failures threshold) - Reward distribution: 92% miner / 5% dev fees / 3% relay pool - Default port: 9333 (was 8333) - Node banner: colored, shows threads, address, reward split - /node/info and /peers/p2p API endpoints Known issue: seeds desync after fast-sync (difficulty validation) TODO: fix difficulty validation post-snapshot, Phase 3 (./tsn send) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix: fast_sync_base_height tracked in blockchain struct + DB metadata - Fix: skip difficulty validation when adjustment window extends before snapshot - Fix: import_snapshot_at_height takes next_difficulty from peer - Fix: P2P identify messages deduplicated (HashSet per peer) - Fix: peer heights tracked via GossipSub block messages - PeerInfo now includes height field - Tested: 15+ minutes stable, 3 difficulty adjustments passed Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CLI: ./tsn send --to <pk_hash> --amount 10 --fee 0.001 - Parses wallet, scans via API, selects notes (greedy) - Gets merkle witnesses from node API (manual JSON parsing) - Generates Plonky2 STARK proof via TransactionProver - Builds SpendDescriptionV2 + OutputDescriptionV2 with ML-DSA-65 signatures - Submits via POST /tx/v2 - wallet.nullifier_key_bytes() added WIP: Merkle path verification fails — V1 note randomness (Fr/BN254) vs V2 prover expects PQ randomness ([u8;32]). Need to use PQ commitment data for spending, not V1 data. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- WalletNote: pq_randomness + pq_commitment fields (stored in JSON) - scan_block: extracts PQ data from coinbase via decrypt_note_pq - cmd_send: uses pq_randomness for V2 spending - Discord: Prover role deleted, choose-your-role message updated (3 roles) - wallet.rs: nullifier_key_bytes() for PQ proof witnesses Known blocker: blocks not persisted in DB (RAM only) — rescan impossible after restart. Need Option A (save notes at mine time) or B (persist blocks). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Miner saves coinbase notes to wallet.json after each mined block - Correct position calculation using chain.state().commitment_count() - wallet.pq_randomness and pq_commitment properly stored and loaded - Discord: Prover role removed, choose-your-role updated Remaining blocker: commitment_count() returns stale value after fast-sync + HTTP block sync. The PQ commitment tree doesn't get properly updated when syncing blocks via HTTP. Positions are off → witness 404. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- REMOVED rate limiter (was causing 429 deadlocks between nodes) - TX V2 relay: submit_transaction_v2 now relays to peers via P2P + HTTP - cmd_send: relays TX directly to all seed nodes for fast propagation - New wallet creation: shows 24-word seed phrase, requires YES confirmation - Auto-save mined notes to wallet.json with correct positions + PQ data Known issue: fast-sync doesn't trigger when sync background starts first (seeds sync block-by-block instead of snapshot — slow but works) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause of all sync issues: 1. Node-1 was NOT in SEED_NODES — new nodes couldn't find it for fast-sync 2. /tip endpoint was accidentally removed during route refactoring Both fixes restore fast-sync: fresh nodes go from 0 to 21000+ in ~3s. Rate limiter completely removed (no more 429 between nodes). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Miner syncs via fast-sync, mines blocks, handles block races - Auto re-fast-sync when stuck after losing a block race - Sync tolerance: accept ±5 blocks gap (no exact hash match required) - Timeout not fatal: start mining anyway if chain has blocks - Reorg check disabled in fast-sync zone (placeholder hashes) - First successful mining on production network: 184 TSN earned (4 blocks) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Major release with automatic node updates, cross-platform builds, and new features: - P2P auto-update: nodes detect new versions via peer handshake, download from GitHub/tsnchain.com fallback, verify SHA256 + Ed25519 signature, self-update - `tsn update` CLI command for manual updates - GitHub Actions CI: automated builds for Linux/macOS(x86+ARM)/Windows - Ed25519 release signing (tools/sign-release.py) - MiningHashContext: zero-alloc mining hot loop (pre-allocated 212B header) - Stablecoin module (ZST): reserve engine with 76 tests - AMM pool contract template - Wallet v1.2.0: TX history, received TX detection, nullifier PQ sync - Explorer hashrate corrected (difficulty / block_time) - P2P version gate: disconnect peers below MINIMUM_VERSION - Simplified CLI: `./tsn miner -t 4` auto-detects everything - README fully rewritten with accurate stats (94k+ lines, 369 tests) - Token value disclaimer added (no value during testnet) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bumps [p3-merkle-tree](https://github.com/Plonky3/Plonky3) from 0.4.2 to 0.5.2. - [Release notes](https://github.com/Plonky3/Plonky3/releases) - [Changelog](https://github.com/Plonky3/Plonky3/blob/main/CHANGELOG.md) - [Commits](Plonky3/Plonky3@p3-merkle-tree-v0.4.2...p3-merkle-tree-v0.5.2) --- updated-dependencies: - dependency-name: p3-merkle-tree dependency-version: 0.5.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
39f8ff9 to
2ad7c7a
Compare
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
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.
Bumps p3-merkle-tree from 0.4.2 to 0.5.2.
Commits
3b3e175chore: release v0.5.2 (#1499)efb8f30chore: update deploymentbf06c37fix: useu64arithmetic in 64-bit challenger to avoid truncation (#1482)4e8e715perf(batch-stark): avoid cloning generated_perm (#1473)ae3c040uni stark: rm uselesscheck_constraints.rsfile (#1471)bc9d746perf: abstract away Copy vs Clone (#1463)17fe6b5mds: small improvements and more testing (#1459)c5b292dMake batched_linear_combination chunk size per-impl tunable (#1451)9a510a0logup: better memory allocation (#1455)2277f77field: reinforcement of tests with edge cases and proptests (#1435)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)