Go to file
Ethan Buchman c8fea0f092 Merge pull request #30 from tendermint/circle
circle.yml
2017-02-13 15:51:31 -05:00
app Assert that Basecoin ABCI app implements abci.BlockchainAware 2017-02-04 15:09:16 -08:00
cmd s/blank/mycoin/g 2017-02-12 22:15:01 -08:00
data s/blank/mycoin/g 2017-02-12 22:15:01 -08:00
demo s/blank/mycoin/g 2017-02-12 22:15:01 -08:00
docs s/blank/mycoin/g 2017-02-12 22:15:01 -08:00
plugins s/adam/basecoin/g; fix tests 2017-02-12 19:01:17 -08:00
scripts Disable scripts/* building with build tags 2016-04-13 15:05:07 -07:00
state Vote->Counter; Fee is types.Coin; Context has Account; Cleanup 2017-01-15 15:10:51 -08:00
tests Merge abci_proof 2017-01-28 09:33:07 -08:00
testutils Vote->Counter; Fee is types.Coin; Context has Account; Cleanup 2017-01-15 15:10:51 -08:00
types Change ABCI app to implement abci.BlockchainAware interface 2017-02-04 15:09:16 -08:00
.gitignore Fix sendtx to not panic on error 2017-01-30 19:11:44 +01:00
LICENSE Add Apache2.0 license 2016-09-10 15:53:15 -07:00
Makefile Merge abci_proof 2017-01-28 09:33:07 -08:00
README.md Minor README fixes 2017-02-12 19:05:27 -08:00
circle.yml circle.yml 2017-02-13 15:44:24 -05:00
glide.lock Add test for bad proof 2017-01-29 22:31:05 -08:00
glide.yaml Merge abci_proof 2017-01-28 09:33:07 -08:00

README.md

Basecoin

DISCLAIMER: Basecoin is not associated with Coinbase.com, an excellent Bitcoin/Ethereum service.

Basecoin is an ABCI application designed to be used with the Tendermint consensus engine to form a Proof-of-Stake cryptocurrency. It also provides a general purpose framework for extending the feature-set of the cryptocurrency by implementing plugins.

Basecoin serves as a reference implementation for how we build ABCI applications in Go, and is the framework in which we implement the Cosmos Hub. It's easy to use, and doesn't require any forking - just implement your plugin, import the basecoin libraries, and away you go with a full-stack blockchain and command line tool for transacting.

WARNING: Currently uses plain-text private keys for transactions and is otherwise not production ready.

Installation

On a good day, basecoin can be installed like a normal Go program:

go get -u github.com/tendermint/basecoin/cmd/basecoin

In some cases, if that fails, or if another branch is required, we use glide for dependency management.

The guaranteed correct way of compiling from source, assuming you've already run go get or otherwise cloned the repo, is:

cd $GOPATH/src/github.com/tendermint/basecoin
git checkout develop # (until we release tendermint v0.9)
make get_vendor_deps
make install

This will create the basecoin binary in $GOPATH/bin.

Command Line Interface

The basecoin CLI can be used to start a stand-alone basecoin instance (basecoin start), or to start basecoin with Tendermint in the same process (basecoin start --in-proc). It can also be used to send transactions, eg. basecoin tx send --to 0x4793A333846E5104C46DD9AB9A00E31821B2F301 --amount 100 See basecoin --help and basecoin [cmd] --help for more details`.

Learn more

  1. Getting started with the Basecoin tool
  2. Learn more about Basecoin's design
  3. Extend Basecoin using the plugin system
  4. Learn more about plugin design
  5. See some more example applications
  6. Learn how to use InterBlockchain Communication (IBC)
  7. Deploy testnets running your basecoin application.