Blockchain "pull"

in #blockchain6 years ago (edited)

As a pet project, I've been working on putting Wikipedia on my blockchain implementation named "Daisy." Since Daisy is a Proof-of-Authority blockchain whose blocks are SQLite blocks, it's very suitable for recording the base snapshot of Wikipedia data, and subsequent "diff" databases containing only the changes to the previous version.

This is using a blockchain as a more-or-less normal database, a SQL database even. Daisy makes it easy to start such blockchains, and use them to distribute data to an arbitrary number of readers / consumers of the data. It's a convenient way of sharing authenticated data.

With the latest changes, it's even easier for new nodes to start participating in such new blockchains. I've been thinking about how to make it easy for anyone to connect to custom blockchains, and the best way seems to be  implementing a "pull" command similarly to how Docker and other tools do it.

Introducing "daisy pull"

It's simple, by using:

./daisy --dir /path/to/dir pull http://wpbc.ivoras.net:2018

... you'll start a new node which will participate the Simple Wikipedia blockchain. That's it.

This command will connect to the HTTP server of the Daisy node running at that address, and download the basic data for this particular blockchain. After it is done, you can start downloading the actual data blocks with:

./daisy --dir /path/to/dir

Happy hacking!

Daisy is available from its GitHub repo here.