Permissionless peer-to-peer JSON datasets
Ano de defesa: | 2023 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | eng |
Instituição de defesa: |
Universidade do Estado do Rio de Janeiro
Centro de Tecnologia e Ciências::Faculdade de Engenharia Brasil UERJ Programa de Pós-Graduação em Engenharia Eletrônica |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | http://www.bdtd.uerj.br/handle/1/19886 |
Resumo: | Networked collaborative applications, such as Google Docs and Github, allow remote users to share projects while working together concurrently. These applications rely on distributed datasets that represent documents, code, and other application data, which users expect to see and share in a consistent way. Currently, most practical collaborative systems rely on central servers to ensure that datasets remain consistent across the network. However, centralized authorities concentrate too much power, since they control data ownership and service availability. In this work, we propose a permissionless peer-to-peer (P2P) system to manipulate decentralized JSON datasets, in which all users participate in a consensus mechanism to preserve data consistency and correctness. Our main contribution is to reconcile Automerge, a JSON-based conflict-free replicated data type (CRDT) with Freechains, a permissionless P2P protocol that provides a reputation mechanism that moderates content and delivers network consensus. As a proof of concept, we prototyped a permissionless Wikipedia, in which articles are structured as Automerge JSONs files stored on Freechains. Each article is a separate chain that stores a list of modifications to its respective JSON. This list is traversed from the beginning in consensus order to recreate the article as a complete JSON. In this sense, our prototype resembles a distributed version control system (DVCS), but with a consensus mechanism that merges concurrent editions automatically. |