For anyone who wishes to Beta-Test the new CPU Miner feature scheduled to go live in 7 days:
(Note this is for TESTNET not production:)
CPU-Miner Release Notes:
[2.1.0.8]/95/9.8:
1. Processor Cycle Conservation: Since Gridcoin is focused on conserving processor clock cycles for Boinc, the internal PoB miner will sleep when
the last block was a CPU block. You will see the Processor Utilization rise when your miner should be mining.
Do a getmininginfo and view PoB HashesPerSec to find if you are currently cpumining.
Also, when all of your CPIDs have been exhausted, the miner will scale back utilization.
2. All threads work on the same eligible project until one thread solves the block for that project, then gridcoin will calculate the next eligible project, you can view that in getmininginfo.
3. The next viable project is selected by checking the chain for unsolved CPID+Project applicable to your instance within the dynamic lookback period (IE PoB Difficulty).
4. Dynamic Difficulty: Gridcoin divides the total network 'CPID:Projects' by 576 to arrive at a difficulty level. This is equivalent to distinct project days.
Example: If we have 10 miners working on 50 projects, difficulty is .08, since 12* that amount could potentially solve blocks in one day.
If we have 1000 miners working on 5000 projects, difficulty is 8.68, since it would take approximately 8.68 days for one individual to solve a project/block.
4b. The getmininginfo command will show PoB difficulty as calculated in days. The higher the number the harder it is for PoB to solve the block.
The calculation is based on total network project count divided by 576, giving amount of blocks that can be solved by CPUs in the lookback period.
5. Execute "listitem network" to see total network projects.
6. Look at getmininginfo "hashespersec" to see how many hashes your PoB miner is working on. It will be very low when you are either waiting for a gpu to solve a block,
or when all of your projects have been submitted/solved/in the chain. It will be around 10k per sec when working at max speed (reference avg 8 core processor).
7. Payment: The Network Project RAC Avg over 14 days is divided by your submitted project RAC, and that percent is multipled * 150 to arrive at the block subsidy.
Example: If you submit a WCG project for 1500 RAC, and the net avg is 3000, the block reward is 75 grc.
8. Setting up the config file for testnet: Note: This beta release ONLY works in testnet. Some of these features "show up" in prod, but it is impossible to turn
the miner on or generate a Block Type 2 in Prod, since we will all go live together at the same time. Also, most of the config keys do work in the %appdata%\gridcoin\testnet\gridcoin.conf
directory, however some keys only work from the %appdata%\gridcoin directory.
8b. Setting the config file for CPUMining:
gridcoin.conf:
cpumining=true
threadlimit=4
The cpumining key must be set, the threadlimit key is optional. Threadlimit is the amount of threads gridcoin will use for cpumining.
8c. Validity of CPIDs: Later in the instructions you will find Gridcoins new CPID verification system does not require the GRC address on the public web site. In order to
implement that feature, we must hash your boinc e-mail address (This is never shared in any block, and is not shared outside of gridcoin). However, you must provide the exact
e-mail address in the config file in order for boinc to give us the validity of the CPID (which will save a lot of hassle for everyone regarding set up). If you provide the
wrong email address in your config, we will hash it, then hash that with the block solved, and we will compare that to the CPID solved, and find it to be INVALID, therefore you will not
be paid, also 3rd party verifications will fail!
email=myemailaddress@mydomain.com
You can always set up a new boinc account and transfer credits if you do not want to share it, but it must match boinc and will save a lot of time in the future.
8d. Copy these config settings in both gridcoin.conf and \testnet\gridcoin.conf to ensure the settings will be read when you launch testnet.
9. To launch gridcoin in testnet mode: gridcoin-qt -testnet
10. Connecting to other nodes in testnet: Testnet is hard to connect to unless we have a lot of nodes. Add addnode=www.pgp.mx. Also, turn on the gpu miner, as that seems to help.
Once you are connected you can shut off the gpu miner if you prefer.
I am bringing a testnet node online now to help start team testing. Seed node
www.pgp.mx (port 32759) listening on testnet.
11. Corrupted block error: Since we have added many new fields, you may receive Corrupted Block Errors during boot. This should only happen once. The code will copy and reindex the blocks automatically.
12. To see if the block you solved is a cpu block, we added "BlockType". Do a getblockhash <blocknumber>, copy the hash to the clipboard, then do a getblock <hash>, and look for blocktype.
For example, if the high block on testnet is 1150, do a :
getblockhash 1150 <enter>
Copy the hash to the clipboard
getblock <blockhash>
The block contains the submitted CPID, MultiAlgorithmSolution (IE Skein+Groestl+Cubehash+Scrypt), ProjectName, and RAC submitted for the project.
To prove the CPUMiner submitted a valid CPUMined block, the "PobCalculatedHash" must match the Block "HashPoB", not have a CPID in the chain within the lookback period,
have a valid cpid (Ie IsCPIDValid true), and the prior block must be a gpu block.
13. To find the PoB difficulty, do a getmininginfo.
14. To check the output of the credit check node system, execute :
listitem cpids
CPIDs that are valid and third party verified will have the Verified RAC value populated.
15. New Automated Project Setup for CPU Miners:
It is now possible to mine any official boinc project including WCG. There is no specific set-up required, and now, you do not have to populate your Gridcoin wallet address in the
web project as your username. Gridcoin is now able to work with boincs internal public keypair to determine if the boinc CPID is authentic AND was submitted by the OWNER of the CPID.
Another words, if a miner were to
steal a previously solved CPID from the chain, it would not be possible to submit it as a block solution, and in addition, when a 3rd party makes an attempt to verify it, it will fail
due to the publickeyhash+boinchash+cpidhash not matching the originators hash. Additionally, if you try to copy the hash, that will fail since each block requires a new hash, and
each cpid root of each block is new, so old hashes cannot be used to determine new hashes.
During 3rd party credit check operation, the node will verify the validity of the cpid, the origination of the cpid, the hash of the root of the cpid, and then call out to the 3rd party
check node (netsoft-online). It will then memorize the RAC per CPID, and verify the RAC. If our credit check nodes are down, gridcoin will attempt to verify the RAC via the blockchain.
If that fails, Gridcoin will still stay up via the GPU miners, and CPU mining will fail *on certain projects* but the network will continue to operate.
Projects that are found in the chain in history will succeed, in order to keep
gridcoin running during widespread outages.
16. Some of the things we will want to test:
16a. Verify rules are enforced: CPUMiner cannot mine two blocks in a row, cpuminer cannot mine blocks already in chain within lookback, diff rises on cpuminer side, gpumining is
regression tested, Payment amounts are verified, 3rd party nodes work as planned, read debug file to verify result codes are equivalent to expected codes, etc.
17. Backwards Compatibility: Blocks and Tx are backwards compatible. Test the ability to close out of testnet, and resume mining in Prod with the same beta version.
18. Download:
http://www.gridcoin.us/download/gridcoin-beta.msi