Reward Distribution
Tutorial on using vidpool tool
On VideoCoin network workers are paid for work they perform. Amount of work that each worker gets is proportional to the amount of stake that the worker holds on system, including stake from delegators. In order to incentivize delegators workers have to share payouts with them.
A worker, while registering with the VideoCoin network, advertises the percentage of payouts that it will share with delegators. The calculated rewards are distributed proportional to the delegated stake. Self stake is also used for the calculation and the worker will distribute the reward related to self-stake to it self.
The rewards from worker's payout are accumulated and distributed to delegators by running the VideoCoin Pool tool(vidpool) periodically by the worker.
The VideoCoin Pool tool (vidpool) tool is available as a docker image. Use the following command to pull the image.
1
docker pull registry.videocoin.net/vidpool/vidpool:latest
Copied!
Prepare a configuration file required by the vidpool. A sample file is shown below. The values for the keys either obtained from VideoCoin support team or generated by the user as indicated in the table.
1
{
2
"DataDir": "/tmp/vidpooldata/",
3
"KeyFile": "worker-key.json",
4
"Password": "",
5
"StreamManagerAddress": "0xee714E6f2686929AE33614aAA332D67EaC9f5ede",
6
"StakingManagerAddress": "0xe535420fD393C202c5F47aAfDc210fF36f697584",
7
"WorkerChainURL": "https://symphony.dev.videocoin.net/",
8
"PaymentsChainURL": "https://rpc.tst.publicmint.io:8545/",
9
"LogLevel": "debug",
10
"PaymentURLSpec": "https://explorer.tst.publicmint.io/tx/%s/token_transfers"
11
"Auth": {
12
"ClientID": "69cf5e81-5301-414f-9cd9-a39bbe06c0ff",
13
"AuthURL": "d.dev.videocoin.network:5008"
14
}
15
}
Copied!
Key
Description
DataDir
Application will need to store small amount of the persistent data, for transactions recovery and latest processed block.
KeyFile
Key in Ethereum v3 format, encrypted with password. It will be used for transactions on PaymentsChain. Path must be absolute or relative to configuration file.
StreamManagerAddress
Used as a source for rewards. Obtain it from VideoCoin support site
StakingManagerAddress
Used as a source for delegation shares, Obtain it from VideoCoin support site
BlockContractAddress
Application needs to store last processed block in a safe place. By default we will store this block in a file inside DataDir, but there is also an option to deploy a contract on VideoCoin blockchain and use it for storage. If you want to store the last processed block number on blockchain, run the following command:
vidpool -c config.json deploy
WorkerChainURL
This URL gives access to VideoCoin blockchain. Obtain it from VideoCoin support site
PaymentsChainURL
This URL gives access to PublicMint blockchain. Obtain it from VideoCoin support site
ClientID
ClientID can be obtained from VideoCoin console while creating a worker.
AuthURL
d.dev.videocoin.network:5008. Obtain it from VideoCoin support site
The vidpool tool can be run to distribute the rewards accumulated until the current mined block using the following command. The worker can optionally specify a block number until which the accumulated rewards calculated for distribution. The "from" block number i.e. starting block number for calculating reward accumulation is obtained from the persistant storage specified by either from a file stored in DataDir or contract located at BlockContractAddress on the VideoCoin blockchain.
1
vidpool -c <config file> payout [--dry-run] [--to block]
Copied!
Option
Description
c
Configuration file
dry-run
Reward distribution transactions are generated for display only i.e. won't be sent to blockchain
to
The block until which accumulated rewards are calculated for distribution
The distributed rewards will be deposited in the delegators accounts on PublicMint blockchain. With --dry-run option, transactions will be created but they won't be sent to blockchain. Following is an example output:
1
+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+--------+
2
| DELEGATOR | TRANSACTION URL | AMOUNT |
3
+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+--------+
4
| 0x262B68f6A7A1bE373fd36BDE19C9EC7fF875A81b | https://explorer.tst.publicmint.io/tx/0x8792808a086030c5cb323e7bb4b81df38f54deffac69bd8e26934812ee158054/token_transfers | 220 |
5
| 0x08a5077C9Be4C9e5a362f8b92B71a9a10E1d9934 | https://explorer.tst.publicmint.io/tx/0x1626c61644f656ca2b89e2baf3f9c46e9fe90bc7349203eedfaf15cb6c4018e3/token_transfers | 220 |
6
| 0xd4fb38060f68008e0aAcF49eC507AC9F62117C6C | https://explorer.tst.publicmint.io/tx/0xe7c14f637ad6ad21bb974637c32538a403efee89b0cc42308276975c8264af90/token_transfers | 220 |
7
| 0xc2cdA70eC0fE6B9f0918b6fb546124973dCb7Ad2 | https://explorer.tst.publicmint.io/tx/0xb17d1221e968a42a351450b260340b7ba9fafc54b18f3c92fc4b22764320c91d/token_transfers | 220 |
8
| 0x9D36BDF7B1420dDA449155dff434ce44D539E4f8 | https://explorer.tst.publicmint.io/tx/0xfdf477010a8c70be3f62b144a6503d98de3ed7d4031790101a2f248940e67c96/token_transfers | 220 |
9
+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+--------+
Copied!
Last modified 1yr ago
Copy link