Pages:
Author

Topic: [ANN] i0coin - Back from the dead - page 4. (Read 14918 times)

legendary
Activity: 2940
Merit: 1090
July 30, 2013, 06:54:16 AM
#56
Well the really important question of course is does it actually work as a secondary chain in merged mining?

I tried to find in the code where it sets its aux chain ID as chain number three but could not find it, but then again going back to the old code and looking there I also could not find it. I cannot remember anymore where the merged mined coins set such things.

-MarkM-
member
Activity: 77
Merit: 10
July 30, 2013, 04:38:35 AM
#55
Hello all,

Thanks for the responses. Note that i0coin-0.8.x is a clean port without dirty stuff. It starts and stops much faster than BDB clients. There probably are bugs, so the thing must be watched until the worst ones are inroned out.

WRT the dirty fix... I have a proposal for a clean fix that conserves even more memory.

The huge in-memory table of all block headers is called mapBlockIndex.

I plan on:
  • wrapping access to mapBlockIndex (and LevelDB backend) in a class (there only 57 references to it, should be doable)
  • within that class serializing directly from LevelDB, possibly introducing an object cache if performance is bad, in extreme cases this cache should be able to contain everything in which case performance should be equal to what it is now (come to think of it, in some cases it is better to skip serialize/unserialize, like in getheaders)
  • creating a branch that will be based on bitcoin tag v0.8.2 so that it can be merged in all current branches

Greetings,

Rik.
hero member
Activity: 518
Merit: 500
Bitrated user: ahmedbodi.
July 30, 2013, 02:01:58 AM
#54
i have possibly come up with a solution to the problem and will be testing it out on bytecoin first before releasing my idea, if it works ill gladly share my idea and any possible code to u guys
legendary
Activity: 2940
Merit: 1090
July 30, 2013, 01:51:54 AM
#53
So this is probably why GeistGeld uses even more memory than I0Coin, too.

No memory leaks required, these coins are simply showing us what would happen to all the merged coins if people only merged mined them using p2pool.

People who would prefer not to have to use as much memory for merged mined chains thus have an incentive to try to convince pools other than p2pool to merged mine the coins.

As it is, p2pool makes all the coins other than the primary chain into roulette aka solo mining, which will be more and more of a crapshoot as merged mined coins in general go up in difficulty.

So basically anyone who wants I0coin and GeistGeld and, eventually, most other merged mined coins, not to grow in memory needs as fast should set up methods other than p2pool for merged mining them.

They could also consider pledging to the bounty that DeVCoin already has been offering for a long time now, a bounty for software that can be used to in effect make merged mining pools. The current bounty can be won even just by software letting someone offering access to a p2pool node to divvy up the secondary chain coins among the miners; maybe this finding though will motivate a separate bounty that leaves p2pool out of it and specifically wants free open source merged mining pool software to be created.

I will not be running your dirty trick version of I0coin, it does not seem a good idea. RAM is cheap, lets just throw RAM at the problem.

A non dirty trick updated I0Coin is welcome though even if it does consume more RAM. It should download the blockchain much faster and just basically be a better client with all the modern features.

-MarkM-
member
Activity: 77
Merit: 10
July 30, 2013, 12:59:11 AM
#52
Hi all,

I'd like to share the things i found out while researching the above question.

I0coin is killed by:
  • I0coin by keeping all auxpow's in memory
  • slow adoption by regular pools
  • P2Pool
  • high blockrate

Why?

  • I0Coin stores all auxpows in memory, because auxpows are included in CBlockHeader and ALL CBlockHeaders are stored in memory, Bitcoin up to at least v0.8.3 does this also.
  • Due to normal pools having little support for I0Coin (as opposed to eg. NMC), most of the mining is done in P2Pool
  • P2Pool has very large (8kB as opposed to 200B) coinbase transactions (each auxpow has a copy of the full coinbase transaction in the bitcoin block with which it is associated)
  • Due to the high blockrate, i0coin's memory usage grew faster than namecoin, ixcoin, devcoin GOTO bullet 2 and repeat ad infinitum

Endresult: i0coin's memory usage grows by at least 8kB per block, which is 8kB*60/1.5*24*365 = 2.7GB per year...  Sad

Solution:

Port I0coin to v0.8.3. I did that https://github.com/rsnel/i0coin/tree/i0coin-0.8.x (I started with doublec's v32509 and merged sucessively higher versions of bitcoin into it). It seems to work fine. (it can do transactions, it can mine blocks that get accepted eg 01f017f6e86c5de539b0137677e6d096bbd2b05d9859c4c25c14c73579644dc8, which is a nVersion=2 block because it includes its nHeight in the coinbase script) On its own, this port uses about 500MB more memory than v32509. (I hoped to solve the problem by doing this port, but that didn't work...)

Then I proceded by, and I agree that this is a bit dirty, just not storing auxpows. This breaks two things:
  • response to getheaders request doest not return auxpow part of header (not that bad, because the Satoshi client never issues getheaders requests)
  • CBlockIndex:CheckIndex, it just returns true because it doesn't have access to auxpow (see comment in source)

I implemented this in branch dirty-trick. Please try it out, and run this version besides your own i0coind (it uses about 321MB) and keep an eye on it.

Better solution:

Retrieve auxpow's from disk in the two problem cases.

Further work:

  • compile on other os's, only tested "make -f makefile.unix i0coind"
  • fix logo's in qt client
  • stabilize/test 0.8.3 port
  • when to enable BIP30?
  • much much more
  • irc seeding is removed in bitcoin, include good seednodes and setup DNSSeed for i0coin

Greetings,

Rik.

legendary
Activity: 2940
Merit: 1090
June 30, 2013, 03:51:56 PM
#51
No, like all the other merged mined coins it needs a recent copy of bitcoin with merged mining as secondary chain added, as the common base all the merged mined coins can then customise from.

Unfortunately a DDOS attack fix has recently been added to bitcoin since the last start on making a copy of bitcoin with the merged mining added, so maybe the whole project of adding merged mining as a secondary chain to the bitcoin code might need to be started over yet again using an even more recent copy of bitcoin.

Though i guess that depends on how big the fix for the attack was. Maybe it is just another patch that will need to be applied in addition to finishing up the applying of the merged mining patches.

I0Coin is still humming along even though it does die pretty much every day on some stupid and probably pointless DNS lookup error, so for now just retart it when that error kills it keep on merged mining as usual.

It is actually GeistGeld more than I0Coin that seems in need of an update, since there are fewer people using it, it seems, than are using I0Coin, and that probably means there are less people willing to put up with its RAM consumption than are willing to put up with I0Coin's daily dying.

-MarkM-

full member
Activity: 286
Merit: 100
June 30, 2013, 03:42:09 PM
#50
Any progress on the client update?
legendary
Activity: 924
Merit: 1000
Think. Positive. Thoughts.
June 19, 2013, 09:46:03 PM
#49
Bump.
legendary
Activity: 1554
Merit: 1222
brb keeping up with the Kardashians
June 13, 2013, 05:01:24 PM
#48
Yeah what's up with i0coin?
legendary
Activity: 924
Merit: 1000
Think. Positive. Thoughts.
June 10, 2013, 09:48:57 AM
#47
Status on this?
legendary
Activity: 2940
Merit: 1090
June 07, 2013, 11:28:16 AM
#46
Lots of people got it "free" when it was in bitparking's merged mining pool, and since then it has had long long time when anyone could pick some up, so it probably has huge numbers of people holding it by now, even just direct holders not counting people who just use the dI0C tokens in Open Transactions.

Also of course if people sold off a lot in the last days of it being on bitparking's merge list and also on their exchange, someone must have bought what was sold so there are probably peole who invested money into it 9whether bitcoins or whatever) as well as lots and lots of people who mined it.

it is kind of silly to bother with all these orphanfests of the new pump and dumps when you can just stick to merged mining month after month year after year the same stable array of coins.

overall the ancient coins are much more interesting than the new ones, the new ones will start to become intereesting in a year or few when there has been time for lots of people to pick up some after the pump and dump folk have moved on to the next day's batch of new coins.

A big problem with all these recent ones too is how will they ever actually manage to get secured? Without merged mining the hashing just gets more and more diffused day by day.

-MarkM-
hero member
Activity: 717
Merit: 501
June 06, 2013, 04:33:16 PM
#45
I really hope this gets revived, the inflation is very low and there may be bounties if you revive it.
legendary
Activity: 1554
Merit: 1222
brb keeping up with the Kardashians
June 06, 2013, 02:49:51 PM
#44
With 10+ functional coins already established and traded, why would we even need to revive some old crap? Except for the obvious profit potential in hoarding some ancient crap and dumping it, what possible reason is there to 'revive' anything?

That's pretty much what people are saying about Feathercoin Grin
legendary
Activity: 980
Merit: 1000
June 06, 2013, 02:27:15 PM
#43
For fun Wink
full member
Activity: 224
Merit: 100
June 06, 2013, 02:24:39 PM
#42
With 10+ functional coins already established and traded, why would we even need to revive some old crap? Except for the obvious profit potential in hoarding some ancient crap and dumping it, what possible reason is there to 'revive' anything?
legendary
Activity: 1554
Merit: 1222
brb keeping up with the Kardashians
June 06, 2013, 01:48:06 PM
#41


Is Art close to being done with the Scrypt ASIC yet?

He hasn't worked on it in a while, it's been on hold.

~BCX~

I guess he's been busy trying to hit 20TH Smiley
sr. member
Activity: 322
Merit: 250
June 04, 2013, 09:38:32 PM
#40


Is Art close to being done with the Scrypt ASIC yet?

He hasn't worked on it in a while, it's been on hold.

~BCX~

I missed Kelly Lee.
sr. member
Activity: 574
Merit: 250
June 04, 2013, 11:25:17 AM
#39


I'm fairly sure coinhunter runs the mcxnow exchange



No that would be Realsolid.

Coinhunter has made it clear that him and Realsolid are not the same person.  Cheesy


Coinhunter will be back! So will ArtForz and Lolcust.


~BCX~

you are right, but I did not think too many people knew it as of yet.  I guess I better get to work on that code for Lolcust, but I just can't get motivated, especially being out of disk space lately.
legendary
Activity: 1554
Merit: 1222
brb keeping up with the Kardashians
June 04, 2013, 10:46:56 AM
#38


I'm fairly sure coinhunter runs the mcxnow exchange



No that would be Realsolid.

Coinhunter has made it clear that him and Realsolid are not the same person.  Cheesy


Coinhunter will be back! So will ArtForz and Lolcust.


~BCX~

Is Art close to being done with the Scrypt ASIC yet?
hero member
Activity: 756
Merit: 500
June 04, 2013, 05:03:29 AM
#37
Now Solidcoin is known as Microcash with a 1:1 exchange.  But I haven't heard about Solidcoin/Microcash for ages now.
Pages:
Jump to: