Skip to content

Instantly share code, notes, and snippets.

@roelandp
Last active June 14, 2018 07:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roelandp/29fa1f7953703d1f56007ea24041797f to your computer and use it in GitHub Desktop.
Save roelandp/29fa1f7953703d1f56007ea24041797f to your computer and use it in GitHub Desktop.
Mining on Decent - Read this first.

MINING Witnessing blocks for Decent

Decent is a network for publishing content and runs on the Graphene based software. Graphene has many advantages, such as very low blocktimes which result in nearly instantantious transfers and high TX throughput.

Graphene software is based on the DPOS model and not on the Proof-of-Work model. There is NO need for heavy computing power to calculate algorithms to find solutions and create new blocks and get rewarded.

It is not a environmental unfriendly game of 'who has the biggest CPU/GPU'.

Instead it is about having stability through active miners witnesses who run copies of the ./decentd software on their dedicated servers and make sure transactions on the network are pushed in blocks and verified and signed off and pushed into the chain.

Therefore the wording MINER is badly chosen by the DECENT Foundation (imho) for this task.

  • Mining, historically implies that you 'come & go'. You go to the mine, or you kickstart your GPU/CPU mining rig whenever you feel like 'mining some BTC / ETH'. This is not the case with Graphene chains. There is no 'search for solutions to complex mathematical calculations'. Block producers sign off blocks and push them to the network.
  • Instead with Graphene a list of 'voted in / active' 24/7 - RELIABLE miners witnesses are responsible for securing the Decent network and making sure that transactions are added to blocks and the blocks pushed into the chain. This 'active list of miners witnesses' is compiled on every 'MAINTENANCE_INTERVAL' which is currently set at every 24hours. At 00:00 (midnight) UTC if I am not mistaken. Then, votes are recalculated and the 'active_witnesses list' is being shuffled.

To become a miner witness for Decent you must understand the following:

  1. You must be reliable: This is not a 'come & go' job. If you are voted in the 'active miners witnesses list' your server will get a block to produce / validate / sign every minute or so. If you have not setup your software correct, you will miss the block and keep missing blocks until you have figured it out. If you miss blocks, the transactions which are waiting to be added to the blockchain will be moved to the next block & block producer. If many active miners witnesses are missing blocks, the network could even stop.... It's hardcoded that if only 33% are validating blocks it will stop.
  2. Your server must run 24/7: See point 1.
  3. Your server must run on a good infrastructure in a professional hosting environment: See point 1.

Remember this is not a case of 'who has the biggest CPU/GPU' but there should be a healthy competition of who has the least 'missed blocks'

Vote responsibly!

If you have DCT in account you can vote for miners witnesses to influence the 'active miners witnesses list' at the next MAINTENANCE_INTERVAL and beyond.

PLEASE VOTE RESPONSIBLY Do your research and not randomly start voting for miners you don't know or who are missing blocks constantly. If too many non producing miners witnesses are voted in, the network will simply halt.

Be verifiable!

Please setup your miner witness with an identifiable username so don't use the default DECENT foundation encryped u1234123XXXX formed username.

Steps involved in setting up a miner witness:

1. Setting up a server and securing it:

  1. Setup a server (16.04 LTS 2 recommended) on a dedicated hosting environment (32 GB ram+ recommended futureproof) (IAW NOT AT HOME).
  2. Secure your server: No root login, no password login, install UFW, and fail2ban and such.
  3. Manually install the DECENTD node software as instructed here: https://github.com/DECENTfoundation/DECENT-Network

2: Perform all cli_wallet actions (need help? use the function gethelp FUNCTIONNAME):

  1. Import your Decent account with the weird name with import_key and make sure it is funded with some DCT.
  2. Setup an identifiable username for your miner witness with register_account (you need suggest_brain_key twice to get new pub/private keypairs for both the owner and active keys.
  3. Fund the newly created account from your original decent account with transfer
  4. Upgrade your newly identifiable username account to become a miner witness with create_miner. Be sure to add a url where we can read more about your intentions of being a 24/7 reliable miner witness for DECENT. This will return a result with 'signing key' as well as your miner-id (starts with 1.4. !!! NOT 1.2. !!!)
  5. Update your config.ini for the ./decentd software: Go to /home/LINUXUSER/.decent/data/config.ini
  6. Update/Add/Uncomment the miner-id="1.4.XX" (note! starts with 1.4. not 1.2.) with your mining-id retrievable via get_miner
  7. Update/Add/Uncomment the private-key=["DCTPUBLIC","PRIVATEKEY"] with your SIGNING PUBLIC KEY, PRIVATE KEY pair in the correct order Get your Public Key retrievable via get_miner and seeing the 'signing key'-value. Then get your private key corresponding to that public signing key via get_private_key.
  8. Double check that you are absolutely sure you have setup config.ini correctly with miner-id=1.4.XX (not 1.2.XX !!) and have the correct order and keypair for private-key=.
  9. Restart your ./decentd software in a dedicated screen session on your 24/7 reliable dedicated server. In the startup on your screen session you should see it listing some details about your configged miner
  10. Announce your intentions on #mining on slack

My name is roelandp, I am a witness for several graphene chains and you can learn more about me here: https://roelandp.nl or https://roelandp.nl/decent

Vote for my miner witness via: vote_for_miner YOURACCOUNTNAME roelandp true true


@snatic
Copy link

snatic commented Aug 9, 2017

what is needed do it to fix:

Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)

???

@haroondilshad
Copy link

How do I get support for my witness? Where do I find a list of witnesses that I can vote? Does it cost to vote? So many questions

@bangmac
Copy link

bangmac commented Feb 7, 2018

ronal. i cant access to Decent github to download wallet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment