diff --git a/db/migrations/00007_create_eth_receipt_cids_table.sql b/db/migrations/00007_create_eth_receipt_cids_table.sql index 3bc6f16..f8b3788 100644 --- a/db/migrations/00007_create_eth_receipt_cids_table.sql +++ b/db/migrations/00007_create_eth_receipt_cids_table.sql @@ -5,7 +5,6 @@ CREATE TABLE IF NOT EXISTS eth.receipt_cids ( tx_id VARCHAR(66) NOT NULL, cid TEXT NOT NULL, contract VARCHAR(66), - contract_hash VARCHAR(66), post_state VARCHAR(66), post_status SMALLINT, PRIMARY KEY (tx_id, header_id, block_number) diff --git a/db/migrations/00008_create_eth_state_cids_table.sql b/db/migrations/00008_create_eth_state_cids_table.sql index 98801b7..0e4fbd8 100644 --- a/db/migrations/00008_create_eth_state_cids_table.sql +++ b/db/migrations/00008_create_eth_state_cids_table.sql @@ -4,7 +4,6 @@ CREATE TABLE IF NOT EXISTS eth.state_cids ( header_id VARCHAR(66) NOT NULL, state_leaf_key VARCHAR(66) NOT NULL, cid TEXT NOT NULL, - partial_path BYTEA NOT NULL, diff BOOLEAN NOT NULL DEFAULT FALSE, balance NUMERIC, -- NULL if "removed" nonce BIGINT, -- NULL if "removed" diff --git a/db/migrations/00009_create_eth_storage_cids_table.sql b/db/migrations/00009_create_eth_storage_cids_table.sql index d02c591..26430d0 100644 --- a/db/migrations/00009_create_eth_storage_cids_table.sql +++ b/db/migrations/00009_create_eth_storage_cids_table.sql @@ -5,7 +5,6 @@ CREATE TABLE IF NOT EXISTS eth.storage_cids ( state_leaf_key VARCHAR(66) NOT NULL, storage_leaf_key VARCHAR(66) NOT NULL, cid TEXT NOT NULL, - partial_path BYTEA NOT NULL, diff BOOLEAN NOT NULL DEFAULT FALSE, val BYTEA, -- NULL if "removed" removed BOOLEAN NOT NULL, diff --git a/db/migrations/00014_create_cid_indexes.sql b/db/migrations/00013_create_cid_indexes.sql similarity index 84% rename from db/migrations/00014_create_cid_indexes.sql rename to db/migrations/00013_create_cid_indexes.sql index 9b8a804..e609144 100644 --- a/db/migrations/00014_create_cid_indexes.sql +++ b/db/migrations/00013_create_cid_indexes.sql @@ -1,54 +1,51 @@ -- +goose Up -- header indexes -CREATE INDEX header_block_number_index ON eth.header_cids USING brin (block_number); +CREATE INDEX header_block_number_index ON eth.header_cids USING btree (block_number); CREATE UNIQUE INDEX header_cid_block_number_index ON eth.header_cids USING btree (cid, block_number); CREATE INDEX state_root_index ON eth.header_cids USING btree (state_root); -CREATE INDEX timestamp_index ON eth.header_cids USING brin (timestamp); +CREATE INDEX timestamp_index ON eth.header_cids USING btree (timestamp); -- uncle indexes -CREATE INDEX uncle_block_number_index ON eth.uncle_cids USING brin (block_number); +CREATE INDEX uncle_block_number_index ON eth.uncle_cids USING btree (block_number); CREATE UNIQUE INDEX uncle_cid_block_number_index ON eth.uncle_cids USING btree (cid, block_number); CREATE INDEX uncle_header_id_index ON eth.uncle_cids USING btree (header_id); -- transaction indexes -CREATE INDEX tx_block_number_index ON eth.transaction_cids USING brin (block_number); +CREATE INDEX tx_block_number_index ON eth.transaction_cids USING btree (block_number); CREATE INDEX tx_header_id_index ON eth.transaction_cids USING btree (header_id); CREATE INDEX tx_cid_block_number_index ON eth.transaction_cids USING btree (cid, block_number); CREATE INDEX tx_dst_index ON eth.transaction_cids USING btree (dst); CREATE INDEX tx_src_index ON eth.transaction_cids USING btree (src); -- receipt indexes -CREATE INDEX rct_block_number_index ON eth.receipt_cids USING brin (block_number); +CREATE INDEX rct_block_number_index ON eth.receipt_cids USING btree (block_number); CREATE INDEX rct_header_id_index ON eth.receipt_cids USING btree (header_id); CREATE INDEX rct_cid_block_number_index ON eth.receipt_cids USING btree (cid, block_number); CREATE INDEX rct_contract_index ON eth.receipt_cids USING btree (contract); -CREATE INDEX rct_contract_hash_index ON eth.receipt_cids USING btree (contract_hash); -- state node indexes -CREATE INDEX state_block_number_index ON eth.state_cids USING brin (block_number); +CREATE INDEX state_block_number_index ON eth.state_cids USING btree (block_number); CREATE INDEX state_cid_block_number_index ON eth.state_cids USING btree (cid, block_number); CREATE INDEX state_header_id_index ON eth.state_cids USING btree (header_id); -CREATE INDEX state_partial_path_index ON eth.state_cids USING btree (partial_path); CREATE INDEX state_removed_index ON eth.state_cids USING btree (removed); CREATE INDEX state_code_hash_index ON eth.state_cids USING btree (code_hash); -- could be useful for e.g. selecting all the state accounts with the same contract bytecode deployed CREATE INDEX state_leaf_key_block_number_index ON eth.state_cids(state_leaf_key, block_number DESC); -- storage node indexes -CREATE INDEX storage_block_number_index ON eth.storage_cids USING brin (block_number); +CREATE INDEX storage_block_number_index ON eth.storage_cids USING btree (block_number); CREATE INDEX storage_state_leaf_key_index ON eth.storage_cids USING btree (state_leaf_key); CREATE INDEX storage_cid_block_number_index ON eth.storage_cids USING btree (cid, block_number); CREATE INDEX storage_header_id_index ON eth.storage_cids USING btree (header_id); -CREATE INDEX storage_partial_path_index ON eth.storage_cids USING btree (partial_path); CREATE INDEX storage_removed_index ON eth.storage_cids USING btree (removed); CREATE INDEX storage_leaf_key_block_number_index ON eth.storage_cids(storage_leaf_key, block_number DESC); -- access list indexes -CREATE INDEX access_list_block_number_index ON eth.access_list_elements USING brin (block_number); +CREATE INDEX access_list_block_number_index ON eth.access_list_elements USING btree (block_number); CREATE INDEX access_list_element_address_index ON eth.access_list_elements USING btree (address); CREATE INDEX access_list_storage_keys_index ON eth.access_list_elements USING gin (storage_keys); -- log indexes -CREATE INDEX log_block_number_index ON eth.log_cids USING brin (block_number); +CREATE INDEX log_block_number_index ON eth.log_cids USING btree (block_number); CREATE INDEX log_header_id_index ON eth.log_cids USING btree (header_id); CREATE INDEX log_cid_block_number_index ON eth.log_cids USING btree (cid, block_number); CREATE INDEX log_address_index ON eth.log_cids USING btree (address); @@ -75,7 +72,6 @@ DROP INDEX eth.access_list_block_number_index; -- storage node indexes DROP INDEX eth.storage_removed_index; -DROP INDEX eth.storage_partial_path_index; DROP INDEX eth.storage_header_id_index; DROP INDEX eth.storage_cid_block_number_index; DROP INDEX eth.storage_leaf_key_index; @@ -86,14 +82,12 @@ DROP INDEX eth.storage_leaf_key_block_number_index; -- state node indexes DROP INDEX eth.state_code_hash_index; DROP INDEX eth.state_removed_index; -DROP INDEX eth.state_partial_path_index; DROP INDEX eth.state_header_id_index; DROP INDEX eth.state_cid_block_number_index; DROP INDEX eth.state_block_number_index; DROP INDEX eth.state_leaf_key_block_number_index; -- receipt indexes -DROP INDEX eth.rct_contract_hash_index; DROP INDEX eth.rct_contract_index; DROP INDEX eth.rct_cid_block_number_index; DROP INDEX eth.rct_header_id_index; diff --git a/db/migrations/00013_create_pending_tables.sql b/db/migrations/00013_create_pending_tables.sql deleted file mode 100644 index 0f2f164..0000000 --- a/db/migrations/00013_create_pending_tables.sql +++ /dev/null @@ -1,21 +0,0 @@ --- +goose Up --- pending tx isn't tightly associated with a block height, so we can't insert the RLP encoded tx as an IPLD block --- in ipld.blocks since it is denormalized by block number (we could do something hacky like using head height --- when the block was seen, or 0 or -1 or something) --- instead, what we are doing for the time being is embedding the RLP here -CREATE TABLE IF NOT EXISTS eth.pending_txs ( - tx_hash VARCHAR(66) NOT NULL PRIMARY KEY, - block_hash VARCHAR(66) NOT NULL, -- references block_hash in pending_blocks for the pending block this tx belongs to - timestamp BIGINT NOT NULL, - raw BYTEA NOT NULL -); - -CREATE TABLE IF NOT EXISTS eth.pending_blocks ( - block_hash VARCHAR(66) NOT NULL PRIMARY KEY, - block_number BIGINT NOT NULL, - raw_header BYTEA NOT NULL -) - --- +goose Down -DROP TABLE eth.pending_blocks; -DROP TABLE eth.pending_txs; diff --git a/db/migrations/00016_create_db_version_table.sql b/db/migrations/00014_create_db_version_table.sql similarity index 62% rename from db/migrations/00016_create_db_version_table.sql rename to db/migrations/00014_create_db_version_table.sql index 2cf57e9..10bcb20 100644 --- a/db/migrations/00016_create_db_version_table.sql +++ b/db/migrations/00014_create_db_version_table.sql @@ -5,5 +5,8 @@ CREATE TABLE IF NOT EXISTS public.db_version ( tstamp TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() ); +INSERT INTO public.db_version (singleton, version) VALUES (true, 'v5.0.0') + ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v5.0.0', NOW()); + -- +goose Down DROP TABLE public.db_version; diff --git a/db/migrations/00017_create_eth_meta_schema.sql b/db/migrations/00015_create_eth_meta_schema.sql similarity index 100% rename from db/migrations/00017_create_eth_meta_schema.sql rename to db/migrations/00015_create_eth_meta_schema.sql diff --git a/db/migrations/00015_create_postgraphile_triggers.sql b/db/migrations/00015_create_postgraphile_triggers.sql deleted file mode 100644 index d226b6a..0000000 --- a/db/migrations/00015_create_postgraphile_triggers.sql +++ /dev/null @@ -1,113 +0,0 @@ --- +goose Up --- Name: graphql_subscription(); Type: FUNCTION; Schema: eth; Owner: - - --- +goose StatementBegin -CREATE FUNCTION eth.graphql_subscription() RETURNS TRIGGER AS $$ -DECLARE -obj jsonb; -BEGIN - IF (TG_TABLE_NAME = 'state_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.state_path - ); - ELSIF (TG_TABLE_NAME = 'storage_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.state_path, - NEW.storage_path - ); - ELSIF (TG_TABLE_NAME = 'log_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.rct_id, - NEW.index - ); - ELSIF (TG_TABLE_NAME = 'receipt_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.tx_id - ); - ELSIF (TG_TABLE_NAME = 'transaction_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.tx_hash - ); - ELSIF (TG_TABLE_NAME = 'access_list_elements') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.tx_id, - NEW.index - ); - ELSIF (TG_TABLE_NAME = 'uncle_cids') OR (TG_TABLE_NAME = 'header_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.block_hash - ); -END IF; - - perform pg_notify('postgraphile:' || TG_RELNAME , json_build_object( - '__node__', obj - )::text - ); -RETURN NEW; -END; -$$ language plpgsql; --- +goose StatementEnd - -CREATE TRIGGER trg_eth_header_cids - AFTER INSERT ON eth.header_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_uncle_cids - AFTER INSERT ON eth.uncle_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_transaction_cids - AFTER INSERT ON eth.transaction_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_receipt_cids - AFTER INSERT ON eth.receipt_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_state_cids - AFTER INSERT ON eth.state_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_log_cids - AFTER INSERT ON eth.log_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_storage_cids - AFTER INSERT ON eth.storage_cids - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - -CREATE TRIGGER trg_eth_access_list_elements - AFTER INSERT ON eth.access_list_elements - FOR EACH ROW - EXECUTE PROCEDURE eth.graphql_subscription(); - --- +goose Down -DROP TRIGGER trg_eth_uncle_cids ON eth.uncle_cids; -DROP TRIGGER trg_eth_transaction_cids ON eth.transaction_cids; -DROP TRIGGER trg_eth_storage_cids ON eth.storage_cids; -DROP TRIGGER trg_eth_state_cids ON eth.state_cids; -DROP TRIGGER trg_eth_receipt_cids ON eth.receipt_cids; -DROP TRIGGER trg_eth_header_cids ON eth.header_cids; -DROP TRIGGER trg_eth_log_cids ON eth.log_cids; -DROP TRIGGER trg_eth_access_list_elements ON eth.access_list_elements; - -DROP FUNCTION eth.graphql_subscription(); diff --git a/db/migrations/00018_create_watched_addresses_table.sql b/db/migrations/00016_create_watched_addresses_table.sql similarity index 100% rename from db/migrations/00018_create_watched_addresses_table.sql rename to db/migrations/00016_create_watched_addresses_table.sql diff --git a/db/migrations/00020_create_stored_functions.sql b/db/migrations/00017_create_stored_functions.sql similarity index 100% rename from db/migrations/00020_create_stored_functions.sql rename to db/migrations/00017_create_stored_functions.sql diff --git a/db/migrations/00019_convert_to_hypertables.sql b/db/migrations/00018_convert_to_hypertables.sql similarity index 98% rename from db/migrations/00019_convert_to_hypertables.sql rename to db/migrations/00018_convert_to_hypertables.sql index 4040450..eef0cb1 100644 --- a/db/migrations/00019_convert_to_hypertables.sql +++ b/db/migrations/00018_convert_to_hypertables.sql @@ -10,12 +10,12 @@ SELECT create_hypertable('eth.access_list_elements', 'block_number', migrate_dat SELECT create_hypertable('eth.log_cids', 'block_number', migrate_data => true, chunk_time_interval => 32768); -- update version -INSERT INTO public.db_version (singleton, version) VALUES (true, 'v4.0.0-h') - ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v4.0.0-h', NOW()); +INSERT INTO public.db_version (singleton, version) VALUES (true, 'v5.0.0-h') + ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v5.0.0-h', NOW()); -- +goose Down -INSERT INTO public.db_version (singleton, version) VALUES (true, 'v4.0.0') - ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v4.0.0', NOW()); +INSERT INTO public.db_version (singleton, version) VALUES (true, 'v5.0.0') + ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v5.0.0', NOW()); -- reversing conversion to hypertable requires migrating all data from every chunk back to a single table -- create new regular tables diff --git a/db/migrations/00021_create_probes_meta_tables.sql b/db/migrations/00021_create_probes_meta_tables.sql deleted file mode 100644 index f35c0b3..0000000 --- a/db/migrations/00021_create_probes_meta_tables.sql +++ /dev/null @@ -1,97 +0,0 @@ --- +goose Up --- peer tx represents a tx that has been seen by a peer --- the same tx (hash) can be seen by different peers --- or received by different probes --- so the primary key is a composite on (raw_peer_id, tx_hash, received_by_probe) --- this table is persistent, and continues to map probe/peer meta_data to transaction hashes --- whether they are in the canonical tx table or the pending tx table -CREATE TABLE eth_meta.peer_tx ( - raw_peer_id bytea NOT NULL, - tx_hash VARCHAR(66) NOT NULL, - received timestamp with time zone NOT NULL, - received_by_probe integer NOT NULL -); - -CREATE TABLE eth_meta.asn ( - id BIGINT NOT NULL, - asn INTEGER NOT NULL, - registry TEXT NOT NULL, - country_code TEXT NOT NULL, - name TEXT NOT NULL -); - -CREATE TABLE eth_meta.peer ( - asn_id BIGINT NOT NULL, - prefix CIDR NOT NULL, - rdns TEXT, - raw_dht_peer_id BIGINT, - city TEXT, - country TEXT, - coords JSONB -); - -CREATE TABLE eth_meta.peer_dht ( - dht_peer_id BIGINT NOT NULL, - neighbor_id BIGINT NOT NULL, - seen TIMESTAMP WITH TIME ZONE NOT NULL, - seen_by_probe INTEGER NOT NULL -); - -CREATE TABLE eth_meta.peer_seen ( - raw_peer_id BYTEA NOT NULL, - first_seen TIMESTAMP WITH TIME ZONE NOT NULL, - probe_id INTEGER NOT NULL -); - -CREATE TABLE eth_meta.probe ( - id INTEGER NOT NULL, - ip INET NOT NULL, - deployed TIMESTAMP WITH TIME ZONE NOT NULL -); - -CREATE TABLE eth_meta.raw_dht_peer ( - id BIGINT NOT NULL, - pubkey BYTEA NOT NULL, - ip INET NOT NULL, - port INTEGER NOT NULL, - client_id TEXT, - network_id BYTEA, - genesis_hash BYTEA, - forks JSONB, - created_at TIMESTAMP WITH TIME ZONE DEFAULT now() NOT NULL, - updated_at TIMESTAMP WITH TIME ZONE DEFAULT now() NOT NULL -); - -CREATE TABLE eth_meta.raw_peer ( - id BYTEA NOT NULL, - ip INET NOT NULL, - port INTEGER NOT NULL, - client_id TEXT NOT NULL, - created_at TIMESTAMP WITH TIME ZONE DEFAULT now() NOT NULL -); - -CREATE TABLE eth_meta.site ( - id INTEGER NOT NULL, - provider TEXT NOT NULL, - az TEXT NOT NULL, - probe_id INTEGER NOT NULL, - privkey BYTEA NOT NULL -); - -CREATE TABLE eth_meta.tx_chain ( - id BYTEA NOT NULL, - height INTEGER NOT NULL, - ts TIMESTAMP WITH TIME ZONE NOT NULL -); - --- +goose Down -DROP TABLE eth_meta.tx_chain; -DROP TABLE eth_meta.site; -DROP TABLE eth_meta.raw_peer; -DROP TABLE eth_meta.raw_dht_peer; -DROP TABLE eth_meta.probe; -DROP TABLE eth_meta.peer_seen; -DROP TABLE eth_meta.peer_dht; -DROP TABLE eth_meta.peer; -DROP TABLE eth_meta.asn; -DROP TABLE eth_meta.peer_tx; diff --git a/db/migrations/00022_update_db_version.sql b/db/migrations/00022_update_db_version.sql deleted file mode 100644 index 918822e..0000000 --- a/db/migrations/00022_update_db_version.sql +++ /dev/null @@ -1,6 +0,0 @@ --- +goose Up -INSERT INTO public.db_version (singleton, version) VALUES (true, 'v5.0.0') -ON CONFLICT (singleton) DO UPDATE SET (version, tstamp) = ('v5.0.0', NOW()); - --- +goose Down -DELETE FROM public.db_version WHERE version = 'v5.0.0'; diff --git a/schema.sql b/schema.sql index db9cd52..857d51d 100644 --- a/schema.sql +++ b/schema.sql @@ -101,69 +101,6 @@ CREATE TYPE public.child_result AS ( ); --- --- Name: graphql_subscription(); Type: FUNCTION; Schema: eth; Owner: - --- - -CREATE FUNCTION eth.graphql_subscription() RETURNS trigger - LANGUAGE plpgsql - AS $$ -DECLARE -obj jsonb; -BEGIN - IF (TG_TABLE_NAME = 'state_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.state_path - ); - ELSIF (TG_TABLE_NAME = 'storage_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.state_path, - NEW.storage_path - ); - ELSIF (TG_TABLE_NAME = 'log_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.rct_id, - NEW.index - ); - ELSIF (TG_TABLE_NAME = 'receipt_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.tx_id - ); - ELSIF (TG_TABLE_NAME = 'transaction_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.header_id, - NEW.tx_hash - ); - ELSIF (TG_TABLE_NAME = 'access_list_elements') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.tx_id, - NEW.index - ); - ELSIF (TG_TABLE_NAME = 'uncle_cids') OR (TG_TABLE_NAME = 'header_cids') THEN - obj := json_build_array( - TG_TABLE_NAME, - NEW.block_hash - ); -END IF; - perform pg_notify('postgraphile:' || TG_RELNAME , json_build_object( - '__node__', obj - )::text - ); -RETURN NEW; -END; -$$; - - -- -- Name: canonical_header_from_array(eth.header_cids[]); Type: FUNCTION; Schema: public; Owner: - -- @@ -332,18 +269,6 @@ CREATE TABLE eth.log_cids ( ); --- --- Name: pending_txs; Type: TABLE; Schema: eth; Owner: - --- - -CREATE TABLE eth.pending_txs ( - tx_hash character varying(66) NOT NULL, - block_hash character varying(66) NOT NULL, - "timestamp" bigint NOT NULL, - raw bytea NOT NULL -); - - -- -- Name: receipt_cids; Type: TABLE; Schema: eth; Owner: - -- @@ -354,7 +279,6 @@ CREATE TABLE eth.receipt_cids ( tx_id character varying(66) NOT NULL, cid text NOT NULL, contract character varying(66), - contract_hash character varying(66), post_state character varying(66), post_status smallint ); @@ -369,7 +293,6 @@ CREATE TABLE eth.state_cids ( header_id character varying(66) NOT NULL, state_leaf_key character varying(66) NOT NULL, cid text NOT NULL, - partial_path bytea NOT NULL, diff boolean DEFAULT false NOT NULL, balance numeric, nonce bigint, @@ -389,7 +312,6 @@ CREATE TABLE eth.storage_cids ( state_leaf_key character varying(66) NOT NULL, storage_leaf_key character varying(66) NOT NULL, cid text NOT NULL, - partial_path bytea NOT NULL, diff boolean DEFAULT false NOT NULL, val bytea, removed boolean NOT NULL @@ -435,135 +357,6 @@ CREATE TABLE eth.uncle_cids ( ); --- --- Name: asn; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.asn ( - id bigint NOT NULL, - asn integer NOT NULL, - registry text NOT NULL, - country_code text NOT NULL, - name text NOT NULL -); - - --- --- Name: peer; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.peer ( - asn_id bigint NOT NULL, - prefix cidr NOT NULL, - rdns text, - raw_dht_peer_id bigint, - city text, - country text, - coords jsonb -); - - --- --- Name: peer_dht; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.peer_dht ( - dht_peer_id bigint NOT NULL, - neighbor_id bigint NOT NULL, - seen timestamp with time zone NOT NULL, - seen_by_probe integer NOT NULL -); - - --- --- Name: peer_seen; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.peer_seen ( - raw_peer_id bytea NOT NULL, - first_seen timestamp with time zone NOT NULL, - probe_id integer NOT NULL -); - - --- --- Name: peer_tx; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.peer_tx ( - raw_peer_id bytea NOT NULL, - tx_hash character varying(66) NOT NULL, - received timestamp with time zone NOT NULL, - received_by_probe integer NOT NULL -); - - --- --- Name: probe; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.probe ( - id integer NOT NULL, - ip inet NOT NULL, - deployed timestamp with time zone NOT NULL -); - - --- --- Name: raw_dht_peer; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.raw_dht_peer ( - id bigint NOT NULL, - pubkey bytea NOT NULL, - ip inet NOT NULL, - port integer NOT NULL, - client_id text, - network_id bytea, - genesis_hash bytea, - forks jsonb, - created_at timestamp with time zone DEFAULT now() NOT NULL, - updated_at timestamp with time zone DEFAULT now() NOT NULL -); - - --- --- Name: raw_peer; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.raw_peer ( - id bytea NOT NULL, - ip inet NOT NULL, - port integer NOT NULL, - client_id text NOT NULL, - created_at timestamp with time zone DEFAULT now() NOT NULL -); - - --- --- Name: site; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.site ( - id integer NOT NULL, - provider text NOT NULL, - az text NOT NULL, - probe_id integer NOT NULL, - privkey bytea NOT NULL -); - - --- --- Name: tx_chain; Type: TABLE; Schema: eth_meta; Owner: - --- - -CREATE TABLE eth_meta.tx_chain ( - id bytea NOT NULL, - height integer NOT NULL, - ts timestamp with time zone NOT NULL -); - - -- -- Name: watched_addresses; Type: TABLE; Schema: eth_meta; Owner: - -- @@ -689,14 +482,6 @@ ALTER TABLE ONLY eth.log_cids ADD CONSTRAINT log_cids_pkey PRIMARY KEY (rct_id, index, header_id, block_number); --- --- Name: pending_txs pending_txs_pkey; Type: CONSTRAINT; Schema: eth; Owner: - --- - -ALTER TABLE ONLY eth.pending_txs - ADD CONSTRAINT pending_txs_pkey PRIMARY KEY (tx_hash); - - -- -- Name: receipt_cids receipt_cids_pkey; Type: CONSTRAINT; Schema: eth; Owner: - -- @@ -781,7 +566,7 @@ ALTER TABLE ONLY public.nodes -- Name: access_list_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX access_list_block_number_index ON eth.access_list_elements USING brin (block_number); +CREATE INDEX access_list_block_number_index ON eth.access_list_elements USING btree (block_number); -- @@ -802,7 +587,7 @@ CREATE INDEX access_list_storage_keys_index ON eth.access_list_elements USING gi -- Name: header_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX header_block_number_index ON eth.header_cids USING brin (block_number); +CREATE INDEX header_block_number_index ON eth.header_cids USING btree (block_number); -- @@ -823,7 +608,7 @@ CREATE INDEX log_address_index ON eth.log_cids USING btree (address); -- Name: log_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX log_block_number_index ON eth.log_cids USING brin (block_number); +CREATE INDEX log_block_number_index ON eth.log_cids USING btree (block_number); -- @@ -872,7 +657,7 @@ CREATE INDEX log_topic3_index ON eth.log_cids USING btree (topic3); -- Name: rct_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX rct_block_number_index ON eth.receipt_cids USING brin (block_number); +CREATE INDEX rct_block_number_index ON eth.receipt_cids USING btree (block_number); -- @@ -882,13 +667,6 @@ CREATE INDEX rct_block_number_index ON eth.receipt_cids USING brin (block_number CREATE INDEX rct_cid_block_number_index ON eth.receipt_cids USING btree (cid, block_number); --- --- Name: rct_contract_hash_index; Type: INDEX; Schema: eth; Owner: - --- - -CREATE INDEX rct_contract_hash_index ON eth.receipt_cids USING btree (contract_hash); - - -- -- Name: rct_contract_index; Type: INDEX; Schema: eth; Owner: - -- @@ -907,7 +685,7 @@ CREATE INDEX rct_header_id_index ON eth.receipt_cids USING btree (header_id); -- Name: state_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX state_block_number_index ON eth.state_cids USING brin (block_number); +CREATE INDEX state_block_number_index ON eth.state_cids USING btree (block_number); -- @@ -938,13 +716,6 @@ CREATE INDEX state_header_id_index ON eth.state_cids USING btree (header_id); CREATE INDEX state_leaf_key_block_number_index ON eth.state_cids USING btree (state_leaf_key, block_number DESC); --- --- Name: state_partial_path_index; Type: INDEX; Schema: eth; Owner: - --- - -CREATE INDEX state_partial_path_index ON eth.state_cids USING btree (partial_path); - - -- -- Name: state_removed_index; Type: INDEX; Schema: eth; Owner: - -- @@ -963,7 +734,7 @@ CREATE INDEX state_root_index ON eth.header_cids USING btree (state_root); -- Name: storage_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX storage_block_number_index ON eth.storage_cids USING brin (block_number); +CREATE INDEX storage_block_number_index ON eth.storage_cids USING btree (block_number); -- @@ -987,13 +758,6 @@ CREATE INDEX storage_header_id_index ON eth.storage_cids USING btree (header_id) CREATE INDEX storage_leaf_key_block_number_index ON eth.storage_cids USING btree (storage_leaf_key, block_number DESC); --- --- Name: storage_partial_path_index; Type: INDEX; Schema: eth; Owner: - --- - -CREATE INDEX storage_partial_path_index ON eth.storage_cids USING btree (partial_path); - - -- -- Name: storage_removed_index; Type: INDEX; Schema: eth; Owner: - -- @@ -1012,14 +776,14 @@ CREATE INDEX storage_state_leaf_key_index ON eth.storage_cids USING btree (state -- Name: timestamp_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX timestamp_index ON eth.header_cids USING brin ("timestamp"); +CREATE INDEX timestamp_index ON eth.header_cids USING btree ("timestamp"); -- -- Name: tx_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX tx_block_number_index ON eth.transaction_cids USING brin (block_number); +CREATE INDEX tx_block_number_index ON eth.transaction_cids USING btree (block_number); -- @@ -1054,7 +818,7 @@ CREATE INDEX tx_src_index ON eth.transaction_cids USING btree (src); -- Name: uncle_block_number_index; Type: INDEX; Schema: eth; Owner: - -- -CREATE INDEX uncle_block_number_index ON eth.uncle_cids USING brin (block_number); +CREATE INDEX uncle_block_number_index ON eth.uncle_cids USING btree (block_number); -- @@ -1078,62 +842,6 @@ CREATE INDEX uncle_header_id_index ON eth.uncle_cids USING btree (header_id); CREATE INDEX blocks_block_number_idx ON ipld.blocks USING btree (block_number DESC); --- --- Name: access_list_elements trg_eth_access_list_elements; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_access_list_elements AFTER INSERT ON eth.access_list_elements FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: header_cids trg_eth_header_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_header_cids AFTER INSERT ON eth.header_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: log_cids trg_eth_log_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_log_cids AFTER INSERT ON eth.log_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: receipt_cids trg_eth_receipt_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_receipt_cids AFTER INSERT ON eth.receipt_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: state_cids trg_eth_state_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_state_cids AFTER INSERT ON eth.state_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: storage_cids trg_eth_storage_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_storage_cids AFTER INSERT ON eth.storage_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: transaction_cids trg_eth_transaction_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_transaction_cids AFTER INSERT ON eth.transaction_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - --- --- Name: uncle_cids trg_eth_uncle_cids; Type: TRIGGER; Schema: eth; Owner: - --- - -CREATE TRIGGER trg_eth_uncle_cids AFTER INSERT ON eth.uncle_cids FOR EACH ROW EXECUTE FUNCTION eth.graphql_subscription(); - - -- -- Name: access_list_elements ts_insert_blocker; Type: TRIGGER; Schema: eth; Owner: - --