Även om man forkar block chain:en måste man väl behålla datan för alla tidigare transaktioner? Annars kommer ju folks bitcoins försvinna. Så jag förstår inte hur en fork skulle lösa problemet med filstorleken.
En hard fork representerer en splitting av block chain fra en gitt block - det vil si at block chainene fremdeles vil være like opp til det punktet splitten skjer.
Vi har allerede vært igjennom minst en hard fork, nå senest i mars. En bug i bitcoinklienten versjon 0.7 gjorde blokker ble avvist av versjon 0.7 men godtatt av versjon 0.8. Da hadde man to block chains samtidig, en "0.7" og en "0.8". Dette ble løst ved at miners fokuserte på 0.7-kjeden slik at 0.8-kjeden etterhvert "døde ut".
Transaksjoner før denne splitten ble ikke berørt, men i perioden mens block chainen var splittet ble det anmodet om ikke å gjennomføre transaksjoner pga økt risiko for double spend (1 double spend ble da også registrert).
Angående max_block_size. Dersom utviklerne slipper en ny klient der max_block-size er satt til 10 mb i stedet for 1 mb som nå vil minere som bruker den nye klienten etterhvert begynne å produsere blokker som er større enn 1 mb. Disse blokkene vil ikke godtas av tidligere klienter, da de kun godtar blokker mindre enn 1 mb. Den nye klienten vil godta alle blokker som er mindre enn 10 mb.
Dermed har man en hard fork, med to ulike block chains som opererer uavhengig av hverandre.
Poenget da er at dette må være koordinert på forhånd slik at en unngår å komme i en situasjon med 2 block chains samtidig.
Dette kan for eksempel gjøres slik:
1) Utviklerne slipper en ny klient der max_block_size fremdeles er 1 mb. Imidlertid: F.o.m. block nummer ett-eller-annet (f.eks. et halvt år frem i tid) vil denne klienten godta blokker opp til 10 mb.
2) Stort sett alle bitcoinere (inkludert minere) oppgraderer til denne nye klienten innen den angitte blokken der klienten begynner å godta 10 mb store blokker.
3) En har da økt max_block_size uten en større hard fork. Brukere som ikke har oppgradert i tide vil bli "forlatt" og må oppgradere eller fortsette på sin block chain (som da etter planen skal være svært liten og ubetydelig) , mens resten av nettverket fortsetter på block chain med max_block_size 10 mb.
MERK: Dette er kun slik jeg har forstått det og denne beskrivelsen kan inneholde feil. Jeg har forsøkt å beskrive det så forståelig som mulig men usikker på om jeg lyktes med det.
Rundt om i forumet finnes det mange gode diskusjoner omkring dette.