OSDN Git Service

Hulk did something
[bytom/vapor.git] / README.md
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..98107b3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,162 @@
+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)
+
+**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?
+
+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.
+
+In the current state `bytom` is able to:
+
+- Manage key, account as well as asset
+- Send transactions, i.e., issue, spend and retire asset
+
+## Installing with Homebrew
+
+```
+brew tap bytom/bytom && brew install bytom
+```
+
+## Building from source
+
+### Requirements
+
+- [Go](https://golang.org/doc/install) version 1.8 or higher, with `$GOPATH` set to your preferred directory
+
+### Installation
+
+Ensure Go with the supported version is installed properly:
+
+```bash
+$ go version
+$ go env GOROOT GOPATH
+```
+
+- Get the source code
+
+``` bash
+$ git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom
+```
+
+- Build source code
+
+``` bash
+$ cd $GOPATH/src/github.com/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.
+
+### 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`.
+
+### Initialize
+
+First of all, initialize the node:
+
+```bash
+$ cd ./cmd/bytomd
+$ ./bytomd init --chain_id mainnet
+```
+
+There are three options for the flag `--chain_id`:
+
+- `mainnet`: connect to the mainnet.
+- `testnet`: connect to the testnet wisdom.
+- `solonet`: standalone mode.
+
+After that, you'll see `config.toml` generated, then launch the node.
+
+### launch
+
+``` bash
+$ ./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
+      --simd.enable                 Enable the _simd_ feature to speed up the _PoW_ verification (e.g., during mining and block verification)
+```
+
+Given the `bytomd` node is running, the general workflow is as follows:
+
+- create key, then you can create account and asset.
+- send transaction, i.e., build, sign and submit transaction.
+- query all kinds of information, let's say, avaliable key, account, key, balances, transactions, etc.
+
+__simd feature:__
+
+You could enable the _simd_ feature to speed up the _PoW_ verification (e.g., during mining and block verification) by simply:
+```
+bytomd node --simd.enable
+```
+
+To enable this feature you will need to compile from the source code by yourself, and `make bytomd-simd`. 
+
+What is more,
+
++ 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.
+
+For more details about using `bytomcli` command please refer to [API Reference](https://github.com/Bytom/bytom/wiki/API-Reference)
+
+### Dashboard
+
+Access the dashboard:
+
+```
+$ open http://localhost:9888/
+```
+
+### In Docker
+
+Ensure your [Docker](https://www.docker.com/) version is 17.05 or higher.
+
+```bash
+$ 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 [bytom issues](https://github.com/Bytom/bytom/issues/) in this repository. We are glad to help!
+
+## License
+
+[AGPL v3](./LICENSE)