Merge pull request #78 from yifan-gu/proj3

Proj3
Merge pull request #80 from yifan-gu/proj3

fix
WIP

add return instanceID
add enable/disable batching
todo: change propose to accept a group of commands instead of one
todo: add committed and executed in instance
feat (propose, CommittedNotify, ExecutedNotify)

add list argument to propose()
add CommittedNotify, ExecutedNotify
chore(demo)

enable pure flags
chore(rename data to message)
Merge pull request #81 from yifan-gu/propose

Propose
chore

1, move things from data to message
2, add From in messages
3, export fields in ballot
4, use gob to unmarshal
5, move transporters to transporter
Merge pull request #82 from yifan-gu/transport

Transport
fix

 fix fast quorum
 fix dependency clone
 fix From in prepareReply
chore(livetest)

pass nonconflict, 2 conflicts, 3 conflicts
TODO: timeout test
TODO: execution test, (I found that execution is very slow)
Merge pull request #83 from yifan-gu/transport

fix
fix (demo, udp_transporter)

fix All in udp_transporter
wait a few seconds before starting the demo, to avoid connection error
Merge pull request #85 from yifan-gu/transport

fix (demo)
WIP (persistent)

add simple interfaces for persistent, using leveldb
TODO: sync instance tomorrow
Merge pull request #86 from yifan-gu/persistent

WIP (persistent)
WIP

add Pack, Unpack for instance
wip

finish marshal/unmarshal single instance
finish marshal group of instances
feat persistent store

finish simple persistent storage module for replica
fix

fix udp encoder/decoder
TODO: change to TCP later