https://github.com/bitshares/bitshares-core
BitShares Blockchain node and command-line wallet
https://github.com/bitshares/bitshares-core
bitshares blockchain cryptocurrency dac dex
Last synced: 5 months ago
JSON representation
BitShares Blockchain node and command-line wallet
- Host: GitHub
- URL: https://github.com/bitshares/bitshares-core
- Owner: bitshares
- License: other
- Created: 2015-10-12T17:36:04.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2025-02-19T15:27:44.000Z (9 months ago)
- Last Synced: 2025-04-17T23:07:28.685Z (7 months ago)
- Topics: bitshares, blockchain, cryptocurrency, dac, dex
- Language: C++
- Homepage: https://bitshares.github.io/
- Size: 28 MB
- Stars: 1,178
- Watchers: 157
- Forks: 650
- Open Issues: 261
-
Metadata Files:
- Readme: README-docker.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-bitshares - bitshares-core - reference code base that operates the blockchain. (Libraries / C++ Libraries)
- best-of-crypto - GitHub - 20% open · ⏱️ 15.12.2023): (Exchange-based Tokens)
README
# Docker Container
This repository comes with built-in Dockerfile to support docker
containers. This README serves as documentation.
## Dockerfile Specifications
The `Dockerfile` performs the following steps:
1. Obtain base image (phusion/baseimage:0.10.1)
2. Install required dependencies using `apt-get`
3. Add bitshares-core source code into container
4. Update git submodules
5. Perform `cmake` with build type `Release`
6. Run `make` and `make_install` (this will install binaries into `/usr/local/bin`
7. Purge source code off the container
8. Add a local bitshares user and set `$HOME` to `/var/lib/bitshares`
9. Make `/var/lib/bitshares` and `/etc/bitshares` a docker *volume*
10. Expose ports `8090` and `1776`
11. Add default config from `docker/default_config.ini` and
`docker/default_logging.ini`
12. Add an entry point script
13. Run the entry point script by default
The entry point simplifies the use of parameters for the `witness_node`
(which is run by default when spinning up the container).
### Supported Environmental Variables
* `$BITSHARESD_SEED_NODES`
* `$BITSHARESD_RPC_ENDPOINT`
* `$BITSHARESD_PLUGINS`
* `$BITSHARESD_REPLAY`
* `$BITSHARESD_RESYNC`
* `$BITSHARESD_P2P_ENDPOINT`
* `$BITSHARESD_WITNESS_ID`
* `$BITSHARESD_PRIVATE_KEY`
* `$BITSHARESD_TRACK_ACCOUNTS`
* `$BITSHARESD_PARTIAL_OPERATIONS`
* `$BITSHARESD_MAX_OPS_PER_ACCOUNT`
* `$BITSHARESD_ES_NODE_URL`
* `$BITSHARESD_TRUSTED_NODE`
### Default config
The default configuration is:
p2p-endpoint = 0.0.0.0:1776
rpc-endpoint = 0.0.0.0:8090
bucket-size = [60,300,900,1800,3600,14400,86400]
history-per-size = 1000
max-ops-per-account = 100
partial-operations = true
# Docker Compose
With docker compose, multiple nodes can be managed with a single
`docker-compose.yaml` file:
version: '3'
services:
main:
# Image to run
image: bitshares/bitshares-core:latest
#
volumes:
- ./docker/conf/:/etc/bitshares/
# Optional parameters
environment:
- BITSHARESD_ARGS=--help
version: '3'
services:
fullnode:
# Image to run
image: bitshares/bitshares-core:latest
environment:
# Optional parameters
environment:
- BITSHARESD_ARGS=--help
ports:
- "0.0.0.0:8090:8090"
volumes:
- "bitshares-fullnode:/var/lib/bitshares"
# Docker Hub
This container is properly registered with docker hub under the name:
* [bitshares/bitshares-core](https://hub.docker.com/r/bitshares/bitshares-core/)
Going forward, every release tag as well as all pushes to `develop` and
`testnet` will be built into ready-to-run containers, there.
# Docker Compose
One can use docker compose to setup a trusted full node together with a
delayed node like this:
```
version: '3'
services:
fullnode:
image: bitshares/bitshares-core:latest
ports:
- "0.0.0.0:8090:8090"
volumes:
- "bitshares-fullnode:/var/lib/bitshares"
delayed_node:
image: bitshares/bitshares-core:latest
environment:
- 'BITSHARESD_PLUGINS=delayed_node witness'
- 'BITSHARESD_TRUSTED_NODE=ws://fullnode:8090'
ports:
- "0.0.0.0:8091:8090"
volumes:
- "bitshares-delayed_node:/var/lib/bitshares"
links:
- fullnode
volumes:
bitshares-fullnode:
```