How to Share Proposals Between Participants
Proposals and votes are local files. Participants share them out-of-band (email, Signal, IPFS, shared drive). Import merges rather than overwrites — you can import the same file multiple times safely.
Export
Section titled “Export”# Write to a fileckb-firewall export --proposal <id> --out proposal-abc123.json
# Print to stdout (for piping or copying)ckb-firewall export --proposal <id>Import
Section titled “Import”ckb-firewall import proposal-abc123.jsonThe CLI validates the proposalIdHash and voteDigestHash before saving. A tampered file is rejected. If the proposal already exists locally, votes are merged.
Typical flow for collecting votes
Section titled “Typical flow for collecting votes”- Proposer exports and sends to all validators
- Each validator imports, votes, and exports again
- Each updated export is sent back to the proposer (or broadcast to the group)
- Each participant imports all updated exports to accumulate all votes
- Once threshold votes are present locally, any participant can run
execute
There is no shared server. Consistency is maintained by the proposalIdHash (immutable fields) and voteDigestHash (commitment to the vote set).