Bitcoin Forum
November 15, 2024, 10:17:31 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Version control  (Read 421 times)
Podey (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
July 23, 2013, 06:57:22 PM
 #1

Reading the docs I ran into a couple of mentions of problems with introducing new features or changing behavior, with the fear being that varying behavior in clients could cause a fork in the chain.

As I understand it, the fear is justified because of the presumption that two different versions of the software would implement different behavior.
I suggest that this could be remedied by identifying the behavior and hiding it behind an interface. One can then isolate the two conflicting behaviors in different derived classes, and keep running the old behavior in the new version of the client until it detects that more than 1/2 (or 2/3) of clients are running the new sw. The new behavior can then be activated by switching over to the other derived class.

If nobody has the energy to implement a function which keeps a tally of clients versions throughout the network, the switchover could be done manually. E.g. add a check for version number in peers' clients, and if any of them are less than 0.8.6., keep running the old class. If all peers' are 0.8.6 or over, switch over to the new class. Then update to 0.8.4 with the changes and wait until more than half the clients have upgraded. Then upgrade to 0.8.6., in which case the change kicks in all the clients.


 
 
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!