GithubHelp home page GithubHelp logo

blocktop

Blocktop is a library of blockchain components created for architects and developers. It is designed to allow components to easily be swapped out to promote experimentation and optimization.

Table of Contents

Overview

Blocktop is a library of blockchain components created for architects and developers. It is designed to allow components to easily be swapped out to promote experimentation and optimization.

In this manner, blocks may carry transactions of any type, and those transactions may write any type of state into the globally synchronized ledger. New transactions and new types of state may be registered to expand the system.

Deep Consensus

The heart of the system. It manages incoming blocks, confirms blocks, and proposes the best head blocks from which the blockchain should generate the next block. It is "deep" because it allows for use cases in which winning blocks may enter the system up to a configurable lag time - perfect for systems in which network speed and compute power should not be factors in the consensus process.

Block Generator

The interchangeable component that generates new blocks. Proof-of-Work systems can implement their algorithms here, but also swap for lighter-weight algorithms for testing purposes. Similarly Proof-of-Stake systems can create more efficient testing scenarios.

Blocktop has invented an new experimental proof mechanism called Proof-of-Luck. Determining which node has the privilege of writing the next block is accomplished through a simple and elegant algorithm that guarantees a single random node without requiring computational power or staking amounts of coin.

IPFS-Based Storage

IPFS is a globally-accessible, immutable, content-addressable storage system. Blocktop provides out-of-the box storage in the IPFS MerkleDAG. This allows nodes to review the entire immutable blockchain without having to individually recompute it before participating in block generation and consensus.

RPC API

Blocktop exposes internal state to programs such as command line tools, web UIs, and wallets via a simple HTTP RPC mechanism. This mechanism is extensible so that developers can include their own methods in the API.

Dashboard

Blockchain metrics and a unique consensus visualization tool are included in a dashboard UI component.

Components

Demo

Lucky is the demonstration blockchain for blocktop. It uses the Proof-of-Luck consensus algorithm and the IPFS storage module.

Install gx.

go get -u github.com/whyrusleeping/gx
go get -u github.com/whyrusleeping/gx-go

Install IPFS with gx.

gx-go get github.com/ipfs/go-ipfs

Clone the go-lucky repo.

git clone https://github.com/blocktop/go-lucky.git $GOPATH/src/github.com/blocktop/go-lucky
cd $GOPATH/src/github.com/blocktop/go-lucky

Install dependencies.

gx install
go get ./...

Build.

go build -a -o $GOPATH/bin/lucky

Init and run your node. Your node will be connected into the Lucky testnet with several other nodes running around the world (some of which are operated by blocktop.solutions, our commercial arm).

lucky init
lucky blockchain

Visualize. Run the following and then open a browser to http://localhost:3000.

lucky dashboard

Maintainers

@strobus

Contributors

Would you like to help out with blocktop development? Fork any repo and submit a pull request!

License

GPL © 2018 J. Strobus White Commercial terms available, please [contact me](mailto:[email protected]?subject=blocktop license).

blocktop's Projects

blocktop icon blocktop

Blocktop is a library of blockchain components created for architects and developers. It is designed to allow components to easily be swapped out to promote experimentation and optimization.

go-api icon go-api

API server for the blocktop blockchain development kit.

go-blockchain icon go-blockchain

Blockchain management library for the blocktop blockchain development kit.

go-consensus icon go-consensus

Distributed deep-consensus library for the blocktop blockchain development kit.

go-dashboard icon go-dashboard

Blockchain dashboard included with the blocktop blockchain development kit.

go-glog-cobra icon go-glog-cobra

Forms a bridge between cobra and golang's flag package for automatically defining cobra flags that match the glog flagset.

go-kernel icon go-kernel

Block OS kernel for the blocktop blockchain development kit.

go-lucky icon go-lucky

An example blockchain project that incorporates components of the blocktop blockchain development kit.

go-luckyblock icon go-luckyblock

Proof-of-Luck block generator and comparator for the blocktop blockchain development kit.

go-push-components icon go-push-components

Push Components replace the need for golang chan and select constructs, which require no polling and are instead designed to "push" new work to the client when available.

go-spec icon go-spec

The interface specifications for the blocktop blockchain development kit components.

go-store-ipfs icon go-store-ipfs

IPFS based storage for objects and Merkle tree for blocktop components.

movavg icon movavg

Moving Average calculator for Go (Golang)

pocket-core icon pocket-core

Official implementation of the Pocket Network Protocol

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.