mirror of https://github.com/poanetwork/gecko.git
Added shared memory to the context
This commit is contained in:
parent
bb93cc3eee
commit
29282f07ac
|
@ -9,6 +9,7 @@ import (
|
|||
|
||||
"github.com/ava-labs/gecko/api"
|
||||
"github.com/ava-labs/gecko/api/keystore"
|
||||
"github.com/ava-labs/gecko/chains/atomic"
|
||||
"github.com/ava-labs/gecko/database"
|
||||
"github.com/ava-labs/gecko/database/prefixdb"
|
||||
"github.com/ava-labs/gecko/ids"
|
||||
|
@ -109,6 +110,7 @@ type manager struct {
|
|||
awaiter Awaiter // Waits for required connections before running bootstrapping
|
||||
server *api.Server // Handles HTTP API calls
|
||||
keystore *keystore.Keystore
|
||||
sharedMemory *atomic.SharedMemory
|
||||
|
||||
unblocked bool
|
||||
blockedChains []ChainParameters
|
||||
|
@ -135,6 +137,7 @@ func New(
|
|||
awaiter Awaiter,
|
||||
server *api.Server,
|
||||
keystore *keystore.Keystore,
|
||||
sharedMemory *atomic.SharedMemory,
|
||||
) Manager {
|
||||
timeoutManager := timeout.Manager{}
|
||||
timeoutManager.Initialize(requestTimeout)
|
||||
|
@ -159,6 +162,7 @@ func New(
|
|||
awaiter: awaiter,
|
||||
server: server,
|
||||
keystore: keystore,
|
||||
sharedMemory: sharedMemory,
|
||||
}
|
||||
m.Initialize()
|
||||
return m
|
||||
|
@ -246,6 +250,7 @@ func (m *manager) ForceCreateChain(chain ChainParameters) {
|
|||
NodeID: m.nodeID,
|
||||
HTTP: m.server,
|
||||
Keystore: m.keystore.NewBlockchainKeyStore(chain.ID),
|
||||
SharedMemory: m.sharedMemory.NewBlockchainSharedMemory(chain.ID),
|
||||
BCLookup: m,
|
||||
}
|
||||
consensusParams := m.consensusParams
|
||||
|
|
17
node/node.go
17
node/node.go
|
@ -25,6 +25,7 @@ import (
|
|||
"github.com/ava-labs/gecko/api/keystore"
|
||||
"github.com/ava-labs/gecko/api/metrics"
|
||||
"github.com/ava-labs/gecko/chains"
|
||||
"github.com/ava-labs/gecko/chains/atomic"
|
||||
"github.com/ava-labs/gecko/database"
|
||||
"github.com/ava-labs/gecko/database/prefixdb"
|
||||
"github.com/ava-labs/gecko/genesis"
|
||||
|
@ -68,6 +69,9 @@ type Node struct {
|
|||
// Handles calls to Keystore API
|
||||
keystoreServer keystore.Keystore
|
||||
|
||||
// Manages shared memory
|
||||
sharedMemory atomic.SharedMemory
|
||||
|
||||
// Manages creation of blockchains and routing messages to them
|
||||
chainManager chains.Manager
|
||||
|
||||
|
@ -415,12 +419,20 @@ func (n *Node) initChainManager() {
|
|||
n.ValidatorAPI,
|
||||
&n.APIServer,
|
||||
&n.keystoreServer,
|
||||
&n.sharedMemory,
|
||||
)
|
||||
|
||||
n.chainManager.AddRegistrant(&n.APIServer)
|
||||
}
|
||||
|
||||
// initWallet initializes the Wallet service
|
||||
// initSharedMemory initializes the shared memory for cross chain interation
|
||||
func (n *Node) initSharedMemory() {
|
||||
n.Log.Info("initializing SharedMemory")
|
||||
sharedMemoryDB := prefixdb.New([]byte("shared memory"), n.DB)
|
||||
n.sharedMemory.Initialize(n.Log, sharedMemoryDB)
|
||||
}
|
||||
|
||||
// initKeystoreAPI initializes the keystore service
|
||||
// Assumes n.APIServer is already set
|
||||
func (n *Node) initKeystoreAPI() {
|
||||
n.Log.Info("initializing Keystore API")
|
||||
|
@ -502,6 +514,9 @@ func (n *Node) Initialize(Config *Config, logger logging.Logger, logFactory logg
|
|||
return fmt.Errorf("problem initializing staker ID: %w", err)
|
||||
}
|
||||
|
||||
// initialize shared memory
|
||||
n.initSharedMemory()
|
||||
|
||||
// Start HTTP APIs
|
||||
n.initAPIServer() // Start the API Server
|
||||
n.initKeystoreAPI() // Start the Keystore API
|
||||
|
|
|
@ -24,6 +24,12 @@ type Keystore interface {
|
|||
GetDatabase(username, password string) (database.Database, error)
|
||||
}
|
||||
|
||||
// SharedMemory ...
|
||||
type SharedMemory interface {
|
||||
GetDatabase(id ids.ID) database.Database
|
||||
ReleaseDatabase(id ids.ID)
|
||||
}
|
||||
|
||||
// AliasLookup ...
|
||||
type AliasLookup interface {
|
||||
Lookup(alias string) (ids.ID, error)
|
||||
|
@ -44,6 +50,7 @@ type Context struct {
|
|||
Lock sync.RWMutex
|
||||
HTTP Callable
|
||||
Keystore Keystore
|
||||
SharedMemory SharedMemory
|
||||
BCLookup AliasLookup
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue