go-smart-record

module
v0.0.0-...-49f93d6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2024 License: MIT

README

go-smart-record

Discourse posts

Go implementation of smart records. Smart Records (SRs) provide a public blackboard for protocols.

Summary

We currently don't have a standardized, shared, public medium decoupled from the transport protocol for the interaction of different protocols. With Smart Records (SRs) we generalize DHT's key/value put/get as a separate protocol that can be leveraged by any other protocol (including DHT protocols) to store arbitrary data.

Smart Records leverage the go-routing-language for their data model. SRs are a mixture between a CRDT and a smart contract. A record (for a key) is a replicated state machine holding generic data. It supports reading, writing, merging and "smart services" (through smart tags included in the SR data model which adds additional logic to records).

SR model works as follows:

  • Each peer (identified by its public key) writes to a peer-specific documents (their own peer private space).
  • Peers can overwrite their own documents.
  • Every document node has a TTL specified (and eventually paid for) by the writing peer.
  • Users of SR can get the full record and process the information stored in the different user-spaces.

Contribute

Contributions welcome. Please check out the issues.

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to libp2p are subject to the IPFS Code of Conduct.

License

MIT © Protocol Labs Inc.

Directories

Path Synopsis
examples
chat-app Module
ir
Package ir defines the Intermediate Representation (informally, in-memory representation) of smart records.
Package ir defines the Intermediate Representation (informally, in-memory representation) of smart records.
base
Package base implements the basic set of smart tags supported by a smart record.
Package base implements the basic set of smart tags supported by a smart record.
pb
example Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL