Hive Engine Mining Contract

in Palnet4 years ago

The mining contract is now live. This essentially implements the scotbot "proof of staked mining" and "proof of stake" token mining protocol in a hive engine contract.

Mining Contract

This contract allows token issuers to set up staking rewards via a lottery system. Token issuers can configure how often they want to run the lottery, and how many winners for each lottery. The system allows for designating one or two tokens as the 'mining tokens'. For example, the current BEE staking rewards looks at your WORKERBEE stake and will run a lottery every hour to distribute BEE to 10 winners. This system fits neatly into the mining contract, and we will be looking to switch it over from scotbot mining to the mining contract.

Token issuers can also designate the same token as the mining token, so that e.g. they can run lotteries to reward tokens to stakers of the same token (e.g. 'proof of stake').

Designating two tokens allows for the 'megaminer' setup, where e.g. WEED runs lotteries for stakers of WEEDM (with a multiplier of 1) and WEEDMM (with a multiplier of 4).

This mining contract can be used to facilitate games and applications that want to have a portion of their reward pool distributed through mining. In this regard it's a base contract for new businesses to form here looking to spread their token far and wide. As the contract is modified to allow for NFT influence and governance it expands the range of possiblities for how creative apps and games can be with that distribution. Imagine an application where NFTs influence mining and the degree of that influence is determined by governance. The world of what's possible really starts opening up. Realize further still that this can be done through configurations rather than code and the number of people able to develop here goes through the roof.

Documentation

Documentation for actions as well as information about mining is on the hive engine wiki here.

This page shows how to create and activate a pool, and what information is available via the API.

Note the current cost of 1000 BEE to set up a mining pool and 300 BEE to update settings. Activating and deactivating the mining pool does not have a cost.

Migration

For tokens mining on scotbot, we do not have general plans yet to migrate them to this contract. But if you own a token and want to move it you can reach out to us on discord to discuss possible options.

Differences vs Scotbot Mining

There are some differences to be aware of:

  • Lottery reward: Scotbot places amounts in pending tokens, which when claimed is subject to the % staked reward setting of the token, and can take up to 24 hours to transfer to account. The mining contract pays out liquid immediately after the lottery occurs.
  • Trust: Scotbot is closed source and relies on trust of the operator to run the lotteries. The mining contract source is public, and hive engine nodes are running the code.
  • Future Changes: integration with NFT is in progress, as well as with governance contracts (e.g. setting up voting systems to change mining parameters or perform other actions)

Account History

The account history engine endpoint has also been modified to show when you have mined tokens.

Test token

I've set up a test token and a very crude dashboard to show how it runs. You can view it at

https://eonwarped.github.io/shengine/test_mining.html

It shows the pool information, the winners, and computes current balances and mining power, current probability of winning, and ratio of tokens won relative to others.

Another view that can show much more quickly the actions performed by this contract can be found at https://hive-engine.rocks/transactions?contract=mining&contract_action=checkPendingLotteries