forked from cerc-io/ipld-eth-server
Allow for multiple Geth nodes (#128)
This commit is contained in:
@@ -111,13 +111,16 @@ func (repository Postgres) FindLogs(address string, blockNumber int64) []core.Lo
|
||||
func (repository *Postgres) CreateNode(node *core.Node) error {
|
||||
var nodeId int64
|
||||
err := repository.Db.QueryRow(
|
||||
`INSERT INTO nodes (genesis_block, network_id)
|
||||
VALUES ($1, $2)
|
||||
ON CONFLICT (genesis_block, network_id)
|
||||
`INSERT INTO nodes (genesis_block, network_id, node_id, client_name)
|
||||
VALUES ($1, $2, $3, $4)
|
||||
ON CONFLICT (genesis_block, network_id, node_id)
|
||||
DO UPDATE
|
||||
SET genesis_block = $1, network_id = $2
|
||||
SET genesis_block = $1,
|
||||
network_id = $2,
|
||||
node_id = $3,
|
||||
client_name = $4
|
||||
RETURNING id`,
|
||||
node.GenesisBlock, node.NetworkId).Scan(&nodeId)
|
||||
node.GenesisBlock, node.NetworkId, node.Id, node.ClientName).Scan(&nodeId)
|
||||
if err != nil {
|
||||
return ErrUnableToSetNode
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ var _ = Describe("Postgres repository", func() {
|
||||
Transactions: []core.Transaction{},
|
||||
}
|
||||
cfg, _ := config.NewConfig("private")
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1}
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1, Id: "x123", ClientName: "geth"}
|
||||
repository, _ := repositories.NewPostgres(cfg.Database, node)
|
||||
|
||||
err1 := repository.CreateOrUpdateBlock(badBlock)
|
||||
@@ -60,7 +60,7 @@ var _ = Describe("Postgres repository", func() {
|
||||
|
||||
It("throws error when can't connect to the database", func() {
|
||||
invalidDatabase := config.Database{}
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1}
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1, Id: "x123", ClientName: "geth"}
|
||||
_, err := repositories.NewPostgres(invalidDatabase, node)
|
||||
Expect(err).To(Equal(repositories.ErrDBConnectionFailed))
|
||||
})
|
||||
@@ -68,7 +68,7 @@ var _ = Describe("Postgres repository", func() {
|
||||
It("throws error when can't create node", func() {
|
||||
cfg, _ := config.NewConfig("private")
|
||||
badHash := fmt.Sprintf("x %s", strings.Repeat("1", 100))
|
||||
node := core.Node{GenesisBlock: badHash, NetworkId: 1}
|
||||
node := core.Node{GenesisBlock: badHash, NetworkId: 1, Id: "x123", ClientName: "geth"}
|
||||
_, err := repositories.NewPostgres(cfg.Database, node)
|
||||
Expect(err).To(Equal(repositories.ErrUnableToSetNode))
|
||||
})
|
||||
@@ -82,7 +82,7 @@ var _ = Describe("Postgres repository", func() {
|
||||
TxHash: badTxHash,
|
||||
}
|
||||
cfg, _ := config.NewConfig("private")
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1}
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1, Id: "x123", ClientName: "geth"}
|
||||
repository, _ := repositories.NewPostgres(cfg.Database, node)
|
||||
|
||||
err := repository.CreateLogs([]core.Log{badLog})
|
||||
@@ -101,7 +101,7 @@ var _ = Describe("Postgres repository", func() {
|
||||
Transactions: []core.Transaction{badTransaction},
|
||||
}
|
||||
cfg, _ := config.NewConfig("private")
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1}
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1, Id: "x123", ClientName: "geth"}
|
||||
repository, _ := repositories.NewPostgres(cfg.Database, node)
|
||||
|
||||
err1 := repository.CreateOrUpdateBlock(block)
|
||||
|
||||
@@ -22,7 +22,12 @@ func AssertRepositoryBehavior(buildRepository func(node core.Node) repositories.
|
||||
var repository repositories.Repository
|
||||
|
||||
BeforeEach(func() {
|
||||
node := core.Node{GenesisBlock: "GENESIS", NetworkId: 1}
|
||||
node := core.Node{
|
||||
GenesisBlock: "GENESIS",
|
||||
NetworkId: 1,
|
||||
Id: "b6f90c0fdd8ec9607aed8ee45c69322e47b7063f0bfb7a29c8ecafab24d0a22d24dd2329b5ee6ed4125a03cb14e57fd584e67f9e53e6c631055cbbd82f080845",
|
||||
ClientName: "Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9",
|
||||
}
|
||||
repository = buildRepository(node)
|
||||
})
|
||||
|
||||
@@ -48,6 +53,8 @@ func AssertRepositoryBehavior(buildRepository func(node core.Node) repositories.
|
||||
nodeTwo := core.Node{
|
||||
GenesisBlock: "0x456",
|
||||
NetworkId: 1,
|
||||
Id: "x123456",
|
||||
ClientName: "Geth",
|
||||
}
|
||||
repositoryTwo := buildRepository(nodeTwo)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user