Status of MultiCoin-exp branch and merge miningThis article Last Updated 7/6/11
I finally made some progress on merge mining in the MultiCoin-exp branch. With the setup of a cpuminer branch from forrestv found at:
https://github.com/forrestv/cpuminer comitish: f7617f3f7c0eb348e1bf2af21ed5d965f05df24d
This miner was chosen as being the only known miner with algorithms that works best at difficulties less than one as we plan to use this with mergemineTEST net as parent chain that is presently at "difficulty" : 0.12500000. At that same time the weedsnet was at "difficulty" : 0.06249911,
and my present build of MultiCoin-exp used to run both the parent and child chains at comitish:
4e13e3527eca861964bb
I had two multicoin-exp bitcoind running with the bitcoin.config.weeds with port settings of 38333 and rpcport of 38332 and bitcoin.config.mergmine that has port settings of 58333 and rpcport of 58332
these example configs have been released and can be seen at these url bellow:
http://exchange.beertokens.info/docs/multicoin/bitcoin.conf.mergmineTESThttp://exchange.beertokens.info/docs/multicoin/bitcoin.conf.weedsto start we playing with weedsnet as the child chain and a newly created mergemineTEST chain used as a parent for the weedsnet chain.
setup merged-mine-proxy to run with corrected username:password here:
./merged-mine-proxy --parent-url
http://yourusername:yourpassword@127.0.0.1:58332/ --aux-url
http://yourusername:yourpassword@127.0.0.1:38332/ -w 9992
setup cpuminer
./minerd --url
http://127.0.0.1:9992/ --userpass yourusername:yourpassword -t 1
I was getting these results from the miner
[2011-07-24 17:44:35] JSON-RPC call failed: {
"message": "Unknown error: -32601 Method not found ''",
"data": "",
"code": -32099
}
due to the fact that the documented method shown in merged-mine-proxy shows:
help='connect to the parent RPC at this address (default:
http://pw:un@127.0.0.1:8332/)' with reversed pw : un that should be un : pw. So this took some instrumented lines for me to figure out but finally got results when corrected.
we now have a working proto type merge mine setup using mergemineTEST net as the parent chain for weedsnet. This has been done with the new released changes from namecoin mergedmine branch release of commit 6849ac73f3577c1b445787993d134a596c89c09b that has again been merged with MultiCoin-exp. The changes for MultiCoin-exp have now been released at:
https://github.com/sacarlson/MultiCoin-exp as commit 4e13e3527eca861964bb. I noted that I couldn't use weedsnet as the parent for MergemineTEST net due to the fact that the difficulties for weeds were smaller than that of MergemineTEST net. This was noted by the error seen from the console of mergeminTEST of:
ERROR: AUX POW parent hash 0000000964b614867559487da64722a0e4876de8fbc45e3b15bd7e07b2f03625 is not under target 00000007fff80000000000000000000000000000000000000000000000000000
When I reversed the nets parent for child everything worked fine. as seen from miner-proxy:
2011-07-26T13:11:47.651525,solve,0,1
2011-07-26T13:16:25.894304,solve,1,1
and noteing results in block counts of both networks on the rise. So later I will right some more detailed procedures to make clear what needed to be done.
Update: I've also merged the new changes from namecoin that now allow multi chained networks
2011-08-03T03:35:59.129965,solve,1,0,1
in this example I now have one parent and two aux chains by just running more multicoind configs and adding more --aux-url chains on the merge-miner-proxy line with space delimiter
./merged-mine-proxy --parent-url
http://yourusername:yourpassword@127.0.0.1:38332/ --aux-url
http://yourusername:yourpassword@127.0.0.1:10332/ http://yourusername:yourpassword@127.0.0.1:58332/ -w 9992
I've also created another merge mined chain config for BeerTokens in preliminary review published at:
http://exchange.beertokens.info/docs/multicoin/bitcoin.conf.beerA . it's set to pay .0001 for each mined block at a difficulty at block 1000 set to be 23509.0 designed to be mining by namecoin miners as the parent. AuxPowStartBlock point is set to start at block 1000 for AuxPowStartBlock that could be from 1 to 4 days depending on mining activity. I guess we are ready to go just need miners to partisipate.
first problem detected not in MultiCoin-exp but in the infrastructure of our block explorer bitcoin-abe I'm getting this error from a fresh start of abe.py , when I run the weeds network in the merge mining mode. I had planed to upgrade the weeds network as soon as possible to merge mining when we have a solution for this. I now get this error OverflowError: long int too large to convert to int detailed trace see:
http://paste.ubuntu.com/652878/, Update 7/6/11 This problem now fixed in the new release of bitcoin-abe we now have support for merge mining in a block explorer thanks again to John Tobey.
Update Aug 4, 2011 8:30pm BKK. I found we have a big bug in the new Diff_post_triger and Diff_triger_block config settings in MultiCoin-exp that cause orphaned blocks after block 12 when starting a new system from an empty datadir. So this feature will have to eather be fixed or not used. This feature has only been used on the one config file
http://exchange.beertokens.info/docs/multicoin/bitcoin.conf.beerA so the beerA chain is down until this is fixed. I'll take a closer look at it tomaro. This is what happens when you try to do too much tooo fast.
Update Aug 5, 2011 4:59pm BKK. bug above wasn't as bad as I had thought. it was just that I had changed the block position after it past the point, so from fresh start it would fail with orphaned blocks. I put the setting of Diff_triger_block=11 back and every thing worked fine. so I also added another set of values Diff_triger_blockB=1510 Diff_post_trigerB=453237473 and moved the AuxPowStartBlock=1500 to now enable merge mining at block 1500 instead of 1000 to give more time for testing. We are now back on track all systems go.
Update Aug 14, 2011 6:34pm BKK. I seem to have a problem with slow mining using merge mining as it's taken 7 hours to get this 2011-08-14T10:09:41.168619,solve,0,0,1,1,1
I've got many of these 2011-08-14T09:53:57.364787,solve,0,0,0,1,1
the "difficulty" : 0.06198025, one the 2nd aux in this case mm2TEST should not have taken 7 hours
this is with 270kh/sec miner
I see no errors but it just seems very slow to mine
;;bc,calcd 270 0.061 shows it I should get gribble: The average time to generate a block at 270 Khps, given the supplied difficulty of 0.061, is 16 minutes and 10 seconds
I used this in the proxy line:
/home/sacarlson/Downloads/mmproxy --parent-url
http://yourusername:yourpassword@127.0.0.1:48332/ --aux-url
http://yourusername:yourpassword@127.0.0.1:10332/ http://yourusername:yourpassword@127.0.0.1:12332/ http://yourusername:yourpassword@127.0.0.1:14332/ http://yourusername:yourpassword@127.0.0.1:13332/ --merkle-size 4 -w 9992
This is using MultiCoin-exp that uses vinced merged mining code for merge mining with chain configs, bitcoin.conf.namecoin diff 94035.90217415 as parent, aux1 beerA difficulty 50.0, aux2 mm2TEST diff 0.06198025, aux3 mm4TEST diff 0.01475864, aux4 mm3TEST diff 0.00441692,
anyone else getting slow results with merge mining test or did i configure something wrong or maybe my code problems? I'll try some simpler experiments with just a parent and 1 aux to take a closer look at results. I'm using my latest Multicoin-exp release in github commit 06602e7e09875d0e8a46 the multicoin config files are published at:
http://exchange.beertokens.info/docs/multicoin/Update 8/15/11 10:58am BKK:
I ran another merge mine experiment of just parent and one aux with new difficulties parent of .062 and aux chain diff .010
experment ran with 280kh/sec run from 15:07 block2 to 3:25 block 52 = about 14.4minits per block on both parent and aux chain
so the good news is I get about what I would expect on the parent chain ;;bc,calcd 280 0.062
gribble: The average time to generate a block at 280 Khps, given the supplied difficulty of 0.062, is 15 minutes and 51 seconds
The bad news is I don't get as much as I would expect from the aux chain. I just don't have a full understanding why.
;;bc,calcd 280 0.010
gribble: The average time to generate a block at 280 Khps, given the supplied difficulty of 0.010, is 2 minutes and 33 seconds
sample as seen from proxy:
2011-08-14T15:07:12.921571,solve,1,1
2011-08-14T15:08:53.573864,solve,1,1
2011-08-14T15:32:25.379898,solve,1,1
2011-08-14T15:44:39.154894,solve,1,1
2011-08-14T15:52:37.380143,solve,1,1
2011-08-14T16:08:12.520307,solve,1,1
2011-08-14T16:14:12.460611,solve,1,1
2011-08-14T16:38:22.869591,solve,1,1
2011-08-14T16:42:50.560368,solve,1,1
2011-08-14T16:52:16.580440,solve,1,1
2011-08-14T17:04:32.321299,solve,1,1
2011-08-14T17:06:32.312406,solve,1,1
2011-08-14T17:11:56.703054,solve,1,1
2011-08-14T17:15:28.470930,solve,1,1
2011-08-14T17:31:32.309536,solve,1,1
2011-08-14T17:43:20.232165,solve,1,1
2011-08-14T17:49:24.424827,solve,1,1
2011-08-14T18:04:56.335914,solve,1,1