Moved rpcchainvm logs to live under their chain

This commit is contained in:
StephenButtolph 2020-06-08 11:53:55 -04:00
parent acd44dacb8
commit c86838f2e8
15 changed files with 81 additions and 74 deletions

View File

@ -204,49 +204,6 @@ func (m *manager) ForceCreateChain(chain ChainParameters) {
return
}
// Get a factory for the vm we want to use on our chain
vmFactory, err := m.vmManager.GetVMFactory(vmID)
if err != nil {
m.log.Error("error while getting vmFactory: %s", err)
return
}
// Create the chain
vm, err := vmFactory.New()
if err != nil {
m.log.Error("error while creating vm: %s", err)
return
}
// TODO: Shutdown VM if an error occurs
fxs := make([]*common.Fx, len(chain.FxAliases))
for i, fxAlias := range chain.FxAliases {
fxID, err := m.vmManager.Lookup(fxAlias)
if err != nil {
m.log.Error("error while looking up Fx: %s", err)
return
}
// Get a factory for the fx we want to use on our chain
fxFactory, err := m.vmManager.GetVMFactory(fxID)
if err != nil {
m.log.Error("error while getting fxFactory: %s", err)
return
}
fx, err := fxFactory.New()
if err != nil {
m.log.Error("error while creating fx: %s", err)
return
}
// Create the fx
fxs[i] = &common.Fx{
ID: fxID,
Fx: fx,
}
}
primaryAlias, err := m.PrimaryAlias(chain.ID)
if err != nil {
primaryAlias = chain.ID.String()
@ -272,6 +229,49 @@ func (m *manager) ForceCreateChain(chain ChainParameters) {
BCLookup: m,
}
// Get a factory for the vm we want to use on our chain
vmFactory, err := m.vmManager.GetVMFactory(vmID)
if err != nil {
m.log.Error("error while getting vmFactory: %s", err)
return
}
// Create the chain
vm, err := vmFactory.New(ctx)
if err != nil {
m.log.Error("error while creating vm: %s", err)
return
}
// TODO: Shutdown VM if an error occurs
fxs := make([]*common.Fx, len(chain.FxAliases))
for i, fxAlias := range chain.FxAliases {
fxID, err := m.vmManager.Lookup(fxAlias)
if err != nil {
m.log.Error("error while looking up Fx: %s", err)
return
}
// Get a factory for the fx we want to use on our chain
fxFactory, err := m.vmManager.GetVMFactory(fxID)
if err != nil {
m.log.Error("error while getting fxFactory: %s", err)
return
}
fx, err := fxFactory.New(ctx)
if err != nil {
m.log.Error("error while creating fx: %s", err)
return
}
// Create the fx
fxs[i] = &common.Fx{
ID: fxID,
Fx: fx,
}
}
consensusParams := m.consensusParams
consensusParams.Namespace = fmt.Sprintf("gecko_%s", primaryAlias)

View File

@ -295,10 +295,7 @@ func (n *Node) initVMManager() error {
AVA: avaAssetID,
Platform: ids.Empty,
}),
n.vmManager.RegisterVMFactory(genesis.EVMID, &rpcchainvm.Factory{
Log: n.Log,
Path: path.Join(n.Config.PluginDir, "evm"),
}),
n.vmManager.RegisterVMFactory(genesis.EVMID, &rpcchainvm.Factory{Path: path.Join(n.Config.PluginDir, "evm")}),
n.vmManager.RegisterVMFactory(spdagvm.ID, &spdagvm.Factory{TxFee: n.Config.AvaTxFee}),
n.vmManager.RegisterVMFactory(spchainvm.ID, &spchainvm.Factory{}),
n.vmManager.RegisterVMFactory(timestampvm.ID, &timestampvm.Factory{}),

View File

@ -5,6 +5,7 @@ package avm
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID that this VM uses when labeled
@ -19,7 +20,7 @@ type Factory struct {
}
// New ...
func (f *Factory) New() (interface{}, error) {
func (f *Factory) New(*snow.Context) (interface{}, error) {
return &VM{
ava: f.AVA,
platform: f.Platform,

View File

@ -8,15 +8,15 @@ import (
"sync"
"github.com/ava-labs/gecko/api"
"github.com/ava-labs/gecko/snow/engine/common"
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
"github.com/ava-labs/gecko/snow/engine/common"
"github.com/ava-labs/gecko/utils/logging"
)
// A VMFactory creates new instances of a VM
type VMFactory interface {
New() (interface{}, error)
New(*snow.Context) (interface{}, error)
}
// Manager is a VM manager.
@ -110,7 +110,7 @@ func (m *manager) addStaticAPIEndpoints(vmID ids.ID) {
vmFactory, err := m.GetVMFactory(vmID)
m.log.AssertNoError(err)
m.log.Debug("adding static API for VM with ID %s", vmID)
vm, err := vmFactory.New()
vm, err := vmFactory.New(nil)
if err != nil {
return
}

View File

@ -2,6 +2,7 @@ package nftfx
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID that this Fx uses when labeled
@ -13,4 +14,4 @@ var (
type Factory struct{}
// New ...
func (f *Factory) New() (interface{}, error) { return &Fx{}, nil }
func (f *Factory) New(*snow.Context) (interface{}, error) { return &Fx{}, nil }

View File

@ -6,7 +6,7 @@ import (
func TestFactory(t *testing.T) {
factory := Factory{}
if fx, err := factory.New(); err != nil {
if fx, err := factory.New(nil); err != nil {
t.Fatal(err)
} else if fx == nil {
t.Fatalf("Factory.New returned nil")

View File

@ -6,6 +6,7 @@ package platformvm
import (
"github.com/ava-labs/gecko/chains"
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
"github.com/ava-labs/gecko/snow/validators"
)
@ -24,7 +25,7 @@ type Factory struct {
}
// New returns a new instance of the Platform Chain
func (f *Factory) New() (interface{}, error) {
func (f *Factory) New(*snow.Context) (interface{}, error) {
return &VM{
chainManager: f.ChainManager,
validators: f.Validators,

View File

@ -2,6 +2,7 @@ package propertyfx
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID that this Fx uses when labeled
@ -13,4 +14,4 @@ var (
type Factory struct{}
// New ...
func (f *Factory) New() (interface{}, error) { return &Fx{}, nil }
func (f *Factory) New(*snow.Context) (interface{}, error) { return &Fx{}, nil }

View File

@ -6,7 +6,7 @@ import (
func TestFactory(t *testing.T) {
factory := Factory{}
if fx, err := factory.New(); err != nil {
if fx, err := factory.New(nil); err != nil {
t.Fatal(err)
} else if fx == nil {
t.Fatalf("Factory.New returned nil")

View File

@ -9,7 +9,7 @@ import (
"github.com/hashicorp/go-plugin"
"github.com/ava-labs/gecko/utils/logging"
"github.com/ava-labs/gecko/snow"
)
var (
@ -17,25 +17,25 @@ var (
)
// Factory ...
type Factory struct {
Log logging.Logger
Path string
}
type Factory struct{ Path string }
// New ...
func (f *Factory) New() (interface{}, error) {
client := plugin.NewClient(&plugin.ClientConfig{
func (f *Factory) New(ctx *snow.Context) (interface{}, error) {
config := &plugin.ClientConfig{
HandshakeConfig: Handshake,
Plugins: PluginMap,
Cmd: exec.Command("sh", "-c", f.Path),
Stderr: f.Log,
SyncStdout: f.Log,
SyncStderr: f.Log,
AllowedProtocols: []plugin.Protocol{
plugin.ProtocolNetRPC,
plugin.ProtocolGRPC,
},
})
}
if ctx != nil {
config.Stderr = ctx.Log
config.SyncStdout = ctx.Log
config.SyncStderr = ctx.Log
}
client := plugin.NewClient(config)
rpcClient, err := client.Client()
if err != nil {

View File

@ -5,6 +5,7 @@ package secp256k1fx
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID that this Fx uses when labeled
@ -16,4 +17,4 @@ var (
type Factory struct{}
// New ...
func (f *Factory) New() (interface{}, error) { return &Fx{}, nil }
func (f *Factory) New(*snow.Context) (interface{}, error) { return &Fx{}, nil }

View File

@ -9,7 +9,7 @@ import (
func TestFactory(t *testing.T) {
factory := Factory{}
if fx, err := factory.New(); err != nil {
if fx, err := factory.New(nil); err != nil {
t.Fatal(err)
} else if fx == nil {
t.Fatalf("Factory.New returned nil")

View File

@ -5,6 +5,7 @@ package spchainvm
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID this VM should be referenced by
@ -16,4 +17,4 @@ var (
type Factory struct{}
// New ...
func (f *Factory) New() (interface{}, error) { return &VM{}, nil }
func (f *Factory) New(*snow.Context) (interface{}, error) { return &VM{}, nil }

View File

@ -5,6 +5,7 @@ package spdagvm
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID this VM should be referenced with
@ -16,6 +17,6 @@ var (
type Factory struct{ TxFee uint64 }
// New ...
func (f *Factory) New() (interface{}, error) {
func (f *Factory) New(*snow.Context) (interface{}, error) {
return &VM{TxFee: f.TxFee}, nil
}

View File

@ -3,7 +3,10 @@
package timestampvm
import "github.com/ava-labs/gecko/ids"
import (
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow"
)
// ID is a unique identifier for this VM
var (
@ -14,4 +17,4 @@ var (
type Factory struct{}
// New ...
func (f *Factory) New() (interface{}, error) { return &VM{}, nil }
func (f *Factory) New(*snow.Context) (interface{}, error) { return &VM{}, nil }