Bytom
-=====
-[![Build Status](https://travis-ci.org/Bytom/bytom.svg)](https://travis-ci.org/Bytom/bytom)
-[![AGPL v3](https://img.shields.io/badge/license-AGPL%20v3-brightgreen.svg)](./LICENSE)
-
-## Table of Contents
-<!-- vim-markdown-toc GFM -->
-
-* [What is Bytom?](#what-is-bytom)
-* [Build from source](#build-from-source)
- * [Requirements](#requirements)
- * [Installation](#installation)
- * [Get the source code](#get-the-source-code)
- * [Build](#build)
-* [Example](#example)
- * [Initialize](#initialize)
- * [launch](#launch)
- * [Dashboard](#dashboard)
- * [Create key](#create-key)
- * [Create account](#create-account)
- * [Multi-signature account](#multi-signature-account)
- * [Create asset](#create-asset)
- * [Multi-signature asset](#multi-signature-asset)
- * [Sending transaction](#sending-transaction)
- * [Issue](#issue)
- * [`build-transaction`](#build-transaction)
- * [`sign-submit-transaction`](#sign-submit-transaction)
- * [Spend](#spend)
- * [`create-account-receiver`](#create-account-receiver)
- * [`build-transaction`](#build-transaction-1)
- * [`sign-submit-transaction`](#sign-submit-transaction-1)
- * [Transfer BTM](#transfer-btm)
-* [Running Bytom in Docker](#running-bytom-in-docker)
-* [Contributing](#contributing)
-* [License](#license)
-
-<!-- vim-markdown-toc -->
+======
+
+[![Build Status](https://travis-ci.org/Bytom/bytom.svg)](https://travis-ci.org/Bytom/bytom) [![AGPL v3](https://img.shields.io/badge/license-AGPL%20v3-brightgreen.svg)](./LICENSE)
+
+**Official golang implementation of the Bytom protocol.**
+
+Automated builds are available for stable releases and the unstable master branch. Binary archives are published at https://github.com/Bytom/bytom/releases.
## What is Bytom?
- Manage key, account as well as asset
- Send transactions, i.e., issue, spend and retire asset
-## Build from source
+## Installing with Homebrew
+
+```
+brew tap bytom/bytom && brew install bytom
+```
+
+## Building from source
### Requirements
$ go env GOROOT GOPATH
```
-#### Get the source code
+- Get the source code
``` bash
-$ git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom
+$ git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom/bytom
```
-#### Build
+- Build source code
``` bash
-$ cd $GOPATH/src/github.com/bytom
+$ cd $GOPATH/src/github.com/bytom/bytom
$ make bytomd # build bytomd
$ make bytomcli # build bytomcli
```
-When successfully building the project, the `bytom` and `bytomcli` binary should be present in `cmd/bytomd` and `cmd/bytomcli` directory, respectively.
+When successfully building the project, the `bytomd` and `bytomcli` binary should be present in `cmd/bytomd` and `cmd/bytomcli` directory, respectively.
-## Example
+### Executables
+
+The Bytom project comes with several executables found in the `cmd` directory.
+
+| Command | Description |
+| ------------ | ------------------------------------------------------------ |
+| **bytomd** | bytomd command can help to initialize and launch bytom domain by custom parameters. `bytomd --help` for command line options. |
+| **bytomcli** | Our main Bytom CLI client. It is the entry point into the Bytom network (main-, test- or private net), capable of running as a full node archive node (retaining all historical state). It can be used by other processes as a gateway into the Bytom network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. `bytomcli --help` and the [bytomcli Wiki page](https://github.com/Bytom/bytom/wiki/Command-Line-Options) for command line options. |
+
+## Running bytom
Currently, bytom is still in active development and a ton of work needs to be done, but we also provide the following content for these eager to do something with `bytom`. This section won't cover all the commands of `bytomd` and `bytomcli` at length, for more information, please the help of every command, e.g., `bytomcli help`.
### launch
``` bash
-$ ./bytomd node --mining
+$ ./bytomd node
```
available flags for `bytomd node`:
```
- --auth.disable Disable rpc access authenticate
- --chain_id string Select network type
- -h, --help help for node
- --mining Enable mining
- --p2p.dial_timeout int Set dial timeout (default 3)
- --p2p.handshake_timeout int Set handshake timeout (default 30)
- --p2p.laddr string Node listen address.
- --p2p.max_num_peers int Set max num peers (default 50)
- --p2p.pex Enable Peer-Exchange (default true)
- --p2p.seeds string Comma delimited host:port seed nodes
- --p2p.skip_upnp Skip UPNP configuration
- --prof_laddr string Use http to profile bytomd programs
- --vault_mode Run in the offline enviroment
- --wallet.disable Disable wallet
- --wallet.rescan Rescan wallet
- --web.closed Lanch web browser or not
+Flags:
+ --auth.disable Disable rpc access authenticate
+ --chain_id string Select network type
+ -h, --help help for node
+ --log_file string Log output file (default "log")
+ --log_level string Select log level(debug, info, warn, error or fatal)
+ --p2p.dial_timeout int Set dial timeout (default 3)
+ --p2p.handshake_timeout int Set handshake timeout (default 30)
+ --p2p.keep_dial string Peers addresses try keeping connecting to, separated by ',' (for example "1.1.1.1:46657;2.2.2.2:46658")
+ --p2p.laddr string Node listen address. (0.0.0.0:0 means any interface, any port) (default "tcp://0.0.0.0:46656")
+ --p2p.lan_discoverable Whether the node can be discovered by nodes in the LAN (default true)
+ --p2p.max_num_peers int Set max num peers (default 50)
+ --p2p.node_key string Node key for p2p communication
+ --p2p.proxy_address string Connect via SOCKS5 proxy (eg. 127.0.0.1:1086)
+ --p2p.proxy_password string Password for proxy server
+ --p2p.proxy_username string Username for proxy server
+ --p2p.seeds string Comma delimited host:port seed nodes
+ --p2p.skip_upnp Skip UPNP configuration
+ --prof_laddr string Use http to profile bytomd programs
+ --simd.enable Enable SIMD mechan for tensority
+ --vault_mode Run in the offline enviroment
+ --wallet.disable Disable wallet
+ --wallet.rescan Rescan wallet
+ --wallet.txindex Save global tx index
+ --web.closed Lanch web browser or not
+ --ws.max_num_concurrent_reqs int Max number of concurrent websocket requests that may be processed concurrently (default 20)
+ --ws.max_num_websockets int Max number of websocket connections (default 25)
+
+Global Flags:
+ --home string root directory for config and data
+ -r, --root string DEPRECATED. Use --home (default "/Users/zcc/Library/Application Support/Bytom")
+ --trace print out full stack trace on errors
```
Given the `bytomd` node is running, the general workflow is as follows:
- send transaction, i.e., build, sign and submit transaction.
- query all kinds of information, let's say, avaliable key, account, key, balances, transactions, etc.
-#### Dashboard
+__simd feature:__
-Access the dashboard:
-
-```bash
-$ open http://localhost:9888/
-```
-
-### Create key
-
-You can create a key with the following command:
-
-```bash
-$ ./bytomcli create-key alice 123
-{
- "alias": "alice",
- "xpub": "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
-}
+You could enable the _simd_ feature to speed up the _PoW_ verification (e.g., during mining and block verification) by simply:
```
-
-list the keys:
-
-```bash
-$ ./bytomcli list-keys
+bytomd node --simd.enable
```
-### Create account
+To enable this feature you will need to compile from the source code by yourself, and `make bytomd-simd`.
-Create an account named `alice`:
-
-```bash
-$ ./bytomcli create-account alice d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb
-{
- "alias": "alice",
- "id": "0CIT3OI100A04",
- "key_index": 1,
- "quorum": 1,
- "xpubs": [
- "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
- ]
-}
-```
-
-Check out the new created account:
-
-```bash
-$ ./bytomcli list-accounts
-```
-
-#### Multi-signature account
-
-```bash
-$ ./bytomcli list-keys
-0 :
-{
- "alias": "default",
- "xpub": "336150c3a63411f597d94aa26fe714a348b2e93f2c303d526bb225e5804466e366e58cff81fddaed7879586b92132d63c68b419856f85ca06abfc490a9990c38"
-}
-1 :
-{
- "alias": "alice",
- "xpub": "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
-}
-2 :
-{
- "alias": "bob",
- "xpub": "cb6057b683c5a341ea29e02ec5bb1e53691eb3b14c285138175d42b07d0551798977fc50203bde1dc2827a07f6f26237fa8ec3c6a2ef272ed80f9211f9c6ac64"
-}
-```
-
-```bash
-$ ./bytomcli create-account multi_account d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb cb6057b683c5a341ea29e02ec5bb1e53691eb3b14c285138175d42b07d0551798977fc50203bde1dc2827a07f6f26237fa8ec3c6a2ef272ed80f9211f9c6ac64 -q 2
-{
- "alias": "multi_account",
- "id": "0CIT6J0QG0A06",
- "key_index": 1,
- "quorum": 2,
- "xpubs": [
- "cb6057b683c5a341ea29e02ec5bb1e53691eb3b14c285138175d42b07d0551798977fc50203bde1dc2827a07f6f26237fa8ec3c6a2ef272ed80f9211f9c6ac64",
- "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
- ]
-}
-```
-
-### Create asset
-
-Create an asset named `GOLD`:
-
-```bash
-$ ./bytomcli create-asset GOLD d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb
-{
- "alias": "GOLD",
- "definition": {},
- "id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397",
- "issuance_program": "ae2035b53ed466a40e3d1073ffdcf1c7d0c4ffc439391f9ef5999b365ea467c96a3c5151ad",
- "keys": [
- {
- "asset_derivation_path": [
- "000100000000000000"
- ],
- "asset_pubkey": "35b53ed466a40e3d1073ffdcf1c7d0c4ffc439391f9ef5999b365ea467c96a3c0e8b6d5a67bd5fc66d7a19d4754df6de6cbf3b40fc6b02a75f140d77a1dbcda8",
- "root_xpub": "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
- }
- ],
- "quorum": 1
-}
-```
-
-Check out the new created asset:
-
-```bash
-$ ./bytomcli list-assets
-```
-
-#### Multi-signature asset
-
-```bash
-$ ./bytomcli create-asset SILVER d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb cb6057b683c5a341ea29e02ec5bb1e53691eb3b14c285138175d42b07d0551798977fc50203bde1dc2827a07f6f26237fa8ec3c6a2ef272ed80f9211f9c6ac64
-{
- "alias": "SILVER",
- "definition": {},
- "id": "50cd5b0ecfdfe388fc0bc6b74df6becd94f1e52e1913a449a473bba87745fe30",
- "issuance_program": "ae20936178877c2a3a2df9c3733e2ac6f7e99477314c54e214348abb0d4cbdace810208d064a125805493cb99be9c19ed6a356c97753fdfe52fade337fa598c3c59b8c5152ad",
- "keys": [
- {
- "asset_derivation_path": [
- "000200000000000000"
- ],
- "asset_pubkey": "936178877c2a3a2df9c3733e2ac6f7e99477314c54e214348abb0d4cbdace810f9ef97f8edd43707069426ff1ac1d2fe96d23c5e005ac5cb52be2a7de82d2a92",
- "root_xpub": "cb6057b683c5a341ea29e02ec5bb1e53691eb3b14c285138175d42b07d0551798977fc50203bde1dc2827a07f6f26237fa8ec3c6a2ef272ed80f9211f9c6ac64"
- },
- {
- "asset_derivation_path": [
- "000200000000000000"
- ],
- "asset_pubkey": "8d064a125805493cb99be9c19ed6a356c97753fdfe52fade337fa598c3c59b8c4eb0b479d566c0efe72ab69f2273ab4b6a6dce9e1e3657839698be6c53e9d04a",
- "root_xpub": "d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"
- }
- ],
- "quorum": 1
-}
-```
+What is more,
-### Sending transaction
++ if you are using _Mac_, please make sure _llvm_ is installed by `brew install llvm`.
++ if you are using _Windows_, please make sure _mingw-w64_ is installed and set up the _PATH_ environment variable accordingly.
-Every asset-related action is trigger via sending a transaction, which requires two steps to complete, i.e., `build-transaction` and `sign-submit-transaction`. Don't forget to enable `--mining`.
+For more details about using `bytomcli` command please refer to [API Reference](https://github.com/Bytom/bytom/wiki/API-Reference)
-#### Issue
-
-##### `build-transaction`
-
-Let's say, issue 10000 GOLD to alice:
-```bash
-$ ./bytomcli create-account-receiver alice
-{
- "address": "bm1q7s24rra4j05yhec9chry2c9trd6qa8gjr6cue3",
- "control_program": "0014f415518fb593e84be705c5c64560ab1b740e9d12"
-}
-```
-
-```bash
-$ ./bytomcli build-transaction -t issue alice GOLD 10000 -a bm1q7s24rra4j05yhec9chry2c9trd6qa8gjr6cue3 --alias
-Template Type: issue
-{"allow_additional_actions":false,"raw_transaction":"070100020160015ee56e4d688e98160067fa25be520d3a5a90e63838b5ff6363997c7c9b962796daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc030501160014f415518fb593e84be705c5c64560ab1b740e9d120100012c000887c3aad437888d0143e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e29000125ae2035b53ed466a40e3d1073ffdcf1c7d0c4ffc439391f9ef5999b365ea467c96a3c5151ad0002013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80baa6d30301160014c0c4fb15dd132be34e6dcaea3c38df1869ebcdbf00013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e01160014f415518fb593e84be705c5c64560ab1b740e9d1200","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["000100000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"}]}]}
-```
-
-The response of `build-transaction` will be used in the following `sign-submit-transaction` command.
-
-##### `sign-submit-transaction`
-
-```bash
-$ ./bytomcli sign-submit-transaction '{"allow_additional_actions":false,"raw_transaction":"070100020160015ee56e4d688e98160067fa25be520d3a5a90e63838b5ff6363997c7c9b962796daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc030501160014f415518fb593e84be705c5c64560ab1b740e9d120100012c000887c3aad437888d0143e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e29000125ae2035b53ed466a40e3d1073ffdcf1c7d0c4ffc439391f9ef5999b365ea467c96a3c5151ad0002013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80baa6d30301160014c0c4fb15dd132be34e6dcaea3c38df1869ebcdbf00013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e01160014f415518fb593e84be705c5c64560ab1b740e9d1200","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["000100000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"}]}]}' -p 123
-
-{
- "tx_id": "62fe1716f2b8fe012578a3a8f6b02bd2fa548fef5bba792ea78673e07b38198d"
-}
-```
-
-When the transaction is on-chain, query the balances:
-
-```bash
-# alice should have 10000 GOLD now
-$ ./bytomcli list-balances
-0 :
-{
- "account_alias": "default",
- "account_id": "0CIT2D2O00A02",
- "amount": 2098770000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-1 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 10000,
- "asset_alias": "GOLD",
- "asset_id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397"
-}
-2 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 4980000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-```
-
-#### Spend
-
-Alice pays Bob `<payment_amount>`, e.g., 1000, `GOLD`:
-
-##### `create-account-receiver`
-
-Before you transfer an asset to another account, you have to know his `control_program`. This means the receiver needs to send you his `control_program` first.
-
-```bash
-$ ./bytomcli create-account-receiver bob
-{
- "address": "bm1qhurffd3gqkc3pttqfqpsz8w04jnl5z97798tpt",
- "control_program": "0014bf0694b62805b110ad604803011dcfaca7fa08be"
-}
-```
-
-##### `build-transaction`
-
-```bash
-# ./bytomcli build-transaction -t spend <sender_account> <asset> <amount> --alias -r <receiver_control_program>
-$ ./bytomcli build-transaction -t spend alice GOLD 1000 --alias -r 0014bf0694b62805b110ad604803011dcfaca7fa08be
-Template Type: spend
-{"allow_additional_actions":false,"raw_transaction":"070100020160015eba7bbf304b94623b1efb414845f701e64e6c63011984e65dcf214d560f505e28ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80baa6d3030001160014c0c4fb15dd132be34e6dcaea3c38df1869ebcdbf0100015d015bba7bbf304b94623b1efb414845f701e64e6c63011984e65dcf214d560f505e2843e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e0101160014f415518fb593e84be705c5c64560ab1b740e9d12010003013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e0e1c903011600144457a5103dc682327fe2ef662f812dce3f97ffae00013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397a846011600147460e50dc0b0313d22796c899c28f795872b229600013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397e80701160014bf0694b62805b110ad604803011dcfaca7fa08be00","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0300000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"eef67105644a1f146ba313a7ea98ceac2534a9f4cf1aa3775b726476db9c3dc0"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]}]}
-```
-
-##### `sign-submit-transaction`
-
-```bash
-$ ./bytomcli sign-submit-transaction '{"allow_additional_actions":false,"raw_transaction":"070100020160015eba7bbf304b94623b1efb414845f701e64e6c63011984e65dcf214d560f505e28ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80baa6d3030001160014c0c4fb15dd132be34e6dcaea3c38df1869ebcdbf0100015d015bba7bbf304b94623b1efb414845f701e64e6c63011984e65dcf214d560f505e2843e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397904e0101160014f415518fb593e84be705c5c64560ab1b740e9d12010003013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e0e1c903011600144457a5103dc682327fe2ef662f812dce3f97ffae00013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397a846011600147460e50dc0b0313d22796c899c28f795872b229600013a43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397e80701160014bf0694b62805b110ad604803011dcfaca7fa08be00","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0300000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"eef67105644a1f146ba313a7ea98ceac2534a9f4cf1aa3775b726476db9c3dc0"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]}]}'
-
-
-{
- "txid": "3bf01bd21d7bbf3eb1c6e27e5646be1c4a7bd5602125eebf28f430246b08c226"
-}
-```
-
-```bash
-$./bytomcli list-balances
-0 :
-{
- "account_alias": "default",
- "account_id": "0CIT2D2O00A02",
- "amount": 2758790000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-1 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 9000,
- "asset_alias": "GOLD",
- "asset_id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397"
-}
-2 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 4960000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-3 :
-{
- "account_alias": "bob",
- "account_id": "0CITLN2KG0A08",
- "amount": 1000,
- "asset_alias": "GOLD",
- "asset_id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397"
-}
-```
-
-#### Transfer BTM
-
-```bash
-# ./bytomcli build-transaction -t spend <sender_account> <asset> <amount> --alias -r <receiver_control_program>
-$ ./bytomcli build-transaction -t spend alice BTM 1000000000 --alias -r 0014bf0694b62805b110ad604803011dcfaca7fa08be
-Template Type: spend
-{"allow_additional_actions":false,"raw_transaction":"070100020160015ee56e4d688e98160067fa25be520d3a5a90e63838b5ff6363997c7c9b962796daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc030201160014f415518fb593e84be705c5c64560ab1b740e9d1201000160015e5685c051b6a7f1631e0505ea99a61997c1b8322148321eb864435c8516a5a8eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e0e1c90300011600144457a5103dc682327fe2ef662f812dce3f97ffae010002013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80869dc003011600146026f938bbcf6b6b90eb9d8fbb8c1725e0ae3d0b00013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc0301160014bf0694b62805b110ad604803011dcfaca7fa08be00","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0400000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"2cfbc821a459ef53b9ee4a170b735e54f968f239bf9155712f4b88256f97d54a"}]}]}
-```
-
-```bash
-$ ./bytomcli sign-submit-transaction '{"allow_additional_actions":false,"raw_transaction":"070100020160015ee56e4d688e98160067fa25be520d3a5a90e63838b5ff6363997c7c9b962796daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc030201160014f415518fb593e84be705c5c64560ab1b740e9d1201000160015e5685c051b6a7f1631e0505ea99a61997c1b8322148321eb864435c8516a5a8eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80e0e1c90300011600144457a5103dc682327fe2ef662f812dce3f97ffae010002013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80869dc003011600146026f938bbcf6b6b90eb9d8fbb8c1725e0ae3d0b00013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094ebdc0301160014bf0694b62805b110ad604803011dcfaca7fa08be00","signing_instructions":[{"position":0,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0200000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"4dc1e7f4e9710378cb80f180e159005a5ca8934d68df6136b782fe08d23d7b0a"}]},{"position":1,"witness_components":[{"keys":[{"derivation_path":["010100000000000000","0400000000000000"],"xpub":"d91df216da6c5641ef454c8da1e56362f86ed80d8b8fc26ab77746e1b92d6d3aa8023fe300e4c74036460d01349e4eb25cb3d7379bad855879017bc1c76165bb"}],"quorum":1,"signatures":null,"type":"raw_tx_signature"},{"type":"data","value":"2cfbc821a459ef53b9ee4a170b735e54f968f239bf9155712f4b88256f97d54a"}]}]}' -p 123
+### Dashboard
+Access the dashboard:
-{
- "tx_id": "1c84c8d8dae7675114f9de970e221ec9e07e1787f6e72ac6e95a03fced7d22cb"
-}
```
-
-```bash
-$ ./bytomcli list-balances
-0 :
-{
- "account_alias": "default",
- "account_id": "0CIT2D2O00A02",
- "amount": 3212560000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-1 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 9000,
- "asset_alias": "GOLD",
- "asset_id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397"
-}
-2 :
-{
- "account_alias": "alice",
- "account_id": "0CIT3OI100A04",
- "amount": 3940000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
-3 :
-{
- "account_alias": "bob",
- "account_id": "0CITLN2KG0A08",
- "amount": 1000,
- "asset_alias": "GOLD",
- "asset_id": "43e89d8a5d8f4bb2fcd92621ace61d476c8237075ada6a9e80db931bbdb6c397"
-}
-4 :
-{
- "account_alias": "bob",
- "account_id": "0CITLN2KG0A08",
- "amount": 1000000000,
- "asset_alias": "BTM",
- "asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
-}
+$ open http://localhost:9888/
```
-## Running Bytom in Docker
+### In Docker
Ensure your [Docker](https://www.docker.com/) version is 17.05 or higher.
$ docker build -t bytom .
```
+For the usage please refer to [running-in-docker-wiki](https://github.com/Bytom/bytom/wiki/Running-in-Docker).
+
## Contributing
Thank you for considering helping out with the source code! Any contributions are highly appreciated, and we are grateful for even the smallest of fixes!
-If you run into an issue, feel free to [file one](https://github.com/Bytom/bytom/issues/) in this repository. We are glad to help!
+If you run into an issue, feel free to [bytom issues](https://github.com/Bytom/bytom/issues/) in this repository. We are glad to help!
## License