Allow for multiple Geth nodes (#128)

This commit is contained in:
Matt K
2018-01-10 15:54:36 -06:00
committed by GitHub
parent f41bf49b0e
commit a9bea4f492
12 changed files with 98 additions and 26 deletions
+8 -5
View File
@@ -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
}
+5 -5
View File
@@ -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)
+8 -1
View File
@@ -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)