Siacoin/Sia — pull request #62 by DavidVorick (2014-04-09 08:34:22+00:00)
Title: Replace old swarm model with new quorum model

Initially, that's all that I had wanted to do. However, that required a lot of restructuring, and I got quite disorganized in my attempts to clean things up.

The code itself is clean, though perhaps over commented. The testing for the consensus algorithm is still incomplete, but very basic tests are in place.

A list of changes:

+ change Makefile to call fmt any time that it calls libraries
+ add test-verbose, test-long, and test-verbose-long to Makefile
+ have travis ci call `make test-long-verbose`
+ change constants from ALLCAPS to CamelCase (this seems to be the go way)
+ change the typing system for the crypto libraries - all types are now byte arrays
+ test the go crypto constants against the libsodium crypto constants
+ add signing and verification to the crypto libraries
+ add testing for the signing and verification libraries
+ switch erasure_test.go to using it's own functions - soon it will be using the crypto libraries
+ delete a ton of unused code (mostly needed by the now replaced threephase model)
+ change 'NetworkMessage' to 'Message'
+ create a new State struct, complete with participants and heartbeat maps
+ add CreateState() function, which initializes a new State object
+ add AddParticipant() function, which adds a new participant to the State object
+ convert some of wallets.go to maintain compatibility

All in all, about 800 additions and 1300 deletions... ouch. Really sorry about this. Next time I'll try to keep it split into smaller steps.