From 71837c4b241edf56129274c3247c1c26ef31508a Mon Sep 17 00:00:00 2001 From: Arijit Das Date: Tue, 31 Aug 2021 17:02:01 +0530 Subject: [PATCH] Self review. --- pkg/eth/api.go | 3 +- pkg/eth/backend.go | 5 +-- pkg/eth/backend_utils.go | 3 +- pkg/eth/cid_retriever.go | 74 +++++++++++++------------------ pkg/eth/filterer.go | 6 +-- pkg/eth/ipld_fetcher.go | 7 ++- pkg/eth/test_helpers/test_data.go | 15 +++---- pkg/eth/types.go | 5 +-- pkg/graphql/graphql.go | 4 ++ pkg/serve/config.go | 56 ++++++++++++----------- pkg/serve/env.go | 42 +++++++++--------- pkg/serve/service.go | 10 ++--- 12 files changed, 109 insertions(+), 121 deletions(-) diff --git a/pkg/eth/api.go b/pkg/eth/api.go index 0bc56675..8d880cd8 100644 --- a/pkg/eth/api.go +++ b/pkg/eth/api.go @@ -650,7 +650,7 @@ func (pea *PublicEthAPI) localGetLogs(crit filters.FilterCriteria) ([]*types.Log start := startingBlock.Int64() end := endingBlock.Int64() var logs []*types.Log - for i := start; i <= end; { + for i := start; i <= end; i++ { filteredLog, err := pea.B.Retriever.RetrieveFilteredLog(tx, filter, i, nil) if err != nil { return nil, err @@ -662,7 +662,6 @@ func (pea *PublicEthAPI) localGetLogs(crit filters.FilterCriteria) ([]*types.Log } logs = append(logs, logCIDs...) - i++ } if err := tx.Commit(); err != nil { diff --git a/pkg/eth/backend.go b/pkg/eth/backend.go index e22959b5..16e3a6bc 100644 --- a/pkg/eth/backend.go +++ b/pkg/eth/backend.go @@ -39,12 +39,11 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" + "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" "github.com/ethereum/go-ethereum/statediff/indexer/postgres" + "github.com/ethereum/go-ethereum/statediff/indexer/shared" "github.com/ethereum/go-ethereum/trie" pgipfsethdb "github.com/vulcanize/ipfs-ethdb/postgres" - - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" - "github.com/ethereum/go-ethereum/statediff/indexer/shared" ) var ( diff --git a/pkg/eth/backend_utils.go b/pkg/eth/backend_utils.go index 8e107c7b..ec0be108 100644 --- a/pkg/eth/backend_utils.go +++ b/pkg/eth/backend_utils.go @@ -37,8 +37,7 @@ import ( // This function is eth/internal so we have to make our own version here... func RPCMarshalHeader(head *types.Header, extractMiner bool) map[string]interface{} { if extractMiner { - err := recoverMiner(head) - if err != nil { + if err := recoverMiner(head); err != nil { return nil } } diff --git a/pkg/eth/cid_retriever.go b/pkg/eth/cid_retriever.go index 44984e41..e0908395 100644 --- a/pkg/eth/cid_retriever.go +++ b/pkg/eth/cid_retriever.go @@ -209,7 +209,7 @@ func (ecr *CIDRetriever) RetrieveTxCIDs(tx *sqlx.Tx, txFilter TxFilter, headerID return results, tx.Select(&results, pgStr, args...) } -func topicFilterCondition(id int, topics [][]string, args []interface{}, pgStr string, first bool) (string, []interface{}, int) { +func topicFilterCondition(id *int, topics [][]string, args []interface{}, pgStr string, first bool) (string, []interface{}) { for i, topicSet := range topics { if len(topicSet) == 0 { continue @@ -220,49 +220,47 @@ func topicFilterCondition(id int, topics [][]string, args []interface{}, pgStr s } else { first = false } - pgStr += fmt.Sprintf(` eth.log_cids.topic%d = ANY ($%d)`, i, id) + pgStr += fmt.Sprintf(` eth.log_cids.topic%d = ANY ($%d)`, i, *id) args = append(args, pq.Array(topicSet)) - id++ + *id++ } - return pgStr, args, id + return pgStr, args } -func logFilterCondition(id int, pgStr string, args []interface{}, rctFilter ReceiptFilter) (string, []interface{}, int) { +func logFilterCondition(id *int, pgStr string, args []interface{}, rctFilter ReceiptFilter) (string, []interface{}) { if len(rctFilter.LogAddresses) > 0 { - pgStr += fmt.Sprintf(` AND eth.log_cids.address = ANY ($%d)`, id) + pgStr += fmt.Sprintf(` AND eth.log_cids.address = ANY ($%d)`, *id) args = append(args, pq.Array(rctFilter.LogAddresses)) - id++ - - // Filter on topics if there are any - if hasTopics(rctFilter.Topics) { - pgStr, args, id = topicFilterCondition(id, rctFilter.Topics, args, pgStr, false) - } - } else if hasTopics(rctFilter.Topics) { - pgStr, args, id = topicFilterCondition(id, rctFilter.Topics, args, pgStr, false) + *id++ } - return pgStr, args, id + // Filter on topics if there are any + if hasTopics(rctFilter.Topics) { + pgStr, args = topicFilterCondition(id, rctFilter.Topics, args, pgStr, false) + } + + return pgStr, args } -func receiptFilterConditions(id int, pgStr string, args []interface{}, rctFilter ReceiptFilter, trxIds []int64) (string, []interface{}, int) { +func receiptFilterConditions(id *int, pgStr string, args []interface{}, rctFilter ReceiptFilter, trxIds []int64) (string, []interface{}) { rctCond := " AND (receipt_cids.id = ANY ( " logQuery := "SELECT receipt_id FROM eth.log_cids WHERE" if len(rctFilter.LogAddresses) > 0 { // Filter on log contract addresses if there are any - pgStr += fmt.Sprintf(`%s %s eth.log_cids.address = ANY ($%d)`, rctCond, logQuery, id) + pgStr += fmt.Sprintf(`%s %s eth.log_cids.address = ANY ($%d)`, rctCond, logQuery, *id) args = append(args, pq.Array(rctFilter.LogAddresses)) - id++ + *id++ // Filter on topics if there are any if hasTopics(rctFilter.Topics) { - pgStr, args, id = topicFilterCondition(id, rctFilter.Topics, args, pgStr, false) + pgStr, args = topicFilterCondition(id, rctFilter.Topics, args, pgStr, false) } pgStr += ")" // Filter on txIDs if there are any and we are matching txs if rctFilter.MatchTxs && len(trxIds) > 0 { - pgStr += fmt.Sprintf(` OR receipt_cids.tx_id = ANY($%d::INTEGER[])`, id) + pgStr += fmt.Sprintf(` OR receipt_cids.tx_id = ANY($%d::INTEGER[])`, *id) args = append(args, pq.Array(trxIds)) } pgStr += ")" @@ -270,23 +268,23 @@ func receiptFilterConditions(id int, pgStr string, args []interface{}, rctFilter // Filter on topics if there are any if hasTopics(rctFilter.Topics) { pgStr += rctCond + logQuery - pgStr, args, id = topicFilterCondition(id, rctFilter.Topics, args, pgStr, true) + pgStr, args = topicFilterCondition(id, rctFilter.Topics, args, pgStr, true) pgStr += ")" // Filter on txIDs if there are any and we are matching txs if rctFilter.MatchTxs && len(trxIds) > 0 { - pgStr += fmt.Sprintf(` OR receipt_cids.tx_id = ANY($%d::INTEGER[])`, id) + pgStr += fmt.Sprintf(` OR receipt_cids.tx_id = ANY($%d::INTEGER[])`, *id) args = append(args, pq.Array(trxIds)) } pgStr += ")" } else if rctFilter.MatchTxs && len(trxIds) > 0 { // If there are no contract addresses or topics to filter on, // Filter on txIDs if there are any and we are matching txs - pgStr += fmt.Sprintf(` AND receipt_cids.tx_id = ANY($%d::INTEGER[])`, id) + pgStr += fmt.Sprintf(` AND receipt_cids.tx_id = ANY($%d::INTEGER[])`, *id) args = append(args, pq.Array(trxIds)) } } - return pgStr, args, id + return pgStr, args } // RetrieveRctCIDsByHeaderID retrieves and returns all of the rct cids at the provided header ID that conform to the provided @@ -302,7 +300,8 @@ func (ecr *CIDRetriever) RetrieveRctCIDsByHeaderID(tx *sqlx.Tx, rctFilter Receip AND header_cids.id = $1` id := 2 args = append(args, headerID) - pgStr, args, id = receiptFilterConditions(id, pgStr, args, rctFilter, trxIds) + + pgStr, args = receiptFilterConditions(&id, pgStr, args, rctFilter, trxIds) pgStr += ` ORDER BY transaction_cids.index` receiptCids := make([]models.ReceiptModel, 0) @@ -311,7 +310,7 @@ func (ecr *CIDRetriever) RetrieveRctCIDsByHeaderID(tx *sqlx.Tx, rctFilter Receip // RetrieveFilteredGQLLogs retrieves and returns all the log cIDs provided blockHash that conform to the provided // filter parameters. -func (ecr *CIDRetriever) RetrieveFilteredGQLLogs(tx *sqlx.Tx, rctFilter ReceiptFilter, blockHash *common.Hash) ([]customLog, error) { +func (ecr *CIDRetriever) RetrieveFilteredGQLLogs(tx *sqlx.Tx, rctFilter ReceiptFilter, blockHash *common.Hash) ([]logResult, error) { log.Debug("retrieving log cids for receipt ids") args := make([]interface{}, 0, 4) id := 1 @@ -327,10 +326,10 @@ func (ecr *CIDRetriever) RetrieveFilteredGQLLogs(tx *sqlx.Tx, rctFilter ReceiptF args = append(args, blockHash.String()) id++ - pgStr, args, id = logFilterCondition(id, pgStr, args, rctFilter) + pgStr, args = logFilterCondition(&id, pgStr, args, rctFilter) pgStr += ` ORDER BY log_cids.index` - logCIDs := make([]customLog, 0) + logCIDs := make([]logResult, 0) err := tx.Select(&logCIDs, pgStr, args...) if err != nil { return nil, err @@ -341,7 +340,7 @@ func (ecr *CIDRetriever) RetrieveFilteredGQLLogs(tx *sqlx.Tx, rctFilter ReceiptF // RetrieveFilteredLog retrieves and returns all the log cIDs provided blockHeight or blockHash that conform to the provided // filter parameters. -func (ecr *CIDRetriever) RetrieveFilteredLog(tx *sqlx.Tx, rctFilter ReceiptFilter, blockNumber int64, blockHash *common.Hash) ([]customLog, error) { +func (ecr *CIDRetriever) RetrieveFilteredLog(tx *sqlx.Tx, rctFilter ReceiptFilter, blockNumber int64, blockHash *common.Hash) ([]logResult, error) { log.Debug("retrieving log cids for receipt ids") args := make([]interface{}, 0, 4) pgStr := `SELECT eth.log_cids.id,eth.log_cids.leaf_cid, eth.log_cids.index, eth.log_cids.receipt_id, @@ -364,10 +363,10 @@ func (ecr *CIDRetriever) RetrieveFilteredLog(tx *sqlx.Tx, rctFilter ReceiptFilte id++ } - pgStr, args, id = logFilterCondition(id, pgStr, args, rctFilter) + pgStr, args = logFilterCondition(&id, pgStr, args, rctFilter) pgStr += ` ORDER BY log_cids.index` - logCIDs := make([]customLog, 0) + logCIDs := make([]logResult, 0) err := tx.Select(&logCIDs, pgStr, args...) if err != nil { return nil, err @@ -397,7 +396,7 @@ func (ecr *CIDRetriever) RetrieveRctCIDs(tx *sqlx.Tx, rctFilter ReceiptFilter, b id++ } - pgStr, args, id = receiptFilterConditions(id, pgStr, args, rctFilter, trxIds) + pgStr, args = receiptFilterConditions(&id, pgStr, args, rctFilter, trxIds) pgStr += ` ORDER BY transaction_cids.index` receiptCids := make([]models.ReceiptModel, 0) @@ -605,14 +604,3 @@ func (ecr *CIDRetriever) RetrieveReceiptCIDsByTxIDs(tx *sqlx.Tx, txIDs []int64) var rctCIDs []models.ReceiptModel return rctCIDs, tx.Select(&rctCIDs, pgStr, pq.Array(txIDs)) } - -func (ecr *CIDRetriever) RetrieveTxCIDsByReceipt(tx *sqlx.Tx, txIDs []int64) ([]models.TxModel, error) { - log.Debugf("retrieving receipt cids for tx ids %v", txIDs) - pgStr := `SELECT transaction_cids.id,transaction_cids.mh_key,transaction_cids.cid, - transaction_cids.tx_hash,transaction_cids.index,transaction_cids.tx_type - FROM eth.transaction_cids WHERE eth.transaction_cids.id = ANY ( $1 ) - ORDER BY transaction_cids.index` - - var txnCIDs []models.TxModel - return txnCIDs, tx.Select(&txnCIDs, pgStr, pq.Array(txIDs)) -} diff --git a/pkg/eth/filterer.go b/pkg/eth/filterer.go index 09774c73..93923c43 100644 --- a/pkg/eth/filterer.go +++ b/pkg/eth/filterer.go @@ -19,13 +19,12 @@ package eth import ( "bytes" - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs/ipld" - sdtypes "github.com/ethereum/go-ethereum/statediff/types" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/rlp" + "github.com/ethereum/go-ethereum/statediff/indexer/ipfs/ipld" + sdtypes "github.com/ethereum/go-ethereum/statediff/types" "github.com/multiformats/go-multihash" "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" @@ -176,6 +175,7 @@ func (s *ResponseFilterer) filerReceipts(receiptFilter ReceiptFilter, response * } } + // TODO: Verify this filter logic. if checkReceipts(receipt, receiptFilter.Topics, topics, receiptFilter.LogAddresses, contracts, trxHashes) { receiptBuffer := new(bytes.Buffer) if err := receipt.EncodeRLP(receiptBuffer); err != nil { diff --git a/pkg/eth/ipld_fetcher.go b/pkg/eth/ipld_fetcher.go index 8e64e33b..193a98a9 100644 --- a/pkg/eth/ipld_fetcher.go +++ b/pkg/eth/ipld_fetcher.go @@ -24,12 +24,11 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" "github.com/ethereum/go-ethereum/statediff/indexer/models" "github.com/ethereum/go-ethereum/statediff/indexer/postgres" "github.com/jmoiron/sqlx" log "github.com/sirupsen/logrus" - - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" "github.com/vulcanize/ipld-eth-server/pkg/shared" ) @@ -169,7 +168,7 @@ func (f *IPLDFetcher) FetchRcts(tx *sqlx.Tx, cids []models.ReceiptModel) ([]ipfs } // FetchLogs fetches logs. -func (f *IPLDFetcher) FetchLogs(logCIDs []customLog) ([]*types.Log, error) { +func (f *IPLDFetcher) FetchLogs(logCIDs []logResult) ([]*types.Log, error) { log.Debug("fetching logs") logs := make([]*types.Log, len(logCIDs)) @@ -218,7 +217,7 @@ type logsCID struct { } // FetchGQLLogs fetches logs for graphql. -func (f *IPLDFetcher) FetchGQLLogs(logCIDs []customLog) ([]logsCID, error) { +func (f *IPLDFetcher) FetchGQLLogs(logCIDs []logResult) ([]logsCID, error) { log.Debug("fetching logs") logs := make([]logsCID, len(logCIDs)) diff --git a/pkg/eth/test_helpers/test_data.go b/pkg/eth/test_helpers/test_data.go index 7d17d746..3536224d 100644 --- a/pkg/eth/test_helpers/test_data.go +++ b/pkg/eth/test_helpers/test_data.go @@ -23,21 +23,20 @@ import ( "crypto/rand" "math/big" - "github.com/ethereum/go-ethereum/statediff/indexer" - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs/ipld" - "github.com/ethereum/go-ethereum/statediff/indexer/models" - "github.com/ethereum/go-ethereum/statediff/indexer/shared" - sdtypes "github.com/ethereum/go-ethereum/statediff/types" - "github.com/ethereum/go-ethereum/trie" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rlp" + "github.com/ethereum/go-ethereum/statediff/indexer" + "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" + "github.com/ethereum/go-ethereum/statediff/indexer/ipfs/ipld" + "github.com/ethereum/go-ethereum/statediff/indexer/models" + "github.com/ethereum/go-ethereum/statediff/indexer/shared" "github.com/ethereum/go-ethereum/statediff/testhelpers" + sdtypes "github.com/ethereum/go-ethereum/statediff/types" + "github.com/ethereum/go-ethereum/trie" blocks "github.com/ipfs/go-block-format" "github.com/multiformats/go-multihash" log "github.com/sirupsen/logrus" diff --git a/pkg/eth/types.go b/pkg/eth/types.go index 526a9b40..eeecbb2a 100644 --- a/pkg/eth/types.go +++ b/pkg/eth/types.go @@ -22,7 +22,6 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/statediff/indexer/ipfs" "github.com/ethereum/go-ethereum/statediff/indexer/models" sdtypes "github.com/ethereum/go-ethereum/statediff/types" @@ -168,8 +167,8 @@ type ConvertedPayload struct { StorageNodes map[string][]sdtypes.StorageNode } -// customLog represent a log. -type customLog struct { +// logResult represent a log. +type logResult struct { ID int64 `db:"id"` LeafCID string `db:"leaf_cid"` LeafMhKey string `db:"leaf_mh_key"` diff --git a/pkg/graphql/graphql.go b/pkg/graphql/graphql.go index 6fe9edd4..0ecd84b6 100644 --- a/pkg/graphql/graphql.go +++ b/pkg/graphql/graphql.go @@ -1025,6 +1025,10 @@ func (r *Resolver) GetLogs(ctx context.Context, args struct { } filteredLogs, err := r.backend.Retriever.RetrieveFilteredGQLLogs(tx, filter, &args.BlockHash) + if err != nil { + return nil, err + } + if err = tx.Commit(); err != nil { return nil, err } diff --git a/pkg/serve/config.go b/pkg/serve/config.go index 98191ad1..390ced1b 100644 --- a/pkg/serve/config.go +++ b/pkg/serve/config.go @@ -35,18 +35,18 @@ import ( // Env variables const ( - SERVER_WS_PATH = "SERVER_WS_PATH" - SERVER_IPC_PATH = "SERVER_IPC_PATH" - SERVER_HTTP_PATH = "SERVER_HTTP_PATH" + serverWsPath = "SERVER_WS_PATH" + serverIpcPath = "SERVER_IPC_PATH" + serverHTTPPath = "SERVER_HTTP_PATH" - SERVER_MAX_IDLE_CONNECTIONS = "SERVER_MAX_IDLE_CONNECTIONS" - SERVER_MAX_OPEN_CONNECTIONS = "SERVER_MAX_OPEN_CONNECTIONS" - SERVER_MAX_CONN_LIFETIME = "SERVER_MAX_CONN_LIFETIME" + serverMaxIdleConnections = "SERVER_MAX_IDLE_CONNECTIONS" + serverMaxOpenConnections = "SERVER_MAX_OPEN_CONNECTIONS" + serverMaxConnLifetime = "SERVER_MAX_CONN_LIFETIME" - ETH_DEFAULT_SENDER_ADDR = "ETH_DEFAULT_SENDER_ADDR" - ETH_RPC_GAS_CAP = "ETH_RPC_GAS_CAP" - ETH_CHAIN_CONFIG = "ETH_CHAIN_CONFIG" - ETH_SUPPORTS_STATEDIFF = "ETH_SUPPORTS_STATEDIFF" + ethDefaultSenderAddr = "ETH_DEFAULT_SENDER_ADDR" + ethRPCGasCap = "ETH_RPC_GAS_CAP" + ethChainConfig = "ETH_CHAIN_CONFIG" + ethSupportsStatediff = "ETH_SUPPORTS_STATEDIFF" ) // Config struct @@ -86,11 +86,11 @@ type Config struct { func NewConfig() (*Config, error) { c := new(Config) - viper.BindEnv("ethereum.httpPath", ETH_HTTP_PATH) - viper.BindEnv("ethereum.defaultSender", ETH_DEFAULT_SENDER_ADDR) - viper.BindEnv("ethereum.rpcGasCap", ETH_RPC_GAS_CAP) - viper.BindEnv("ethereum.chainConfig", ETH_CHAIN_CONFIG) - viper.BindEnv("ethereum.supportsStateDiff", ETH_SUPPORTS_STATEDIFF) + viper.BindEnv("ethereum.httpPath", ethHTTPPath) + viper.BindEnv("ethereum.defaultSender", ethDefaultSenderAddr) + viper.BindEnv("ethereum.rpcGasCap", ethRPCGasCap) + viper.BindEnv("ethereum.chainConfig", ethChainConfig) + viper.BindEnv("ethereum.supportsStateDiff", ethSupportsStatediff) c.dbInit() ethHTTP := viper.GetString("ethereum.httpPath") @@ -181,6 +181,10 @@ func NewConfig() (*Config, error) { overrideDBConnConfig(&c.DBConfig) serveDB, err := postgres.NewDB(postgres.DbConnectionString(c.DBParams), c.DBConfig, nodeInfo) + if err != nil { + return nil, err + } + prom.RegisterDBCollector(c.DBParams.Name, serveDB.DB) c.DB = serveDB @@ -205,23 +209,23 @@ func NewConfig() (*Config, error) { } func overrideDBConnConfig(con *postgres.ConnectionConfig) { - viper.BindEnv("database.server.maxIdle", SERVER_MAX_IDLE_CONNECTIONS) - viper.BindEnv("database.server.maxOpen", SERVER_MAX_OPEN_CONNECTIONS) - viper.BindEnv("database.server.maxLifetime", SERVER_MAX_CONN_LIFETIME) + viper.BindEnv("database.server.maxIdle", serverMaxIdleConnections) + viper.BindEnv("database.server.maxOpen", serverMaxOpenConnections) + viper.BindEnv("database.server.maxLifetime", serverMaxConnLifetime) con.MaxIdle = viper.GetInt("database.server.maxIdle") con.MaxOpen = viper.GetInt("database.server.maxOpen") con.MaxLifetime = viper.GetInt("database.server.maxLifetime") } func (d *Config) dbInit() { - viper.BindEnv("database.name", DATABASE_NAME) - viper.BindEnv("database.hostname", DATABASE_HOSTNAME) - viper.BindEnv("database.port", DATABASE_PORT) - viper.BindEnv("database.user", DATABASE_USER) - viper.BindEnv("database.password", DATABASE_PASSWORD) - viper.BindEnv("database.maxIdle", DATABASE_MAX_IDLE_CONNECTIONS) - viper.BindEnv("database.maxOpen", DATABASE_MAX_OPEN_CONNECTIONS) - viper.BindEnv("database.maxLifetime", DATABASE_MAX_CONN_LIFETIME) + viper.BindEnv("database.name", databaseName) + viper.BindEnv("database.hostname", databaseHostname) + viper.BindEnv("database.port", databasePort) + viper.BindEnv("database.user", databaseUser) + viper.BindEnv("database.password", databasePassword) + viper.BindEnv("database.maxIdle", databaseMaxIdleConnections) + viper.BindEnv("database.maxOpen", databaseMaxOpenConnections) + viper.BindEnv("database.maxLifetime", databaseMaxOpenConnLifetime) d.DBParams.Name = viper.GetString("database.name") d.DBParams.Hostname = viper.GetString("database.hostname") diff --git a/pkg/serve/env.go b/pkg/serve/env.go index ec9bc4d1..ebcce07a 100644 --- a/pkg/serve/env.go +++ b/pkg/serve/env.go @@ -8,33 +8,33 @@ import ( // Env variables const ( - HTTP_TIMEOUT = "HTTP_TIMEOUT" + HTTPTimeout = "HTTP_TIMEOUT" - ETH_WS_PATH = "ETH_WS_PATH" - ETH_HTTP_PATH = "ETH_HTTP_PATH" - ETH_NODE_ID = "ETH_NODE_ID" - ETH_CLIENT_NAME = "ETH_CLIENT_NAME" - ETH_GENESIS_BLOCK = "ETH_GENESIS_BLOCK" - ETH_NETWORK_ID = "ETH_NETWORK_ID" - ETH_CHAIN_ID = "ETH_CHAIN_ID" + EthWsPath = "ETH_WS_PATH" + ethHTTPPath = "ETH_HTTP_PATH" + ethNodeID = "ETH_NODE_ID" + ethClientName = "ETH_CLIENT_NAME" + ethGenesisBlock = "ETH_GENESIS_BLOCK" + ethNetworkID = "ETH_NETWORK_ID" + ethChainID = "ETH_CHAIN_ID" - DATABASE_NAME = "DATABASE_NAME" - DATABASE_HOSTNAME = "DATABASE_HOSTNAME" - DATABASE_PORT = "DATABASE_PORT" - DATABASE_USER = "DATABASE_USER" - DATABASE_PASSWORD = "DATABASE_PASSWORD" - DATABASE_MAX_IDLE_CONNECTIONS = "DATABASE_MAX_IDLE_CONNECTIONS" - DATABASE_MAX_OPEN_CONNECTIONS = "DATABASE_MAX_OPEN_CONNECTIONS" - DATABASE_MAX_CONN_LIFETIME = "DATABASE_MAX_CONN_LIFETIME" + databaseName = "DATABASE_NAME" + databaseHostname = "DATABASE_HOSTNAME" + databasePort = "DATABASE_PORT" + databaseUser = "DATABASE_USER" + databasePassword = "DATABASE_PASSWORD" + databaseMaxIdleConnections = "DATABASE_MAX_IDLE_CONNECTIONS" + databaseMaxOpenConnections = "DATABASE_MAX_OPEN_CONNECTIONS" + databaseMaxOpenConnLifetime = "DATABASE_MAX_CONN_LIFETIME" ) // GetEthNodeAndClient returns eth node info and client from path url func getEthNodeAndClient(path string) (node.Info, *rpc.Client, error) { - viper.BindEnv("ethereum.nodeID", ETH_NODE_ID) - viper.BindEnv("ethereum.clientName", ETH_CLIENT_NAME) - viper.BindEnv("ethereum.genesisBlock", ETH_GENESIS_BLOCK) - viper.BindEnv("ethereum.networkID", ETH_NETWORK_ID) - viper.BindEnv("ethereum.chainID", ETH_CHAIN_ID) + viper.BindEnv("ethereum.nodeID", ethNodeID) + viper.BindEnv("ethereum.clientName", ethClientName) + viper.BindEnv("ethereum.genesisBlock", ethGenesisBlock) + viper.BindEnv("ethereum.networkID", ethNetworkID) + viper.BindEnv("ethereum.chainID", ethChainID) rpcClient, err := rpc.Dial(path) if err != nil { diff --git a/pkg/serve/service.go b/pkg/serve/service.go index 8500013f..ed403ae2 100644 --- a/pkg/serve/service.go +++ b/pkg/serve/service.go @@ -22,20 +22,18 @@ import ( "sync" "time" - "github.com/ethereum/go-ethereum/statediff/indexer/postgres" - pgipfsethdb "github.com/vulcanize/ipfs-ethdb/postgres" - "github.com/vulcanize/ipld-eth-server/pkg/net" - - "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/crypto" ethnode "github.com/ethereum/go-ethereum/node" "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" + "github.com/ethereum/go-ethereum/statediff/indexer/postgres" log "github.com/sirupsen/logrus" + pgipfsethdb "github.com/vulcanize/ipfs-ethdb/postgres" "github.com/vulcanize/ipld-eth-server/pkg/eth" + "github.com/vulcanize/ipld-eth-server/pkg/net" ) const (