Skip to main content

BFT Testing Framework for Flow Blockchain

  • Conference paper
  • First Online:
Blockchain and Applications, 5th International Congress (BLOCKCHAIN 2023)

Part of the book series: Lecture Notes in Networks and Systems ((LNNS,volume 778))

Included in the following conference series:

Abstract

This paper introduces BFTune, an innovative open-source testing framework for comprehensive functional testing against coordinated active attacks in the Flow blockchain. The proposed BFTune is the first testing framework of its kind, offering functional coverage, protocol realism, and programmable attacker models for the Flow blockchain, addressing a gap in existing blockchain testing tools. We detail the design and implementation of BFTune, present real-world BFT testing scenarios, and provide an extensive experimental assessment of its scalability and runtime overhead.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 199.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/onflow/bftune.

References

  1. Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system. Decentralized Bus. Rev. (2008)

    Google Scholar 

  2. Wood, G., et al.: Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper (2014)

    Google Scholar 

  3. Hentschel, A., Hassanzadeh-Nazarabadi, Y., Seraj, R., Shirley, D., Lafrance, L.: Flow: separating consensus and compute–block formation and execution. arXiv preprint arXiv:2002.07403 (2020)

  4. Hentschel, A., Shirley, D., Lafrance, L., Zamski, M.: Flow: separating consensus and compute–execution verification. arXiv preprint arXiv:1909.05832 (2019)

  5. King, S., Nadal, S.: PPCoin: peer-to-peer crypto-currency with proof-of-stake. Self-published paper (2012)

    Google Scholar 

  6. Lamport, L., Shostak, R., Pease, M.: The Byzantine generals problem. In: Concurrency: The Works of Leslie Lamport, pp. 203–226 (2019)

    Google Scholar 

  7. Douceur, J.R.: The Sybil attack. In: Druschel, P., Kaashoek, F., Rowstron, A. (eds.) IPTPS 2002. LNCS, vol. 2429, pp. 251–260. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45748-8_24

    Chapter  Google Scholar 

  8. Kuperberg, M.: Towards an analysis of network partitioning prevention for distributed ledgers and blockchains. In: 2020 DAPPS. IEEE (2020)

    Google Scholar 

  9. Saad, M., et al.: Exploring the attack surface of blockchain: a comprehensive survey. IEEE Commun. Surv. Tutor. 22, 1977–2008 (2020)

    Article  Google Scholar 

  10. Singh, A., Das, T., Maniatis, P., Druschel, P., Roscoe, T.: BFT protocols under fire. In: NSDI (2008)

    Google Scholar 

  11. Wang, P.-L., Chao, T.-W., Wu, C.-C., Hsiao, H.-C.: Tool: an efficient and flexible simulator for byzantine fault-tolerant protocols. In: DSN. IEEE (2022)

    Google Scholar 

  12. Bano, S., et al.: Twins: BFT systems made robust. arXiv preprint arXiv:2004.10617 (2020)

  13. Chen, Y., Ma, F., Zhou, Y., Jiang, Y., Chen, T., Sun, J.: Tyr: finding consensus failure bugs in blockchain system with behaviour divergent model. In: Symposium on Security and Privacy. IEEE (2022)

    Google Scholar 

  14. Yang, Y., Kim, T., Chun, B.-G.: Finding consensus bugs in Ethereum via multi-transaction differential fuzzing. In: OSDI (2021)

    Google Scholar 

  15. Castro, M., Liskov, B., et al.: Practical Byzantine fault tolerance. In: OsDI (1999)

    Google Scholar 

  16. Google LLC. GRPC: a high-performance, open-source universal RPC framework (2015). https://grpc.io/docs/what-is-grpc/introduction/. Accessed 8 Mar 2023

  17. Flow go integration tests - pass through. https://github.com/onflow/flow-go/tree/master/integration/tests/bft/passthrough. Accessed 8 Mar 2023

  18. Flow go integration tests - message validation. https://github.com/onflow/flow-go/tree/master/integration/tests/bft/topicvalidator. Accessed 8 Mar 2023

  19. Flow go integration tests - signature requirement. https://github.com/onflow/flow-go/tree/master/integration/tests/bft/gossipsub/signature. Accessed 8 Mar 2023

  20. Flow go integration tests - happy path testing. https://github.com/onflow/flow-go/blob/master/integration/tests/common. Accessed 8 Mar 2023

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yahya Hassanzadeh-Nazarabadi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Hassanzadeh-Nazarabadi, Y., Rybalov, M., Claybon, K. (2023). BFT Testing Framework for Flow Blockchain. In: Machado, J.M., et al. Blockchain and Applications, 5th International Congress. BLOCKCHAIN 2023. Lecture Notes in Networks and Systems, vol 778. Springer, Cham. https://doi.org/10.1007/978-3-031-45155-3_34

Download citation

Publish with us

Policies and ethics