forked from cerc-io/ipld-eth-server
Initialize RPC client to connect with a remote Nitro node
This commit is contained in:
+54
-31
@@ -69,6 +69,8 @@ func serve() {
|
||||
logWithCommand.Infof("ipld-eth-server version: %s", v.VersionWithMeta)
|
||||
|
||||
wg := new(sync.WaitGroup)
|
||||
defer wg.Wait()
|
||||
|
||||
serverConfig, err := s.NewConfig()
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
@@ -90,20 +92,60 @@ func serve() {
|
||||
|
||||
server.Serve(wg)
|
||||
|
||||
nitroNode, err := initializeNitroNode(serverConfig.Nitro)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
// TODO: Read from config file
|
||||
runNitroInProcess := false
|
||||
nitroEndpoint := "127.0.0.1:4005/api/v1"
|
||||
var voucherValidator paymentsmanager.VoucherValidator
|
||||
|
||||
if runNitroInProcess {
|
||||
log.Info("Running an in-process Nitro node")
|
||||
|
||||
nitroNode, err := initializeNitroNode(serverConfig.Nitro)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
|
||||
pm, err := paymentsmanager.NewPaymentsManager(nitroNode)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
pm.Start(wg)
|
||||
defer pm.Stop()
|
||||
|
||||
// TODO: Read from config file
|
||||
rpcPort := 4005
|
||||
tlsCertFilepath := "./nitroTLS/statechannels.org.pem"
|
||||
tlsKeyFilepath := "./nitroTLS/statechannels.org_key.pem"
|
||||
|
||||
cert, err := tls.LoadX509KeyPair(tlsCertFilepath, tlsKeyFilepath)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
|
||||
nitroRpcServer, err := initializeNitroRpcServer(nitroNode, pm, &cert, rpcPort)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
defer nitroRpcServer.Close()
|
||||
|
||||
voucherValidator = paymentsmanager.InProcessVoucherValidator{PaymentsManager: pm}
|
||||
} else {
|
||||
log.Info("Connecting to a remote Nitro node")
|
||||
|
||||
clientConnection, err := nitroHttpTransport.NewHttpTransportAsClient(nitroEndpoint, 10*time.Millisecond)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
|
||||
nitroRpcClient, err := nitroRpc.NewRpcClient(clientConnection)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
defer nitroRpcClient.Close()
|
||||
|
||||
voucherValidator = nitroRpc.RemoteVoucherValidator{Client: nitroRpcClient}
|
||||
}
|
||||
|
||||
pm, err := paymentsmanager.NewPaymentsManager(nitroNode)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
|
||||
pm.Start(wg)
|
||||
|
||||
voucherValidator := paymentsmanager.InProcessVoucherValidator{PaymentsManager: pm}
|
||||
|
||||
// TODO: Read from config file
|
||||
queryRates := map[string]*big.Int{
|
||||
"eth_getBlockByNumber": big.NewInt(50),
|
||||
@@ -112,21 +154,6 @@ func serve() {
|
||||
"eth_getLogs": big.NewInt(50),
|
||||
}
|
||||
|
||||
// TODO: Read from config file
|
||||
rpcPort := 4005
|
||||
tlsCertFilepath := "./nitroTLS/statechannels.org.pem"
|
||||
tlsKeyFilepath := "./nitroTLS/statechannels.org_key.pem"
|
||||
|
||||
cert, err := tls.LoadX509KeyPair(tlsCertFilepath, tlsKeyFilepath)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
nitroRpcServer, err := initializeNitroRpcServer(nitroNode, pm, &cert, rpcPort)
|
||||
if err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
|
||||
if err := startServers(server, serverConfig, voucherValidator, queryRates); err != nil {
|
||||
logWithCommand.Fatal(err)
|
||||
}
|
||||
@@ -154,10 +181,6 @@ func serve() {
|
||||
graphQL.Stop()
|
||||
}
|
||||
server.Stop()
|
||||
pm.Stop()
|
||||
nitroRpcServer.Close()
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
// TODO: Absorb voucherValidator and queryRates args into existing ones
|
||||
|
||||
Reference in New Issue
Block a user