The new thread is at https://bitco.in/forum/threads/bitcoin-avf-a-full-fork-project-for-escaping-segwit-and-1-mb-blocksize-limit.962/. I have called it Bitcoin AVF, a full fork project for escaping segwit and 1 MB blocksize limit
If you decide not to drastically alter the algorithm, are you considering shortening the retargeting period down from 2 weeks to something more reactive?I haven't found any major change to the difficulty retargeting algorithm in your fork. Are you interested in fitting one, or do you feel the difficulty will be robust enough without a change to that?
Agreed, however without the PoW network I do not think it will be able to compete with the altcoins. It really would not have much going for it except for its distribution, which it will not be the only cryptocurrency with the same distribution as Bitcoin.@VeritasSapereI tend to agree when we talk about Bitcoin, but if you think about this, it's a Spin-Off, its going to be competition to Bitcoin.
It has the same distribution as bitcoin today, it has very few coins left for distributing, its effectively going to survive as an Altcoin if it doesn't supersede bitcoin.
The fundamentals remain the same, if anything like I said before, the situation becomes worse when ASIC's are developed because of the higher barrier to entry to develop chips for such an ASIC resistant algorithm. Leading to greater centralization of manufacturing which today is one of the greatest centralization pressures along with economies of scale.Long term its going to have better fundamentals if bitcoin does not reform its governance issues. the ASIC resistant here gives more time to resolve that issue. I see this as a bonus, but a risk too, if someone does develop an ASIC its going to centralize very fast so I like the idea of changing the algorithm every few years to prevent such an outcome.
I have heard this said before, but I do not see why that would be the case, anyone can mine altcoins today, the release of Satoshi's Bitcoin would not be any different, just another altcoin that can be mined, it is nothing new or special, except for it being the first genesis fork along with others, but that is the point it will still have to compete with the others.I think having a new algorithm will attract more miners.
With the exception of SHA256 being cracked I do not think that changing the PoW algorithm is part of the governance mechanism or as you say part of Bitcoins essentials.@VeritasSaperePoW is part of Bitcoins essentials but not the particular PoW algorithm used. PoS vs. PoW would be a reset and a change in principles, the change of PoW merely a parameter adjustment, definitely not
a reset. It has always been part of the design if SHA256 would have been cracked for example.
Now if we have to change the PoW algorithm in order to increase the blocksize, and it is clear that the economic majority sides with an increased blocksize then I would argue that this governance mechanism has failed. If we setup a Parliament or a congress, which are supposed to represent our interests. Similar to the miners, however miners are supposed to have a positive incentive acting upon them often unlike state democracies which can have perverted incentives.VeritasSapere said:Consensus is an emergent property which flows from the will of the economic majority. Proof of work is the best way to measure this consensus. The pools act as proxy for the miners, pools behave in a similar way to representatives within a representative democracy. Then in turn the miners act as a proxy for the economic majority. Since the miners are incentivized to follow the economic majority. In effect the economic majority rules Bitcoin, in other words the market rules Bitcoin. Bitcoin relies on the economic self-interest of the masses to govern consensus.
I do not think Bitcoins experiment in decentralized governance has failed yet, which is why I prefer not changing the PoW in a genesis fork. However since Satoshi's Bitcoin is determined to make this happen the next best thing we can do is release our alternative at the same time.In the second part you make wrong assumptions, 1. that Bitcoin failed and 2. that something like the current situation must happen again.
This is where I suppose we disagree, as I have just explained.1. If you see a fork by a PoW change as a part of Bitcoins methods to solve governance issues, Bitcoin hasn't failed yet. It is just at a critical point.
I think you are setting a bad precedent here, especially considering that a genesis fork with the same PoW can achieve the same thing while maintaining all of that value in the PoW network.As I said before, if you change the PoW to make current mining hardware (worth millions) worthless and succeed, you set a precedence, that future miners are always in fear of losing their investments if the act against the wishes of users.
I think ASIC ressistance might even be detrimental as I have already explain, if you really do want to change the PoW I would seriously consider @freetrader's suggestion to simply invert SHA256 instead.This is why I don't think an asic resistant PoW is necessary (although I think it would be a nice addon) at all. You just have to make the current generation of asics worthless. Some advantage for asics might be desirable actually.
I think many Bitcoiners might just need to accept that they need to diversify into the altcoins if they want to stay ahead in their investments. The distribution of the genesis fork is the only advantage it has, in almost every other way Bitcoin is a dinosaur compared to most altcoins. The only two big advantages Bitcoin has now is both in its network effect of mining and users. Satoshi's Bitcoin would lose one of those advantages yet the project that is being run in parallel to it that will not change the PoW algorithm would not lose this important advantage.A genesis fork will already have a huge advantage over altcoins, all Bitcoin users/holders are potentially users/holders of your fork. ATM all altcoins are competition to your bitcoin holdings, if you aren't equally diversified. Apart from the current governance issues I think that genesis forks should be the way to create new altcoins with new features. You have the chance to get Bitcoiners on board, and if your fork is traded somehow, you have the chance to get new people into your fork if it isn't priced at a high level from the start.
This is a good point which is why a genesis fork that has changed the PoW algorithm is much more vulnerable from this type of attack from outside forces. A highly ASIC resistant algorithm is even more problematic considering that it would require a high degree of technological sophistication to even develop the first generation of ASIC's which could even be carried out in secret by an outside force in order to attack the network, having ASIC's already highly distributed and available makes a genesis fork much more resilient against such an attack.Just now, we are seeing that the current generation of the guys, who should secure the network, are actually endangering the network and peoples holdings. By the way, I think some ASIC advantage in PoW might very well be important, so people with a lot of common computing power (NSA etc.) don't have a chance to undermine your coin.
Your argument is flawed, especially considering that they can do the exact same thing with Satoshi's Bitcoin, if we assume they have the same value then it would cost the same amount to attack both chains. It does not make any difference whether ASICS or consumer hardware is used, both are available for hire. I would like to see them try though, they would burn their VC money much quicker that way, weakening BlockStream, while both genesis forks would survive such an attack as long as the believe of its participants is strong enough.For your believe, that a Bitcoin fork with the same PoW might coexist:
Assume we fork away from Bitcoin with some success, let's say the coin is traded at some exchanges
and the new chain B has about 5% of the hashpower of the main chain A. What hinders Blockstream to take some of their VC money and pay a A chain miner from time to time to mess up chain B? They will never let a coin coexist if they can prevent it.
When it comes to BlockStream funding attacks on alternative chains, I do not see how the particular PoW that is used is even relevant. If what you where saying where true then they should be attacking Ethereum right now, yet nobody is attacking the Ethereum network right now. Considering that Ethereum certainly is a danger to Blockstream by being a competitor to Bitcoin, just like any genesis fork would be as well.Your argument, that Altcoins with the same PoW coexist is a weak argument b/c none of these altcoins are any danger to Blockstream at the moment. If they were, they were eaten by tomorrow.
I find this to be a peculiar statement, I have been running a mining operation with several GPU rigs for over a year now, there is plenty of opportunity for mining especially since the introduction of Ethereum which is presently very profitable to mine. I do not see how having another alternative cryptocurrency with the same distribution makes any difference in terms of mining. It might motivate some people because of ideology but it does not change the economics in any fundamental way.Furthermore, I think a change in PoW which would give hobbyists a chance to mine for some time, would lead to quicker adaption of the new chain.
In the case of VertCoin the community and developers decide, which I agree is not a decentralized or automated solution, though it is not that different compared to what Satoshi's Bitcoin is doing here however. Agreed this is probably the wrong thread for that discussion. Ask me about VertCoin in my altcoin thread and we can discuss that more in there.Who defines when "an asic is developed" is true? But anyways, this should be another topic imho
EDIT: f..ck me, I'm mining! (minerd was falling back to getwork due to missing coinbase-addr, retried with coinbase-addr, now it's mining)Unrecognized block version: 5
Interesting: When 402381 (sha) was just relayed, a couple of nodes got kicked for misbehaving.2016-03-12 20:43:03 ERROR: CheckProofOfWork(): hash doesn't match nBits
2016-03-12 20:43:03 ERROR: CheckBlockHeader(): proof of work failed
2016-03-12 20:43:03 ERROR: ProcessNewBlock: CheckBlock FAILED
I guess this is the expected behaviour? Not all nodes got kicked.2016-03-12 20:43:26 ERROR: ContextualCheckBlockHeader: incorrect proof of work of 1806f0a8 should be 1f7fffff
2016-03-12 20:43:26 Misbehaving: 121.44.249.97:8333 (0 -> 100) BAN THRESHOLD EXCEEDED
2016-03-12 20:43:26 ERROR: invalid header received
There were several updates throughout the code needed to make this work. Github has a compare option that lets you see the differences from Classic. It is a fairly straightforward project but still required a bit of work.did you make any code changes except setting subver to
/SatoshisBitcoinFullFork_Trial_2_At402421:0.11.2/
the github is still an older version it seems.
are you sure? I had "addnode=52.32.128.29:8333" and 5 others of your nodes in my configfile all along and "bitcoin-cli getpeerinfo" reports those 6 and 5 others (satoshi 0.11 ones):@molecular none are connected to your node
Please look for nil.0x0000.de:8334 (188.40.93.205:8334) in your peer lists, looks to me I should be there.satoshi@nil:~$ bitcoin-cli getpeerinfo | grep addr\"
"addr" : "52.32.128.29:8333",
"addr" : "52.36.121.43:8333",
"addr" : "52.32.87.19:8333",
"addr" : "52.26.44.93:8333",
"addr" : "52.11.81.14:8333",
"addr" : "52.37.17.214:8333",
"addr" : "52.24.121.109:59974",
"addr" : "129.13.252.36:39243",
"addr" : "129.13.252.47:46086",
"addr" : "148.251.249.69:51982",
"addr" : "[2a01:4f8:202:81b1::2]:18638",
Oh, and I also mined a couple of blocks:2016-03-13 07:31:44 BitcoinMiner 0: hashPrevBlock - 00495997066246e40621c7b52cb4e12f1f904205c5c589d6b16b6725970289f0
maybe this wasn't planned (me mining) and that's why we're on the fast side? (how is difficulty set in the beginning?)satoshi@nil:~$ bitcoin-cli listtransactions | grep blockhash
"blockhash" : "0074c2ec6da5bb088cd2bfdcb44dc7ab5f1a06a9a05fa123b7ed9ce1b2f393a0",
"blockhash" : "00532ac10998fa20c1aa8c3092dcc4d38a30734d6165b3b6aa53d818d5cd29b6",
"blockhash" : "003c57cad1413f314dfdea5d96d00fbf63cbe71eeb7f452e28899c3b660465e1",
"blockhash" : "0043afa5119fa5c39d44cba370c7919d3a8e78d31b47d2c00894df59d36f3a68",
"blockhash" : "000154dc3b182a287cd9d18d606a6392eae8e2ac4ecbffe143fa3639d6dc01a0",
"blockhash" : "0009682669a9fe4d0925e56392d2f6d524242fea036a625bc7568d714e30b9c9",
"blockhash" : "0037302e0f9a788258e299fd7d40ccab5a846595fc6dc2233df011fb967af4b4",
"blockhash" : "0016e1bbe6a56ff332d81c455ccd2a6a6e097d4c6cdb8aabc8e4eb707a2fb9fd",
"blockhash" : "0019b8991f86cfe8d184c553bb370195abf9b3e948f04aa88107c0ca5bcb5e2b",
"blockhash" : "00537fb0ed3832460a5850947874909d8793234418cbdb93f3b70746016937a6",
It's all looking good and it feels GREAT to take the power back and be a bitcoin miner again."errors" : "WARNING: abnormally high number of blocks generated, 48 blocks received in the last 4 hours (24 expected)"
Yes, I looked at your changes (roughly).There were several updates throughout the code needed to make this work. Github has a compare option that lets you see the differences from Classic. It is a fairly straightforward project but still required a bit of work.
https://github.com/bitcoinclassic/bitcoinclassic/compare/0.11.2...satoshisbitcoin:0.11.2
It's a "spinoff". We'll fork at a certain height and everyone will have the coins he had at that point on the old bitcoin chain, even when he joins years later (with caveats because I'm assuming transactions are going to be compatible and probably selectively broadcast cross-chain, but that's a whole other topic)Do you guys intend to brand this as an independent currency or a version of Bitcoin? The answer will determine the best way to promote it.
Does "hard fork" in this case mean that people start with empty wallets or do they keep their current coins and only newly mined coins will be incompatible with current implementations?
Yes, we are connected and mining together. Your node is not attached to the couple I checked but is connected to some of the others. This also means that mined blocks are successfully being passed around the new partitioned P2P network, as all of my nodes received your mined blocks even if they were not directly connected.are you sure? I had "addnode=52.32.128.29:8333" and 5 others of your nodes in my configfile all along and "bitcoin-cli getpeerinfo" reports those 6 and 5 others (satoshi 0.11 ones):
Please look for nil.0x0000.de:8334 (188.40.93.205:8334) in your peer lists, looks to me I should be there.
The minimum difficulty was reset to 1-out-of-256 hashes (SHA256 minimum difficulty is 2^32 which would take years with the new POW). At the fork block difficulty is reset one time to this minimum level. It will run here until the next difficulty adjustment and then start to auto adjust. In prior tests this worked fine and I saw the difficulty start to go up.maybe this wasn't planned (me mining) and that's why we're on the fast side? (how is difficulty set in the beginning?)
Thanks so much for compiling, running a node and joining this test, I wasn't expecting anyone to join this test and it is great everything worked so well. Your joining and showing that the new network works validates the approach.It's all looking good and it feels GREAT to take the power back and be a bitcoin miner again.
Nakamoto consensus ftw!!
Exactly what @molecular said. All of your coins from the fork point will be on the new chain. Everything comes over. After the fork point the two branches will start to diverge. What you also get is a chance to mine coins on your home computer again.Do you guys intend to brand this as an independent currency or a version of Bitcoin? The answer will determine the best way to promote it.
Does "hard fork" in this case mean that people start with empty wallets or do they keep their current coins and only newly mined coins will be incompatible with current implementations?
I (think) the only two changes from the github repo were the subver and the block height to fork, everything else should have been the same.Yes, I looked at your changes (roughly).
I was asking about additional changes you hadn't pushed to github yet for test #2. At least the subver was bumped and that's not reflected on github, so I was wondering if you had done anything apart from that and the fork height.
yay!Yes, we are connected and mining together.
I calculate about (5*60.0) / (402493 - 402421) = 4.16 minutes/block. But some timestamp might be off by an hour. In that ballpark anyways.Since we are running at it seems one block every 3 minutes on average
So I found 29 proofs of work. 7 of the resulting blocks were detected as stale right away (a new block must've arrived from your nodes in the meantime?), but in the end only 10 made it into the longest chain?satoshi@nil:~/.bitcoin$ cat debug.log | grep "Proof-Of-Work Found" | nl | tail -n 1
29 2016-03-13 08:37:10 BitcoinMiner 0: Proof-Of-Work Found!!
satoshi@nil:~/.bitcoin$ cat debug.log | grep "ERROR: BitcoinMiner: generated block is stale" | nl | tail -n 1
7 2016-03-13 08:23:41 ERROR: BitcoinMiner: generated block is stale
satoshi@nil:~/.bitcoin$ bitcoin-cli listtransactions | grep amount | nl | tail -n 1
10 "amount" : 25.02482456,