Skip to content

ziesha-network/bazuka

Repository files navigation

ℤ - Bazuka!

Bazuka codecov GitHub GitHub top language GitHub issues

Bazuka is a wallet and node software for the Ziesha (ℤ) Protocol. Ziesha is a novel layer-1 cryptocurrency which uses Zero-Knowledge proofs as the backend of its smart-contract (I.e Zero Contracts).

Bazuka ensures the availability of latest contract-states, so that they remain public and everybody is able to update and build on them, making Ziesha a more decentralized protocol compared to similar projects.

Links

How to run a Bazuka node?

If you only want to run a Ziesha node and/or validate blocks (Without generating proofs yourself), you will only need to install bazuka (This repo). In case you also want to contribute in proof generation, you will also need to install zoro (The Main Payment Network executor) as well!

How to install bazuka?

  • Prepare a Linux machine.
  • Make sure you have installed libssl-dev and cmake packages.
    sudo apt install -y build-essential libssl-dev cmake
    
  • Install the Rust toolchain (https://rustup.rs/)
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  • Clone the bazuka repo:
    git clone https://github.com/ziesha-network/bazuka
    
  • Warning: Make sure Rust binaries are present in your PATH before compiling:
    source "$HOME/.cargo/env"
    
  • Compile and install:
    cd bazuka
    cargo install --path .
    

If you have already initialized bazuka for and older testnet in an abandoned network, you first need to remove your previous initialization by running:

rm -rf ~/.bazuka ~/.bazuka-wallet ~/.bazuka.yaml

Then initialize:

bazuka init [flags...]

Available flags:

  • --bootstrap <bootstrap>...: You can use the nodes introduced by the community as your bootstrap nodes through this flag.
  • --db <db>: Path of the node's database. Default: ~/.bazuka.
  • --external <external>: Public ip/port of your node. Default: YOUR_PUBLIC_IP:8765.
  • --listen <listen>: Local socket. Default: 0.0.0.0:8765.
  • --mnemonic <mnemonic>: If you already have a 12-word mnemonic phrase, you can pass it through this flag. If not provided, a new wallet will be generated for you. Keep the mnemonic word list somewhere safe!

Example to initialize a node with 2 bootstrap nodes 23.34.12.45:8765 and 34.56.78.23:8765:

bazuka init --bootstrap 23.34.12.45:8765 --bootstrap 34.56.78.23:8765

After initializing your node you can run it through:

bazuka node start --discord-handle "YOUR DISCORD HANDLE"

Highly recommended to also provide your Discord handle through the --discord-handle flag. By providing your handle, you will leave our bots a way to contact you regarding the problems you may have in your node and its status.