BTW Team, all rights reserved. 2018 ©


  • What is BitWhite?

    BitWhite is an efficient, flexible, and safe decentralized application platform designed to lower the threshold for developers. Using JavaScript as the programming language and relational database to store data, BitWhite is increasing the similarities between developing a DAPP and a traditional web application.
  • What problem is BitWhite solving?

    BitWhite makes it easy to create and deploy decentralized applications on application store where normal users can download.
  • What makes the BitWhite platform different?

    BitWhite is open in design and can be customized for many uses including finance, document storage, and copyright certificates. The APIs are underlying and abstract, and they can be combined freely to achieve a variety of applications. BitWhite has implemented an inherited and enhanced the DPOS algorithm, greatly reducing the probability of forking and risk of double spending. BitWhite's side chain, i.e. the application mode, not only delays the expansion of the blockchain but also makes DAPPs more flexible and personalized. BitWhite is a forward-looking, low-cost and one-stop application solution.
  • What is the difference between decentralized applications and smart contracts?

    Smart contracts, if we speak in a simple way, are contracts that fulfill themselves. In the most basic form, a smart contract can consist of a transaction that is triggered by an event, such as another transaction, or when a certain block height is reached (block positions relative to other blocks in the chain).
    The goal of smart contracts is to completely eliminate the need to attract third parties. Without a smart contract, the transfer of funds associated with the fulfillment of a certain condition can only be carried out when working with an intermediary who will keep the funds at home and transfer them as soon as the condition is met. Smart contracts allow such transfers without intermediaries and related charges.
    Smart contracts are closely related to financial transactions and have limitations on the number of participants at the time. Decentralized applications extend the capabilities of this technology.
    One of the benefits of decentralized applications is the possibility of an unlimited number of parties from all over the market. In addition, decentralized applications can use the block system to achieve a variety of goals.
  • Do I need to be technical in order to use BitWhite platform ?

    Intuitive understandable user interface on the BitWhite platform and understandable documentation make it possible for anyone to send BTW, BTC, LTC and other cryptocurrencies that located in BitWhite multi wallet, download applications and participate in the crypto revolution
    In order to build your own application it requires a developer to code it in JavaScript. By offering an SDK written in JavaScript, BitWhite enables developers around the world an accessible way to create their own decentralized applications by deploying their own Blockchain (sidechain) near BitWhite network.
  • Where can I find the BitWhite source code?

  • Why JavaScript?

    JavaScript is an easy-to-use, simple and well-known language with a gigantic development community, great tools and fast production cycles. It strengthens the idea of an easy entry and therefore fits perfectly with the goal of BitWhite community to make Blockchain technology more accessible and enable rapid application development in a growing Blockchain Army.
  • What is the consensus protocol?

    Delegated Proof of Stake (DPOS) + Practical Byzantine Fault Tolerance (PBFT); the latter prevents forking and eliminate double payment by hijacking
  • How does the BitWhite delegate system work?

    Anyone can register a delegate account on the BitWhite network by simply choosing a username for their account. The 101 delegates with the most votes in the whole network become active and start securing the network by adding new blocks. Every other delegate account outside the top 101 is on standby (candidates). The voting process is dynamic and the order of the delegates, active and standby, can change. BitWhite system uses consensus mechanism which is based on Delegated Proof of Stake (DPOS). However, on the bottom half of the algorithm, we use an optimized variant of PBFT algorithm. This algorithm can achieve the consistency of the loyal nodes by the message complexity of O(n ^ 2) and time complexity of O(1) at t
  • How are new BTW coins created?

    Active delegates receive forging rewards for securing the network. The top 101 delegate accounts receive a fixed block reward and variable rewards for occurring transactions. Everyone can register to be a delegate; everyone can vote for any delegate, but only the top 101 delegates who get the most votes can forge blocks (accounting). Currently, a delegate can get 3.0 BTW as reward for forging one block, and each block takes 20 seconds to be forged.
  • What is the validation time for a BTW transaction?

    A new block is created every 20 seconds. The first confirmation normally appears within a matter of a few seconds, as soon as it was embedded into a block. The older this block gets the more immutable the transaction becomes and can be seen as validated. We recommend to wait at least 6 blocks for smaller transactions and a whole round for bigger transactions.
  • What data structures are used for BTW blocks?

    Blocks are stored in relational database tables. A SHA256 hash of each block is created and signed by each delegate using Ed25519. The block signature and delegate’s public key is included with every block, and is used to verify its integrity. Password generation algorithm: BIP39 specification.

BitWhite Node Installation Guide

Sytem requirement:

  • Linux system required
  • Public IP address required
  • Ubuntu 16.04 64bit OS recommended
  • Above dual-core CPU recommended
  • Above 2 GB RAM recommended
  • Above 2MB bandwidth recommended

1. Download and unpack

git clone

In this step, two steps will be done automatically, as follows:

  • Install some dependency modules like nodejs and sqlite3
  • copy
    # Install dependency package 
    sudo apt-get install curl sqlite3 ntp wget git libssl-dev openssl make gcc g++ autoconf automake python build-essential -y 
    # libsodium for ubuntu 16.04 
    sudo apt-get install libtool libtool-bin -y 
    # Install nvm 
    curl -o- | bash 
    # This loads nvm 
    export NVM_DIR="$HOME/.nvm" 
    [ -s "$NVM_DIR/" ] && \. "$NVM_DIR/"  
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion 
    # Install node and npm for current user. 
    nvm install node 8 
    # check node version and it should be v8.x.x 
    node --version 
    # Install node packages 
    npm install
    # After all package installing 
    node index.js

    3. Delegate’s password

    Use your favorite editor to open config.json and locate find the [secret] field. Fill this field with your delegate’s password. This field is an array of JSON format strings, which means you can set several passwords in one particular computer, but be careful not to duplicate them.

    forging secret

    NOTICE: DO NOT configure the same password, no matter in a single machine computer or in multiple machinescomputers.

    Before registering a delegate, register a new purse, and send 100 BTW for registration.

    4. Public IP

    By default, the system will automatically detect the public IP you assigned automatically. But in some Cloud hostshost built on cloud, the public IP may not be able to identifiedidentify. Under such circumstanceIn this situation, the following field needs to be appended in config.json:

    "publicIp": "Here is your public IP",

    And don’t forget to restarting your system after configuration by:

    ctrl+c and start node again node index.js

BitWhite Delegate

Every account in BitWhite system can be registered as a delegate (need to pay 100 BTW ).

A registered delegate can accept votes from any BTW coin holders. When the received support rate is in top 101, this delegate can obtain the right to account(eg, the right of block production, which is equal to the miners in Bitcoin. ) and get BTW coins as reward. The process of block production is called forging.

Forging does not need much computing power like Bitcoin mining. Even a ordinary computer can be used to verify the algorithm of accounting right, which combines the time slice verification, delegate random ranking, delegate signatures and pbft algorithm. For more details, refer to BTW consensus agreement. The delegates in top 101 can produce blocks in chronological order with a block interval of 20 seconds. When the delegate in turn can not produce blocks because of exceptions, the block will be postponed to next 20 seconds and produced by the next delegate.

Each 101 blocks are formed as a cycle, the forging order of the delegates will be random changed in each cycle.
When the last block is produced, the reward will be settled in this cycle and the ranking will be refreshed.
If the delegates can not produce blocks because of the downtime, network errors and other reasons, they can not get the rewards of this cycle, and the productivity will decrease. Productivity is an indicator of the stability of a delegate, and low productivity may lost the votes.

The delegates with normal block production share the rewards equally, including block rewards and transaction fees. The amount of the reward does not affected by the rank and the votes. The reward for every top 101 delegate is the same.

1. Block rewards

Block rewards will decrease over time, and the specific time will be decided on the height of block in the future.
The block rewards of BTW system start from the beginning of block 464500. The initial reward is 3 coins.
The reward will decrease every 3 million blocks and it lasts about 2 year. After 15464500 blocks, the reward will be fixed and the inflation rate every year is less than 1.5%.

The following are the various stages of the block reward

Reward Initial height End height
3 464500 3464500
2.5 3464500 6464500
2 6464500 9464500
1.5 9464500 12464500
1 12464500 15464500
0.5 15464500

2. Transaction fee

In addition to the block rewards, the delegates can obtain the system transaction fees.
There are several kinds of transaction fees, including:

Type Fee
Transaction 0.1
Vote 0.1
The second password 5
Delegate register 100
Dapp register 100
Dapp deposit 0.1
Dapp withdraw 0.1
Multiple signatures (n+1)*0.5
Small file storage (not yet online) (size / 200 + 1) * 0.1