University of Luxembourg
- Multilingual. Personalised. Connected.
RepuCoin: Reputation-based Byzantine Consensus Jeremie Decouchant, - - PowerPoint PPT Presentation
University of Luxembourg Multilingual. Personalised. Connected. RepuCoin: Reputation-based Byzantine Consensus Jeremie Decouchant, Joint work with Jiangshan Yu, David Kozhaya, Paulo Esteves-Verssimo CritiX, SnT jeremie.decouchant@uni.lu
University of Luxembourg
2 RepuCoin: Reputation-Based Byzantine Consensus
3 RepuCoin: Reputation-Based Byzantine Consensus
4 RepuCoin: Reputation-Based Byzantine Consensus
to the blockchain
through a BFT protocol (e.g., PBFT)
and they lose reputation
top reputed miners to propose transactions
5 RepuCoin: Reputation-Based Byzantine Consensus
Breaking the liveness property:
6 RepuCoin: Reputation-Based Byzantine Consensus
Breaking the liveness property:
7 RepuCoin: Reputation-Based Byzantine Consensus
A block was discovered in the network https://github.com/bft-smart/library The block is added to the blockchain Block ordering
8 RepuCoin: Reputation-Based Byzantine Consensus
3f+1 Miners Consensus reached when:
https://github.com/bft-smart/library
9 RepuCoin: Reputation-Based Byzantine Consensus
10 RepuCoin: Reputation-Based Byzantine Consensus
– Kill any java application on the machines – Launch replicas – Launch clients
$ oarsub –I –l nodes=13,walltime=1:0:0 $ oarsub –C 12345 $ cat $OAR_NODEFILE $ oarsh –f ${ip_addr} ‘‘cd bftsmart.repucoin; ./runscript > /dev/null 2>&1 &’’ &
11 RepuCoin: Reputation-Based Byzantine Consensus
– Your life will be much easier
– You always think you won’t need to repeat the experiments: wrong! – The initial additional work is quickly amortized
– The throughput should increase with the load up to a certain point, where the latency starts increasing – But too many requests make the applications crash (message queues)
– Find the right number of clients
12 RepuCoin: Reputation-Based Byzantine Consensus
– Plan ahead
– Change the machines Change your performance – Are there a lot of jobs ongoing?
– Example: The performance with 8MB blocks is lower than with 4MB – I spent a day repeating the experiments and got the same result: I still don’t explain it