Skip to content

bol0x is an open protocol for content publishing using decentralized technologies (e.g. Ethereum, IPFS).

License

Notifications You must be signed in to change notification settings

bolo-labs/bol0x

Repository files navigation

Gitter chat

bol0x

NOT READY FOR PRODUCTION (Ethereum main net)

bol0x is an open protocol for content publishing using decentralized technologies (e.g. Ethereum, IPFS).

Table of Contents

Why

Decentralization is great for content delivery and making sure no one person or organization controls everything. One of the problem we saw while building decentralized apps (DApps) was that there is no good way to discover content that is published on some decentralized storage. The other issue is that as content is immutable so we need to have a registry which can be changed by user to point to the latest content.

We believe there should be an open protocol to handle scenarios surrounding content publishing (text, audio, video etc.) on decentralized systems.

One reason to have an open protocol is that public content of user should not be owned by one application but should be usable by other applications. This enables a market of applications for users to pick from without worrying about repopulating content on the new web application. If you use one DApp for publishing blogs but there is another DApp in the market which has better features you should be able to move to that DApp immediately as it would be built on the same open protocol.

What

We are starting with IPFS as decentralized storage and Ethereum as the decentralized compute, but our aim is to make it agnostic to the underlying technologies as we move forward and see what the community needs.

What is bol0x

We are building set of contracts for Ethereum to make discovery and maintenance of content easier. The contracts will also come with Javascript APIs that can be used by developers in DApps to use the bol0x protocol. We will also be building some common content models and APIs to publish on IPFS.

Example

If you are creating a video publishing platform on bol0x it will include the following steps

Example dapp using bol0x

  1. Create an Entity for the user (if not already created). This will track all the content published under one user on the Ethereum blockchain.
  2. Register the user entity with the directory. This will make all the users discoverable.
  3. Your DApp publishes the video on IPFS.
  4. Publish the metadata about the content on Ethereum.

Where we are

We have just started building the protocol with some Ethereum contracts and Javascript APIs to use those contracts. We are nowhere near to being production ready so please don't use it on Ethereum main net. As more people start contributing we are planning to build APIs and common models to publish various content on IPFS. We will also be building DApps using the bol0x.

How can you help

We need all the help we can get. If you are onboard the vision of building the bol0x protocol you can contribute various ways

  • If you are a developer interested in building the protocol start contributing.
  • If you are interested in building DApps, let's start the conversation of what you are building and how can the protocol evolve to support your application. Feel free to create issues discussing your scenarios.
  • If you are a designer we need help with a website.
  • If you are content writer you can help with writing guides and tutorials to use the protocol.
  • If you are not any of it but still want to contribute, jump onto gitter.

Contributing

Install dependencies

Make sure you have installed yarn and lerna globally.

Build

Build all packages

yarn lerna:run build

Run tests

Before running tests, you will need to start a test network at http://localhost:7547. We recommend using Ganache to do that. After running the test network

yarn lerna:run test

About

bol0x is an open protocol for content publishing using decentralized technologies (e.g. Ethereum, IPFS).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published