Skip to content

Golos dApp v2.0.0 Release Notes

Compare
Choose a tag to compare
@afalaleev afalaleev released this 14 Aug 13:35
· 105 commits to master since this release

Golos•Core Team introduces a kit of contracts implementing the dApp Golos Core. This kit includes the smart contracts: golos.ctrl, golos.emit, golos.config, golos.vesting, golos.publication, golos.charge, golos.social, golos.referral and golos.memo.

golos.charge

golos.charge smart contract performs an applied function — it allows to limit user activity in creating posts, comments, and also in voting for posts. There is no direct user interaction with the golos.charge smart contact, recourse to actions occurs through golos.publication smart contract.

golos.ctrl

golos.ctrl smart contract implements logic for election of witnesses, including the following:

  • a registering procedure for an account as a candidate for a witness;
  • a voting procedure for election of a witness;
  • determining a list of the most rated witnesses.

The golos.ctrl smart contract contains settings that apply to the Golos application as a whole. These settings can be used to the change parameters of any subsystems (for example, emission distribution between pools). Other Golos application smart contracts can access the golos.ctrl smart contract and get these settings, percentage ratios of the funds distributed by pools, limits on battery resources. Also, the smart contracts can obtain a list of the most rated witnesses with corresponding authority values. This makes it possible to verify the authenticity of actions certified by witnesses.

golos.emit

Tokens in the smart contract golos.emit are emitted according to the algorithm specified in the parameter settings. New tokens are distributed between smart contract reward pools, such as golos.vesting, golos.publication, golos.ctrl in accordance with the settings of the golos.emit smart contract parameters. Funds from the vesting pool are accrued to the owners of vesting, from the publication pool — to the authors and curators of posts.

golos.referral

The golos.referral smart contract contains the logic of referral program rewarding users who invite their friends or third parties to register in the Golos application via social networks (for example, by viewing third-party publications or posting their own posts about the blockchain). The logic of the referral program defines one user as a referrer with respect to another (referral). The smart contract contains algorithm for calculating the reward for a post, as well as algorithm for the completion of the referral program, including the completion at the initiative of the referral user through the redemption of his account.

golos.publication

The golos.publication smart contract provides users to perform actions on posts, including:

  • publishing posts;
  • leaving comments to posts;
  • voting for posts;
  • closing posts.

In addition, this contract contains logic for determining the payments to authors, curators and beneficiaries of posts.

golos.social

The golos.social smart contract provides users the following operations:

  • creating and editing user profiles (metadata).
  • pin-list establishment that allows its owner to receive information about the publications of users that he/she is interested in.
  • the establishment of a so-called «black» list allowing to block communication between the owner of this list and any unwanted users.

golos.vesting

golos.vesting smart contract provides binding of the vesting to a token created by cyber.token smart contract.

The golos.vesting smart contract supports the following operations:

  • creation/«burning» of the vesting by a user;
  • delegation of funds in the form of the vesting to another user;
  • accrual of the vesting to authors and curators from the reward pool;
  • replenishment of the pool with funds received from the golos.emit smart contract.

golos.memo

The golos.memo smart contract provides storage of user`s memo keys. These keys can be used to encrypt transfers in the application. Currently, this contract does not allow a user to add or remove memo keys. It just provides storage of memo keys imported from the genesis, in case, they can be used in future.