This repository contains the code, and instructions for reproducing the experiments and results from our paper:
Cross-Consensus Reliable Broadcast and its Applications
Yue Huang, Xin Wang, Haibin Zhang, Sisi Duan
Network and Distributed System Security (NDSS) Symposium 2026
📄 Paper PDF
We introduce Cross-Consensus Reliable Broadcast (XRBC) - a novel primitive that models secure communication between distributed groups where at least one group executes a consensus protocol. Our experimental evaluation demonstrates that XRBC protocols achieve:
- ⚡ Low latency communication across consensus boundaries
- 📈 High throughput under various network conditions
- 🛡️ Strong security guarantees for cross-group interactions
This artifact enables reproduction of Section VII results from our paper. The experiments require no specialized hardware and run on standard commodity machines.
Test Environment:
- 🖥️ 4-core CPU, 16GB RAM, 100GB storage
- 🌐 100 Mbps network connection
- 🐧 Linux operating system
Note: While our paper presents full-scale results on Amazon EC2, this artifact provides scaled-down experiments for single-machine reproduction. For EC2 deployment instructions, see the AWS experiment overview below.
# Install dependencies
./autoEnv.bash./autoE1.bash📄 Results will be saved to resultE1.txt
./autoE2.bash📄 Results will be saved to resultE2.txt
⏱️ This experiment may take longer - please wait for completion
./autoE3.bash📄 Results will be saved to resultE3.txt
⏱️ This experiment may take longer - please wait for completion
./autoEnv.bash # Install all dependencies./autoConfig.bash [m] [n] [Consensus No] etc/conf.jsonModify the configuration file in etc/conf.json
| Script | Purpose |
|---|---|
./autoE1.bash |
Run Experiment 1 (Claim #1) |
./autoE2.bash |
Run Experiment 2 (Claim #2) |
./autoE3.bash |
Run Experiment 3 (Claim #3) |
IDE Users: Running
autoE1.bash,autoE2.bash, andautoE3.bashmay freeze your IDE due to intensive resource usage. After starting a script, wait ~2 minutes. If the IDE becomes unresponsive, close it and restart the experiments. Progress logs are saved inresultE1.txt,resultE2.txt, andresultE3.txt.
OS Compatibility: We recommend Ubuntu. Other operating systems (e.g., CentOS) may cause dependency downloads (like
jq) to fail or timeout.
When running all logical XRBC nodes on a single machine, they compete for shared resources (CPU time, cache/memory bandwidth, kernel networking). Once hardware resources are saturated, each additional node adds only limited, stable latency overhead - total latency grows predictably without superlinear escalation.
Different machines have varying available headroom before reaching partial saturation, so reported latencies may vary widely between systems. This variability is expected and doesn't contradict our claims of controlled, predictable growth with bounded per-node incremental overhead (see resultE3.txt).
For large-scale testing on Amazon EC2:
-
🚀 Launch
Spin up Ubuntu 22.04 VMs in four regions with boto2; confirm they are running. -
📦 Deploy
Install Go 1.21 and dependencies, then push binaries and configs to every node via fab2. -
▶️ Run
Start servers and clients remotely with fab2, then pull back the log files. -
📊 Analyze
Parse the collected logs to compute latency and throughput.
Note: This repository focuses on local testing. EC2-related deployment codes for AWS testing are not included in this release.
If you find this work useful, please cite our paper:
@inproceedings{huang2026xrbc,
title={Cross-Consensus Reliable Broadcast and its Applications},
author={Huang, Yue and Wang, Xin and Zhang, Haibin and Duan, Sisi},
booktitle={Network and Distributed System Security (NDSS) Symposium 2026},
year={2026}
}