The contract with the block producer
This contract is a public offer, a contract between a particular block producer and other block producers acting as subjects of the decentralized COFFE blockchain. The purpose of the contract is to accept the rights and obligations of a particular block producer to other producers of the COFFE blockchain blocks.
This contract regulates the relationship between all blocks producers since each producer undertakes the same obligations and is in the same conditions.
The contract's objective is to agree on common protocols, standards that unite block producers into a single decentralized COFFE network. The whole network and each block producer individually, must comply with the protocols and standards developed for this network as well as with the decision of the majority of block producers, reached by consensus procedure or general voting, which allows to ensure equal rights for each producer. This contract is a way to protect the mutual interests of all block producers.
A block producer (hereinafter referred to as a "Block producer") is a server licensed for the production of blocks with an installed software package designed to work with the COFFE blockchain.
Block producer is the block producer engaged in the production of the current block. Block producer candidate is a block producer selected by consensus procedure among 21 candidates who want to produce a block or blocks.
Licensing is the procedure for obtaining the status of a block producer.
Block producer pledge is the number of CFF tokens that must be sent to the stake to obtain a block producer license.
Commission fee is the number of CFF tokens required to conduct one transaction in the network and to be included in the block. The whole commission is erased before the end of the full CFF token issue.
A smart contract is a software algorithm designed to control the ownership and disposal of any digital asset.
dAPP is a decentralized application that uses one or more smart contracts to ensure interaction between blockchain users.
A blockchain user is a registered COFFE address with public and private keys. Both persons (natural or legal persons) and software products (APP, dAPP) can act as a user.
Public API is a software interface for user interaction with COFFE blockchain services.
Block producer's rights
The production of blocks
Each block producer has the right to be selected by consensus procedure (randomly) among candidates for block producers.
A candidate for block producers has the right to be selected by consensus procedure and become the block producer. At the end of the production of a certain number of blocks, the block producer ceases to be a block producer and a candidate for block producers. To produce the next block or blocks, he must be re-elected by consensus procedure.
Reward for blocks produced
Each block producer has the right to receive a reward for each block produced by the system during the entire period of issue of the CFF system tokens, in accordance with the current reward for the production of the block. At the start of the network, the reward for the block produced is 34,293 CFF. The reward for the production of blocks is reduced by 10% annually for 20 years since the start of the system. At the end of the token issue, the reward for the production of blocks will be accrued from the funds paid by users as a network commission. The whole commission for transactions included in the current block will be received by the producer of this block.
All block producers have the right to participate in the voting of block producers. Issues that affect the work of the entire network are put to the vote. Among them are: the size of the system commission, the amount of the pledge for the block producer, changes in protocols and standards, changes in system contracts, changes in the block producers' software. The decision is made in due time, by a majority of votes.
Responsibilities of block producers
Protocols and standards
Each block producer must comply with protocols and standards common to the entire network. Non-compliance with protocols and standards leads to block skips, errors, and network failures, which can result in errors. Therefore, violation of protocols and standards can lead to the termination of the license of the block producer and the imposition of sanctions on the guilty party.
The production of blocks
Each block producer, appointed as a candidate for block producers, is obliged to confirm the block created by another producer. Each block producer appointed to be a block producer, is obliged to create a block and sign it with his/her own key.
Elections of the block producers
Each block producer is obliged to participate in a consensus procedure to select block producer candidates or a block producer if the block producer is a block producer candidate.
Block producer's key
If a block producer's key is compromised, the block producer undertakes to terminate immediately the license of the block producer until a key is replaced by a noncompromised one. Each block producer is fully responsible for the actions signed by the block producer's key, so if the key is compromised, it means that the block producer is also responsible for the actions of intruders who can use this key.
Each block producer provides functioning and requested public API points to synchronize with the COFFE blockchain, sending transactions that need to be included in the block. API endpoints must be updated to the latest functional version that does not include security vulnerabilities.
The majority of deviations from the agreed standards can be objectively proven. For nonfulfillment or improper fulfillment of the obligations assumed, the responsible block producer should pay sanctions. Sanctions are paid by the block producer. Before the payment of sanctions, the funds in the stake are blocked, and the block producer is revoked of the license. Sanctions are imposed for:
violation of the block producer candidate or block producer selection protocol - 1000 CFF;
violation of the block producer candidate or block producer selection protocol that led to a block skip - 5000 CFF;
block skip by a block producer - 5,000 CFF;
block skip by a block producer confirming the block - 1000 CFF;
attempt of attacking the network by the producer or producers of blocks - 100 000 CFF. The sum is paid by each block producer who took part in the network attack;
failure to comply with obligations according to voluntary payment of fines - 50 000 CFF.
The decision to set fines for an attempt of attacking the network is made by a general vote. It takes place only if the attempt to attack the network is obvious and/or objectively proven. All funds paid in the form of fines are erased, which reduces the token issue.
The fines system is not a measure of creating an atmosphere of fear in the COFFE network. This measure is taken only to protect the common interests of the COFFE network participants (block producers), users, and dAPPs placed in the COFFE network.
This document can be supplemented or amended following the decision of the majority of block producers. If the block producer does not agree with this document completely, he/she undertakes to terminate the license immediately. The presence of a block producer's license indicates that the producer agrees with this document and is obliged to fulfill all the conditions of this document until the voluntary termination of the license.