Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sharzyl/bbc
Baseline Blockchain
https://github.com/sharzyl/bbc
Last synced: about 1 month ago
JSON representation
Baseline Blockchain
- Host: GitHub
- URL: https://github.com/sharzyl/bbc
- Owner: SharzyL
- Created: 2022-05-13T14:15:58.000Z (over 2 years ago)
- Default Branch: goshujin
- Last Pushed: 2023-02-18T17:48:38.000Z (almost 2 years ago)
- Last Synced: 2024-10-28T12:02:00.264Z (3 months ago)
- Language: Go
- Size: 265 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BBC
[![](https://tokei.rs/b1/github/SharzyL/bbc?category=code)](https://github.com/SharzyL/bbc)
bbc, which is Barebone BlockChain, or Basic Blockchain Consensus, or Beginner Blockchain Code, or Buy Bbc Coin, or Big Banana Coin, or whatever you like.
It looks usable.
## Usage
### Setup Miners
Prepare storage folder and keypair
```shell
mkdir .bbc_storage # the folder to store blockchain data
mkdir conf # the folder to store configurations
go run wallet/wallet.go genkey > conf/miner1.json # generate a key pair for the node
```Set up a server listening on 30001 port, it broadcast its own address as `miner1.example.com:30001`, and connect to peers at `miner2.example.com:30001` and `miner3.example3.com:30001`. The miner will store the mining reward in the address corresponding to the keypair in `conf/miner1.json`.
```shell
go run server/server.go --key conf/miner1.json \
-l 0.0.0.0:30001 \
-a miner1.example.com:30001 \
-p miner2.example.com:30001 \
-p miner3.example.com:30001
```Run `go run tester/server.go -h` for other available options.
### Use Wallet
On your client, put the following content in `conf/wallet.json`
```json
{
"pubKey": "f936778f7b3e00e2e47b416c316d57d472db490f80975e6f5410dd4e6d150536",
"privKey": "d8258ada9378e2ca7d39ee9d18ab5ef5e6a35ae79c07df643fcdcca51334243cf936778f7b3e00e2e47b416c316d57d472db490f80975e6f5410dd4e6d150536",
"miners": [
"miner1.example:30001",
"miner2.example:30001",
"miner3.example:30001"
],
"addr": {
"miner1": "f936778f7b3e00e2e47b416c316d57d472db490f80975e6f5410dd4e6d150536",
"miner2": "3a735e030663bda5f180ff273e6aca2a380a4a76d17a5956edd58c1683950483",
"miner3": "46a967e84e759488e439644fe316c0c1be30976cc9489694f6e3d3f136827043"
}
}
``````shell
# query the balance of miner1
go run wallet/wallet.go balance -a miner1# transfer 400 coins to miner2, with 5 coin of transaction fee sent to the miner
go run wallet/wallet.go transfer -to miner2 400 --fee 5
```Run `go run wallet/wallet.go -h` for more available actions.