2016-02-07 22:54:49 -08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"flag"
|
|
|
|
|
2017-01-14 20:42:47 -08:00
|
|
|
"github.com/tendermint/abci/server"
|
2016-02-16 12:29:54 -08:00
|
|
|
"github.com/tendermint/basecoin/app"
|
2017-01-28 09:29:32 -08:00
|
|
|
cmn "github.com/tendermint/go-common"
|
2016-02-07 22:54:49 -08:00
|
|
|
eyes "github.com/tendermint/merkleeyes/client"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2017-01-12 12:25:04 -08:00
|
|
|
addrPtr := flag.String("address", "tcp://0.0.0.0:46658", "Listen address")
|
2016-03-28 09:42:02 -07:00
|
|
|
eyesPtr := flag.String("eyes", "local", "MerkleEyes address, or 'local' for embedded")
|
2017-01-28 09:29:32 -08:00
|
|
|
eyesDBNamePtr := flag.String("eyes-db-name", "local.db", "MerkleEyes db name, for embedded")
|
|
|
|
eyesCacheSizePtr := flag.Int("eyes-cache-size", 10000, "MerkleEyes db cache size, for embedded")
|
2016-03-22 15:44:58 -07:00
|
|
|
genFilePath := flag.String("genesis", "", "Genesis file, if any")
|
2016-02-07 22:54:49 -08:00
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
// Connect to MerkleEyes
|
2017-01-28 09:29:32 -08:00
|
|
|
var eyesCli *eyes.Client
|
|
|
|
if *eyesPtr == "local" {
|
|
|
|
eyesCli = eyes.NewLocalClient(*eyesDBNamePtr, *eyesCacheSizePtr)
|
|
|
|
} else {
|
|
|
|
var err error
|
|
|
|
eyesCli, err = eyes.NewClient(*eyesPtr)
|
|
|
|
if err != nil {
|
|
|
|
cmn.Exit("connect to MerkleEyes: " + err.Error())
|
|
|
|
}
|
2016-02-07 22:54:49 -08:00
|
|
|
}
|
|
|
|
|
2016-02-16 12:29:54 -08:00
|
|
|
// Create Basecoin app
|
|
|
|
app := app.NewBasecoin(eyesCli)
|
2016-02-07 22:54:49 -08:00
|
|
|
|
2016-03-22 15:44:58 -07:00
|
|
|
// If genesis file was specified, set key-value options
|
|
|
|
if *genFilePath != "" {
|
2017-01-28 09:29:32 -08:00
|
|
|
err := app.LoadGenesis(*genFilePath)
|
|
|
|
if err != nil {
|
|
|
|
cmn.Exit(cmn.Fmt("%+v", err))
|
2016-03-22 15:44:58 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-11 21:07:56 -08:00
|
|
|
// Start the listener
|
2017-01-12 12:25:04 -08:00
|
|
|
svr, err := server.NewServer(*addrPtr, "socket", app)
|
|
|
|
if err != nil {
|
2017-01-28 09:29:32 -08:00
|
|
|
cmn.Exit("create listener: " + err.Error())
|
2017-01-12 12:25:04 -08:00
|
|
|
}
|
2017-01-11 21:07:56 -08:00
|
|
|
|
2016-02-07 22:54:49 -08:00
|
|
|
// Wait forever
|
2017-01-28 09:29:32 -08:00
|
|
|
cmn.TrapSignal(func() {
|
2016-02-07 22:54:49 -08:00
|
|
|
// Cleanup
|
2017-01-12 12:25:04 -08:00
|
|
|
svr.Stop()
|
2016-02-07 22:54:49 -08:00
|
|
|
})
|
|
|
|
|
|
|
|
}
|