P2PDB is a secure, scalable, decentralized data sharing and management platform for data publishing, sharing, and querying of data which enables an unlimited number of independent participants to publish and access the contents of datasets stored across the participants.
P2PDB consists of five core components: Client, Publisher, Coordinator, Contractor and Blockchain.
- Client
- Produce static or continuous SQL queries and consume the results.
- Publisher
- Produce and ship its structure data to contractors for storage and queryable access, and receive a reward every time the data that they contributed participates in a query result.
- Coordinator
- Receive SQL queries, parse, plan, optimize and coordinate their parallel execution across potentially many contractors.
- Contractor
- Provide an interface to locally stored data for queries sent from coordinators.
- Blockchain
- Maintain the configuration and bookkeeping info of the global state of system.
[1] It's time to rethink how we share data on the Web. Daniel Abadi. In DBMS Musings. December 18, 2019.
[2] AnyLog: a Grand Unification of the Internet of Things. Daniel Abadi, Owen Arden, Faisal Nawab and Moshe Shadmon. CIDR'2020
If you wish to make contributions to this project, please refer to Contributor Instructions for more information.
If you have some IoT data you can contribute our research prototype, please contact us by gangliao@cs.umd.edu
.
P2PDB resources in this repository are released under the Apache License 2.0