Skip to content

Commit

Permalink
saving work
Browse files Browse the repository at this point in the history
  • Loading branch information
firelizzard18 committed Sep 4, 2024
1 parent 49cdbd8 commit 75e0f3e
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 27 deletions.
16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,22 @@
"${workspaceFolder}/.nodes/devnet/bootstrap",
]
},
{
"name": "Run faucet",
"presentation": {
"group": "20-Run"
},
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/cmd/accumulated-faucet",
"args": [
"Kermit",
"--account=acc://7a6f9db5789710a6b27e0c5965e337d8fc7431075290434d/ACME",
"--key=${workspaceFolder}/.nodes/faucet/key",
"--node-key=seed:foo",
]
},
// Services
{
"name": "API (mainnet)",
Expand Down
9 changes: 6 additions & 3 deletions cmd/accumulated-bootstrap/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ var flag = struct {
External multiaddr.Multiaddr
}{
Key: PrivateKeyFlag{Value: &TransientPrivateKey{}},
PromListen: []multiaddr.Multiaddr{
multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http"),
},
}

func init() {
Expand All @@ -46,6 +43,12 @@ func init() {
cmd.Flags().Var((*MultiaddrSliceFlag)(&flag.PromListen), "prom-listen", "Prometheus listening address(es) (default /ip4/0.0.0.0/tcp/8081/http)")
cmd.Flags().VarP((*MultiaddrSliceFlag)(&flag.Peers), "peer", "p", "Peers to connect to")
cmd.Flags().Var(MultiaddrFlag{Value: &flag.External}, "external", "External address to advertize")

cmd.PersistentPreRun = func(cmd *cobra.Command, args []string) {
if !cmd.Flag("prom-listen").Changed {
flag.PromListen = []multiaddr.Multiaddr{multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http")}
}
}
}

func run(*cobra.Command, []string) {
Expand Down
52 changes: 35 additions & 17 deletions cmd/accumulated-faucet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ package main
import (
"context"
"log/slog"
"os/user"
"path/filepath"

"github.com/multiformats/go-multiaddr"
"github.com/spf13/cobra"
Expand All @@ -30,32 +32,46 @@ var cmd = &cobra.Command{
}

var flag = struct {
NodeKey PrivateKeyFlag
Key PrivateKeyFlag
LogLevel string
Account UrlFlag
Listen []multiaddr.Multiaddr
PromListen []multiaddr.Multiaddr
Peers []multiaddr.Multiaddr
}{
PromListen: []multiaddr.Multiaddr{
multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http"),
},
}
NodeKey PrivateKeyFlag
Key PrivateKeyFlag
LogLevel string
Account UrlFlag
Listen []multiaddr.Multiaddr
PromListen []multiaddr.Multiaddr
Peers []multiaddr.Multiaddr
PeerDatabase string
}{}

var cu = func() *user.User {
cu, _ := user.Current()
return cu
}()

func init() {
flag.Key.Value = &TransientPrivateKey{}
flag.Peers = accumulate.BootstrapServers

if cu != nil {
flag.PeerDatabase = filepath.Join(cu.HomeDir, ".accumulate", "cache", "peerdb.json")
}

cmd.Flags().Var(&flag.NodeKey, "node-key", "The node key - not required but highly recommended. The value can be a key or a file containing a key. The key must be hex, base64, or an Accumulate secret key address.")
cmd.Flags().Var(&flag.Key, "key", "The key used to sign faucet transactions")
cmd.Flags().Var(&flag.Account, "account", "The faucet account")
cmd.Flags().Var((*MultiaddrSliceFlag)(&flag.Listen), "listen", "P2P listening address(es)")
cmd.Flags().Var((*MultiaddrSliceFlag)(&flag.PromListen), "prom-listen", "Prometheus listening address(es) (default /ip4/0.0.0.0/tcp/8081/http)")
cmd.Flags().VarP((*MultiaddrSliceFlag)(&flag.Peers), "peer", "p", "Peers to connect to")
cmd.Flags().StringVar(&flag.PeerDatabase, "peer-db", flag.PeerDatabase, "Track peers using a persistent database.")
cmd.Flags().StringVar(&flag.LogLevel, "log-level", "error", "Log level")

_ = cmd.MarkFlagRequired("peer")
cmd.PersistentPreRun = func(cmd *cobra.Command, args []string) {
if !cmd.Flag("prom-listen").Changed {
flag.PromListen = []multiaddr.Multiaddr{multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http")}
}
if !cmd.Flag("peer").Changed {
flag.Peers = accumulate.BootstrapServers
}
}

_ = cmd.MarkFlagRequired("account")
_ = cmd.MarkFlagRequired("key")
}
Expand All @@ -79,9 +95,11 @@ func run(_ *cobra.Command, args []string) {
},
},
P2P: &P2P{
Key: flag.NodeKey.Value,
Listen: flag.Listen,
BootstrapPeers: flag.Peers,
Key: flag.NodeKey.Value,
Listen: flag.Listen,
BootstrapPeers: flag.Peers,
PeerDB: &flag.PeerDatabase,
EnablePeerTracking: true,
},
Services: []Service{svcCfg},
}
Expand Down
16 changes: 10 additions & 6 deletions cmd/accumulated-http/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,7 @@ var flag = struct {
TlsKey string
PeerDatabase string
Pprof string
}{
PromListen: []multiaddr.Multiaddr{
multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http"),
},
}
}{}

var cu = func() *user.User {
cu, _ := user.Current()
Expand All @@ -67,7 +63,6 @@ var cu = func() *user.User {

func init() {
flag.Key.Value = &TransientPrivateKey{}
flag.Peers = accumulate.BootstrapServers

if cu != nil {
flag.PeerDatabase = filepath.Join(cu.HomeDir, ".accumulate", "cache", "peerdb.json")
Expand All @@ -88,6 +83,15 @@ func init() {
cmd.Flags().StringVar(&flag.PeerDatabase, "peer-db", flag.PeerDatabase, "Track peers using a persistent database.")
cmd.Flags().BoolVar(&jsonrpc2.DebugMethodFunc, "debug", false, "Print out a stack trace if an API method fails")
cmd.Flags().StringVar(&flag.Pprof, "pprof", "", "Address to run net/http/pprof on")

cmd.PersistentPreRun = func(cmd *cobra.Command, args []string) {
if !cmd.Flag("prom-listen").Changed {
flag.PromListen = []multiaddr.Multiaddr{multiaddr.StringCast("/ip4/0.0.0.0/tcp/8081/http")}
}
if !cmd.Flag("peer").Changed {
flag.Peers = accumulate.BootstrapServers
}
}
}

func run(cmd *cobra.Command, args []string) {
Expand Down
6 changes: 5 additions & 1 deletion cmd/accumulated/run/faucet.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@ func (f *FaucetService) start(inst *Instance) error {
go func() {
if r, ok := router.(*routing.RouterInstance); ok {
inst.logger.Info("Waiting for router", "module", "run", "service", "faucet")
<-r.Ready()
if !<-r.Ready() {
inst.logger.Error("Failed to start faucet", "error", "unable to start router")
inst.Stop()
return
}
}

for {
Expand Down

0 comments on commit 75e0f3e

Please sign in to comment.