4 [![AGPL v3](https://img.shields.io/badge/license-AGPL%20v3-brightgreen.svg)](./LICENSE)
7 <!-- vim-markdown-toc GFM -->
9 * [What is Bytom?](#what-is-bytom)
10 * [Build from source](#build-from-source)
11 * [Requirements](#requirements)
12 * [Installation](#installation)
13 * [Get the source code](#get-the-source-code)
16 * [Set up a wallet and manage the key](#set-up-a-wallet-and-manage-the-key)
17 * [Create and launch a single node](#create-and-launch-a-single-node)
18 * [Asset issuance test](#asset-issuance-test)
19 * [Multiple node](#multiple-node)
20 * [Contributing](#contributing)
23 <!-- vim-markdown-toc -->
27 Bytom is software designed to operate and connect to highly scalable blockchain networks confirming to the Bytom Blockchain Protocol, which allows partipicants to define, issue and transfer digitial assets on a multi-asset shared ledger. Please refer to the [White Paper](https://github.com/Bytom/wiki/blob/master/White-Paper/%E6%AF%94%E5%8E%9F%E9%93%BE%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6-%E8%8B%B1%E6%96%87%E7%89%88.md) for more details.
29 In the current state `bytom` is able to:
32 - Manage account as well as asset
38 - [Go](https://golang.org/doc/install) version 1.8 or higher, with `$GOPATH` set to your preferred directory
42 Ensure Go with the supported version is installed properly:
46 $ go env GOROOT GOPATH
49 #### Get the source code
52 $ git clone https://github.com/Bytom/bytom $GOPATH/src/github.com/bytom
60 $ cd $GOPATH/src/github.com/bytom
69 $ cd $GOPATH/src/github.com/bytom/cmd/bytomcli
75 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`.
77 ### Set up a wallet and manage the key
79 You can create an account via `create-key password`, which will generate a `keystore` file containing the keys under the project directory.
82 $ ./bytomcli create-key account_name password # Create an account named account_name using password
83 $ ./bytomcli delete-key password pubkey # Delete account pubkey
84 $ ./bytomcli reset-password oldpassword newpassword pubkey # Update password
87 ### Create and launch a single node
89 When successfully building the project, the `bytom` and `bytomcli` binary should be present in `cmd/bytom/bytom` and `cmd/bytomcli/bytomcli`, respectively. The next step is to initialize the node:
93 $ ./bytom init --home ./.bytom
96 After that, you'll see `.bytom` generated in current directory, then launch the single node:
99 $ ./bytom node --home ./.bytom
102 #### Asset issuance test
104 Given the `bytom` node is running, you can use the provoided `issue-test` to test the asset issuance functionality:
108 $ ./bytomcli issue-test
113 Get the submodule depenency for multi-node test:
116 $ git submodule update --init --recursive
119 Create the first node `bytom0` and second node `bytom1`:
122 $ cd cmd/bytom/2node-test
123 $ ./test.sh bytom0 # Start the first node
124 $ ./test.sh bytom1 # Start the second node
127 Then we have two nodes:
130 $ curl -X POST --data '{"jsonrpc":"2.0", "method": "net_info", "params":[], "id":"67"}' http://127.0.0.1:46657
133 If everything goes well, we'll see the following response:
142 "Listener(@192.168.199.178:3332)"
147 "pub_key": "03571A5CE8B35E95E2357DB2823E9EB76EB42D5CCC5F8E68315388832878C011",
148 "moniker": "anonymous",
150 "remote_addr": "127.0.0.1:51058",
151 "listen_addr": "192.168.199.178:3333",
154 "wire_version=0.6.2",
156 "rpc_addr=tcp://0.0.0.0:46658"
164 Thank you for considering to help out with the source code! Any contributions are highly appreciated, and we are grateful for even the smallest of fixes!
166 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!