SCEW

Autor: Wouter Joosen, Martijn Sauwens, Kristof Jannes, Bert Lagaisse
Rok vydání: 2021
Předmět:
Zdroj: PaPoC@EuroSys
DOI: 10.1145/3447865.3457965
Popis: Collaborative web applications are becoming increasingly client-centric, with technologies such as WebRTC, WebWorkers and IndexedDB enabling a shift towards a decentralized peer-to-peer (P2P) model. Contemporary systems such as Automerge, Legion, OWebSync and Yjs provide fault tolerance and consistency by using Conflict-free Replicated Data Types for synchronization. These systems tolerate crash-faults, but lack resilience against arbitrary faults and malicious users, also known as Byzantine faults. Providing Byzantine fault tolerance (BFT) in web apps is non-trivial. Web apps are executed in web browsers on end user devices. The scarce compute resources and the interactive nature of collaborative web apps do require both a lightweight and low-latency solution, while still providing the Byzantine fault tolerance required by P2P systems to protect shared assets. Our work aims to fill this gap by indroducing SCEW, a programming framework for client-centric P2P web apps that require BFT and interactive collaboration. SCEW achieves this by combining state-based Convergent Replicated Data Types (CvRDTs) and smart contracts. SCEW represents assets shared by peers as CvRDTs with atomic register semanctics, that provide BFT through the use of BFT-consensus algorithms. SCEW employs smart contracts to define the life-cycle of these shared assets, shielding the application and it's developers from the complexity of the CvRDT's consensus protocol. Experimental results indicate that applications using SCEW can support P2P networks with 100 peers, even when Byzantine faults are present.
Databáze: OpenAIRE