Züs
Search
K

Get Started

This section covers repository configuration, and installation.

System requirements

To properly build components, you must have a system with the following requirements:
  • Linux (Ubuntu Preferred) Version: 20.04 or Above Mac(Apple Silicon or Intel) Version: Big Sur or Above Windows : Windows 10 or Above
  • 4 vCPU, 4 Gb Memory at minimum
  • 4 GB of space minimum for zbox build components and storage allocation.

Install zboxcli

Linux Installation

  1. 1.
    Download the latest linux zboxcli archive release from here.
  2. 2.
    Then extract the archive you just downloaded:
tar -xzf zbox-linux.tar.gz
3. To run the executable type
./zbox
On successful installation you will see a help section similar to response below:
zbox is a decentralized storage application written on the 0Chain platform.
Usage:
zbox [command]
Available Commands:
add Adds free storage assigner
alloc-cancel Cancel an allocation

Windows Installation

  1. 1.
    Download the latest windows zboxcli archive release from here.
  2. 2.
    Extract the executable from the archive zbox-windows.zip
  3. 3.
    Now run the executable zbox.exe in windows command prompt.
  4. 4.
    On successful installation, you will see a help section similar to response below :
zbox is a decentralized storage application written on the 0Chain platform.
Complete documentation is available at https://docs.0chain.net/0chain/
Usage:
zbox [command]
Available Commands:
add Adds free storage assigner
alloc-cancel Cancel an allocation
alloc-fini Finalize an expired allocation

macOS Installation

  1. 1.
    Download the latest mac zboxcli archive release from here.
  2. 2.
    Then extract the archive :
tar -xzf zbox-macos.tar.gz
3. To run the executable type
./zbox
On successful installation you will see a help section :
zbox is a decentralized storage application written on the 0Chain platform.
Complete documentation is available at https://docs.0chain.net/0chain/
Usage:
zbox [command]
Available Commands:
add Adds free storage assigner
alloc-cancel Cancel an allocation
alloc-fini Finalize an expired allocation

Building zboxcli

Building zboxcli for Windows

Windows 64bit (tested with Windows 11)
  1. 1.
    Installing msys2 from here.
  2. 2.
    Open MSYS2 MINGW64 shell.
  3. 3.
    Install the following libraries:
pacman -S base-devel git gcc make
  1. 4.
    Install clang
pacman -S mingw-w64-x86_64-clang
  1. 5.
    Install go for mingw64
pacman -S mingw-w64-x86_64-go
Note: Restart mingw64 shell for Go to make changes.
  1. 6.
    Clone zboxcli
git clone https://github.com/0chain/zboxcli.git
  1. 7.
    Navigate to zboxcli and run the following command :
make install
  1. 8.
    Download necessary dll files as zip from here.
  2. 9.
    Unzip and copy dll's to zboxcli directory. The zboxcli directory will be available at the following path C:\msys64\home\<your_windows_username>\zboxcli if cloned under mingw64 shell.
  3. 10.
    Now run the ./zbox command under zboxcli directory
./zbox
On a successful build you will see a help section.

Building zboxcli for Mac and Linux

1. Go Binaries

Installation instructions for Mac and Linux can be found here.

2. Build-Essential(Only required for linux)

The build essential package is required to build and make the zbox application. It includes the necessary GCC/g++ compilers and other essential critical libraries and utilities.
Run apt update command to update the packages
sudo apt update
Get Build-essential package
sudo apt-get install build-essential
  1. 3.
    Clone the Zbox Repository using the command
git clone https://github.com/0chain/zboxcli.git
  1. 4.
    Navigate into zboxcli directory using
cd zboxcli
  1. 5.
    Use the make install command to compile the source code .
make install
This might take a minute. Here is a sample response of successful make install command:
  1. 6.
    Start the Zbox by navigating back to the zboxcli directory usingcd zboxcli and type
./zbox
On a successful build you will see a help section.

Configure Zbox network

Configuration for the Züs network by default is stored in network/config.yaml file of the zbox github repo which we will copy to a new config.yaml file in our local system .
  1. 1.
    Make a new .zcn folder in the home directory of your system using
mkdir $HOME/.zcn
2. Copy config.yaml from network directory in zboxcli repo to .zcn directory
cp network/config.yaml $HOME/.zcn/config.yaml
3. To verify whether the config.yaml exists and network configuration is stored properly. Check the config.yaml details using the command
nano config.yaml
4. Open the config.yaml file located at $HOME/.zcn path of your system.It should look similar to the file below.
---
block_worker: https://demo.zus.network/dns
signature_scheme: bls0chain
min_submit: 50
min_confirmation: 50
confirmation_chain_length: 3
max_txn_query: 5
query_sleep_time: 5
# # OPTIONAL - Uncomment to use/ Add more if you want
# preferred_blobbers:
# - http://one.devnet-0chain.net:31051
# - http://one.devnet-0chain.net:31052
# - http://one.devnet-0chain.net:31053
Zbox connects to the Züs network using the block_worker field. These network details are automatically fetched from the blockWorker's network API. Preferred Blobbers are also present which you can uncomment for using specified storage providers for handling your files.
Note: In case you are configuring zbox network for setting up blockchain locally the block_workershould be set to http://198.18.0.98:9091/

Creating a Storage Allocation

The section assumes you have successfully build zbox. zbox provides a long list of components to use. Let's begin with the allocation of storage space on the 0Chain decentralized network.
For creating a storage allocation using Zbox. You need to have a wallet with tokens available for performing allocations.
  1. 1.
    Create and get test tokens into your wallet using the zwallet CLI tool. If you have not installed zwallet CLI check instructions for installation and creating a wallet .
  2. 2.
    Once the wallet is created and has an available balance, you can create a storage allocation by using the Zbox newallocationcommand. To understand the syntax type
./zbox newallocation --help
This will output the mandatory and optional flags that need to be added with the newallocationcommand.Here are the parameters :
Parameter
Description
Default
Valid Values
allocationFileName
local file to store allocation information
allocation.txt
file path
cost
returns the cost of the allocation, no allocation created
flag
data
number of data shards, effects upload and download speeds
2
int
expire
duration to allocation expiration
720h
duration
free_storage
free storage marker file.
file path
owner
owner's id, use for funding an allocation for another
string
owner_public_key
public key, use for funding an allocation for another
string
lock
lock write pool with given number of tokens
float
mcct
max challenge completion time
1h
duration
parity
number of parity shards, effects availability
2
int
read_price
filter blobbers by read price range
0-inf
range
size
size of space reserved on blobbers
2147483648
bytes
usd
give token value in USD
flag
write_price
filter blobbers by write price range
0-inf
range
  1. 6.
    For getting started we can create a basic allocation with default types. This will only require essential specifiers such as lock float. We will add a float value of 0.5 which will lock 0.5 tokens with the allocation. The complete command for creating an allocation would be:
./zbox newallocation --lock 0.5
​ Successful Response will create an allocation with allocation ID:
If you are not able to create allocation and getting errors, check error causes in TIps and Troubleshooting Section.
7. Verify the allocation by using the command.
./zbox listallocations