2013-12-26 03:45:52 -08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2013-12-29 14:53:20 -08:00
|
|
|
"os"
|
|
|
|
"os/signal"
|
2013-12-26 03:45:52 -08:00
|
|
|
)
|
|
|
|
|
2013-12-31 18:07:49 -08:00
|
|
|
const Debug = true
|
2013-12-28 06:18:23 -08:00
|
|
|
|
2013-12-29 14:53:20 -08:00
|
|
|
// Register interrupt handlers so we can stop the server
|
|
|
|
func RegisterInterupts(s *Server) {
|
|
|
|
// Buffered chan of one is enough
|
|
|
|
c := make(chan os.Signal, 1)
|
|
|
|
// Notify about interrupts for now
|
|
|
|
signal.Notify(c, os.Interrupt)
|
|
|
|
go func() {
|
|
|
|
for sig := range c {
|
|
|
|
fmt.Println("Shutting down (%v) ... \n", sig)
|
|
|
|
|
|
|
|
s.Stop()
|
|
|
|
}
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
|
2013-12-26 03:45:52 -08:00
|
|
|
func main() {
|
|
|
|
InitFees()
|
|
|
|
|
|
|
|
bm := NewBlockManager()
|
|
|
|
|
2013-12-27 17:24:16 -08:00
|
|
|
tx := NewTransaction("\x00", 20, []string{
|
2013-12-26 03:45:52 -08:00
|
|
|
"SET 10 6",
|
|
|
|
"LD 10 10",
|
|
|
|
"LT 10 1 20",
|
|
|
|
"SET 255 7",
|
|
|
|
"JMPI 20 255",
|
|
|
|
"STOP",
|
|
|
|
"SET 30 200",
|
|
|
|
"LD 30 31",
|
|
|
|
"SET 255 22",
|
|
|
|
"JMPI 31 255",
|
|
|
|
"SET 255 15",
|
|
|
|
"JMP 255",
|
|
|
|
})
|
2013-12-27 17:24:16 -08:00
|
|
|
txData := tx.MarshalRlp()
|
|
|
|
|
|
|
|
copyTx := &Transaction{}
|
|
|
|
copyTx.UnmarshalRlp(txData)
|
|
|
|
|
|
|
|
tx2 := NewTransaction("\x00", 20, []string{"SET 10 6", "LD 10 10"})
|
2013-12-26 03:45:52 -08:00
|
|
|
|
2013-12-29 14:53:20 -08:00
|
|
|
blck := CreateBlock([]*Transaction{tx2, tx})
|
2013-12-26 03:45:52 -08:00
|
|
|
|
|
|
|
bm.ProcessBlock( blck )
|
|
|
|
|
2013-12-29 14:53:20 -08:00
|
|
|
fmt.Println("GenesisBlock:", GenisisBlock, "hashed", GenisisBlock.Hash())
|
2013-12-26 03:45:52 -08:00
|
|
|
}
|