node object with start function

This commit is contained in:
Daniel Whitenack 2016-06-20 10:21:45 -05:00
parent 1422ee9cb2
commit 7399ea5b83
3 changed files with 40 additions and 7 deletions

View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"errors"
"fmt" "fmt"
"github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/accounts"
@ -28,3 +29,15 @@ func createAccount(password, keydir string) error {
return nil return nil
} }
func createAndStartNode(datadir string) error {
currentNode := MakeNode(datadir)
if currentNode != nil {
StartNode(currentNode)
return nil
}
return errors.New("Could not create the in-memory node object")
}

View File

@ -16,3 +16,14 @@ func doCreateAccount(password, keydir *C.char) C.int {
} }
return 0 return 0
} }
// export doStartNode
func doStartNode(datadir *C.char) C.int {
// This starts a geth node with the given datadir
if err := createAndStartNode(C.GoString(datadir)); err != nil {
fmt.Fprintln(os.Stderr, err)
return -1
}
return 0
}

View File

@ -33,18 +33,21 @@ var (
c *cli.Context c *cli.Context
) )
func init() { func main() {
// Placeholder for anything we want to run by default
fmt.Println("You are running statusgo!")
}
func MakeNode(datadir string) *node.Node {
set := flag.NewFlagSet("test", 0) set := flag.NewFlagSet("test", 0)
set.Bool("shh", true, "whisper") set.Bool("shh", true, "whisper")
set.Bool("noeth", true, "disable eth") set.Bool("noeth", true, "disable eth")
set.String("datadir", ".ethereum", "data directory for geth") set.String("datadir", datadir, "data directory for geth")
c = cli.NewContext(nil, set, nil) c = cli.NewContext(nil, set, nil)
}
func main() {
// Construct the textual version string from the individual components // Construct the textual version string from the individual components
vString = fmt.Sprintf("%d.%d.%d", versionMajor, versionMinor, versionPatch) vString = fmt.Sprintf("%d.%d.%d", versionMajor, versionMinor, versionPatch)
@ -56,7 +59,13 @@ func main() {
rConfig.Patch = uint32(versionPatch) rConfig.Patch = uint32(versionPatch)
currentNode = utils.MakeSystemNode(clientIdentifier, vString, rConfig, makeDefaultExtra(), c) currentNode = utils.MakeSystemNode(clientIdentifier, vString, rConfig, makeDefaultExtra(), c)
fmt.Println(currentNode) return currentNode
}
func StartNode(currentNode *node.Node) {
utils.StartNode(currentNode)
currentNode.Wait()
} }
func makeDefaultExtra() []byte { func makeDefaultExtra() []byte {