You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tag:
Branch:
Tree:
a5ca11930a
1129
1129-2
522-improve-flaky-feature-tests
853-css-custom-properties
937-bugfix-filter-out-reorg-transactions
Claire
ab-add-block-number-transactions-index
ab-add-clause-for-transactions-with-indexed-creaded-code
ab-add-index-for-block-number-in-token-transfers
ab-add-index-on-type
ab-add-sorting-index-for-rewards
ab-add-unique-index-for-token-transfers
ab-allow-to-set-timeout-for-ws-blocks
ab-change-primary-key-for-internal-transactions
ab-coin-percentage-fix
ab-decrease-blocks-number-for-geth
ab-do-not-load-token-transfers-for-main-page
ab-do-not-remove-token-transfers
ab-increase-timeout-for-average-block-time-query
ab-limit-all-fetchers-for-geth
ab-logs-pending-ops
ab-new-block-fields
ab-not-filter-internal-transaction-older-than-128-blocks
ab-populate-block-hash-for-internal-transactions
ab-refresh-mintable-tokens
ab-reinsert-token-transfers
ab-remove-first-trace
ab-remove-pending-ops-on-invalidation
ab-transaction-count-db-level
ab-use-block-hash-instead-of-block-number
account
address-infinite-scroll
af-eip7702-addresses
af-eip7702-transactions
all-in-one-docker-image
ap-add-env-vars-for-tt-token-type-migration
ap-add-window-for-missing-balance-of-tokens-check
ap-allow-other-postgres-schemas
ap-db-denormalization
ap-db-denormalization-tem
ap-fix-internal-transaction-error
ap-fix-migrators-cache-updating
ap-fix-mode-env
ap-fix-token-transfers-consensus-update
ap-fix-txlist
ap-fix-ws-client-reconnect
ap-handle-nil-token-ids
ap-http-client-test
ap-main-page-event-handler
ap-null-round-support
ap-optimize-ctb-runner
ap-pending-transaction-operation
ap-refactor-import-stages
ap-switch-from-replica
ap-temp-fix-migration
ap-temp-trans-action-logs
ap-temporary-missing-ranges-fix
arb-l2-msg-claiming
arm-build-test
ayrat555/erc1155-support
besu-revert-reason
block-reorg-fixes
candidate-likelihood
catchup-block-interval-env
chainchad/dockerfile-nonroot-only
contract-code-sanitizer
dependabot/hex/briefly-a533393
dependabot/hex/dialyxir-1.4.4
dependabot/hex/logger_json-6.2.1
dependabot/hex/mox-1.2.0
dependabot/hex/phoenix-1.7.14
dependabot/hex/phoenix_html-3.3.3
dependabot/hex/phoenix_live_reload-1.5.1
dependabot/hex/tesla-1.13.2
dependabot/npm_and_yarn/apps/block_scout_web/assets/sass-loader-16.0.3
dev
docker-compose-changing-fe-port
dockerfile-nonroot-only
dont-delete-data-for-old-blocks
ens-support
feature/arbitrum/adjusted-txs-stats
feature/arbitrum/missing-fields-backfiller
fi-celo-epoch-transactions-csv-export
fi-compare-with-brindixer
fi-fix-duplicate-read-methods
fi-fix-missing-0x-prefix
fi-fix-missing-signers-field
fi-fix-skipped-read-methods
fi-fix-token-balance-fetcher
fi-zilliqa-scilla
filter-current-token-balances
filter-token-transfers-from-coin-balance-address-updates
fix-503-page
fix-address-contract-code-update
fix-contract-creation-transactions
fix-e2e-workflow
fix-install-chrome-headless
fix-missing-ranges-collector-test
fix-nonconsensus-pending-ops
fix-token-instance-fetcher
gettext-expirementing
gsf-async-load-token-transfers
gsf-more-async-more-loading-now-available-on-the-token-holders-page-near-your-address
gsf-validator-metadata
internal-transactions-fetcher-upgrade
kf-arm-build-test
kf-arm-build-test2
kf-fix-code-compiler-test
kf-fix-geth-revert-reasons
kf-fix-stuck-ci-cache
kf-jsonrpc-tests-without-matrix
kf-simplify-internal-transaction-queries
kf-switch-prometheus-to-hex
kf/chore/dockerfile-refactor
kf/feat/rework-indices
kf/perf/refactor-tx-decoding
limit-fetchers-init-tasks
limit-token-instance-retry-fetcher
master
master-1.3.12
master-before-merging-stake
master-staging
master-with-bridged-tokens
master-with-staking
mf-8807-example
mf-account-v2-handle-excessive-otp-checks
mf-add-logs-contracts-queries
mf-add-polygon-edge-genesis-file
mf-add-prometheus-metrics-for-indexer
mf-add-tokens-sorting-test
mf-add-traceblockbynumber-to-trace-methods
mf-cspell-not-works-showcase
mf-cspell-works-showcase
mf-debug-base
mf-extend-INDEXER_MEMORY_LIMIT-env-parsing
mf-fix-error-handling-eth-getbalance
mf-fix-eth-get-logs-paging
mf-fix-polygon-edge
mf-fix-rootstock-data-fetcher
mf-fix-token-instances-preloads
mf-fix-vyper-multipart
mf-fix-wa-flaking-test
mf-gas-price-oracle-base-priority
mf-implement-fetching-internal-txs-using-call-tracer
mf-init-mixpanel-and-amplitude-analytics
mf-l1-state-batch-size-counter
mf-only-health-webapp
mf-optimize-advanced-filters-2
mf-optimize-exchange-rates-requests-rate
mf-preload-example
mf-refactor-compile-time-envs-usage
mf-rootstock-tracing
mf-rootstock-widget
mf-xdai-fix-native-coin-exchange-rate
migration-to-react
no-merge/reduce-fetchers
np-add-coin-balance-trigger
np-add-is-verified-for-tokens
np-add-new-create-clause
np-add-new-index-to-speedup-indexing
np-add-new-pagination-to-address-page
np-add-readiness-and-liveness-probes
np-add-smart-contracts-name-index
np-add-switcher-for-nft-migrator
np-add-tab-counters-endpoint
np-add-verkle-images-demo
np-addresses-endpoint-performance
np-api-v2-performance-indexes
np-ban-nfts
np-cdn
np-change-nonce-field-type
np-create-filepath-backfiller
np-dbg-csv
np-ens-hf
np-fix-1155-metadata-indexer
np-fix-api-v2-pagination
np-fix-coin-balance-history-tx-absence
np-fix-copied-tooltip
np-fix-css-styles
np-fix-forever-pending-verification
np-fix-nft-media
np-fix-read-contract
np-fix-reverted-contract-creation
np-fix-smart-contracts-read
np-fix-sourcify-api-v2
np-fix-ui-logs-query
np-hf-account-watchlist
np-hf-cache-disabling
np-improve-contract-verification
np-improve-logs-and-inputs-decoding
np-improve-unverified-email-flow
np-indexer-handle-502
np-klaytn-style
np-metadata-new-endpoints
np-move-elasticity-multiplier-to-envs
np-mute-csrf-warn-experiment
np-new-main-page
np-optimism-debug-txs
np-patch-exchange-rates
np-raise-csv-limits-temp
np-search-api
np-sokol-pagination
np-sourcify-constructor-args
np-token-balances-refactoring
np-tracing
np-tune-verifier-logs
np-xdai-add-bridged-tokens-to-api-v2
nz-bs-indexer-eth-goerli-resources
nz-visualizer-cors
parallel-derive-current-token-balances
parallel-stages
pp-double-token-transfers-refetcher
pp-internal-transactions-number-refetcher
pp-internal-txs-pending-ops-temp
pp-missing-token-transfers-refetcher
pp-pending-block-ops
pp-pending-blocks-ops
production-aerum
production-aox
production-aox-stg
production-arbitrum
production-arbitrum-stg
production-base-goerli
production-base-goerli-stg
production-blackfort
production-callisto
production-celo
production-classic
production-classic-stg
production-core
production-core-stg
production-etc-kotti
production-etc-kotti-stg
production-etc-mordor
production-etc-mordor-stg
production-eth
production-eth-experimental
production-eth-experimental-old
production-eth-goerli
production-eth-goerli-stg
production-eth-sepolia
production-eth-sepolia-stg
production-eth-stg
production-eth-stg-2
production-eth-stg-experimental
production-filecoin
production-filecoin-stg
production-fuse
production-fuse-stg
production-gc-chiado
production-gc-chiado-stg
production-gc-optimism-stg
production-harmony-mainnet-shard-0
production-harmony-mainnet-shard-0-stg
production-harmony-mainnet-shard-0-stg-experiment
production-immutable-stg
production-iota
production-iota-stg
production-iota-stg-debug
production-klaytn
production-klaytn-stg
production-kovan
production-kovan-stg
production-lukso
production-lukso-stg
production-mainnet
production-mainnet-new
production-mainnet-new-refetchers
production-matic
production-moonbeam
production-neon
production-optimism
production-optimism-5.4.0
production-optimism-old
production-optimism-opcraft
production-optimism-opcraft-stg
production-optimism-stg
production-optimism-stg-debug
production-optimism-stg-rebase
production-polygon-edge-stg
production-polygon-supernets
production-polygon-supernets-stg
production-posdao
production-qdai
production-qdai-stg
production-redstone
production-rinkeby
production-ropsten
production-rsk
production-rsk-stg
production-rsk-stg-debug
production-scroll
production-shibarium
production-sokol
production-sokol-stg
production-stability-stg
production-stability-stg-debug
production-suave-stg
production-withdrawals
production-withdrawals-stg
production-xdai
production-xdai-clean
production-xdai-customized
production-xdai-rebase
production-xdai-stg
production-xdai-stg-debug
production-xusdt
production-zetachain
production-zilliqa
production-zkevm
production-zkevm-stg
production-zksync
production-zksync-stg
qemu-build
remove-block-consensus-on-import-fail
remove-deriving-current-token-balances
remove-sync-token-holders-update
remove-token-balances-deleting
replace-posdao-variables
revert-2843-ab-fix-small-skips-feature
revert-7965-dependabot/npm_and_yarn/apps/block_scout_web/assets/webpack-5.88.2
rimrakhimov-fix-nethermind-yaml-readme
sa-1189-realtime-no-skips-bug
sa-turn-off-invalidconsensus-checker
sa-uncataloged-token-transfers-with-nil-block-numbers
separated-api
sequential-addresses-stage
snyk-upgrade-13736d3a13841dd2d5f5fc7133ff67f1
split-range-on-catchup-fail
stable-1.0
staging
staging-filter-addresses-before-insertion
staging-l2
staging-mainnet
staging-mainnet-stg
staging-mainnet-stg-experiment
staking
staking-before-rebase
staking-debug
staking-fix-pool-filters
staking-fix-ui
staking-fix-ui-bugs
staking-fix-ui-mobile
staking-fix-ui-theme
staking-latest
staking-rebased
staking-replace-dummy-text
staking-restrict-networks
staking-wallet-connect-integration
temp-blocks-in-order
test-new-armbuilders
test_branch
token-balance-on-demand-include-unfetched
token-symbol
token-total-supply-updater
transactions-history
ulyanas-patch-1
ulyanas-patch-2
update-deps-last
use-chrome-headless-#403
v1.3.12-beta
v1.3.13-beta
v1.3.14-beta
v1.3.15-beta
v1.3.16-beta
v5.4.0-beta-custom
v6.0.0-dev
v6.9.1
vb-add-contract-association
vb-address-badges
vb-address_to_logs_query-performance
vb-addresses-import-in-parallel
vb-airtable-proxy
vb-api-cors-management
vb-api-v2-check-base_fee_per_gas-for-pending
vb-api-v2-check-base_fee_per_gas-for-pending-tx
vb-aquire-tokens-for-update-rollback
vb-asc-indices
vb-async-get-block-rewards
vb-autocomplete-alternative
vb-beacon-proxy-missing-expection-fix
vb-besu-support
vb-block-rewards-block-number
vb-change-log-topic-type
vb-clones-with-immutable-arguments
vb-coin-banace-daily-block-timestamp-fxi
vb-coingecko-change-token-image-attribute-priority
vb-consensus-timestamp-in-transaction
vb-current-token-balances-fetcher-full
vb-defillama-tvl-source
vb-define-default-port
vb-detect-unverified-diamond-proxy
vb-diamond-proxy
vb-disable-ondemand-token-balance-fetcher
vb-docker-compose-external-backend
vb-docker-compose2_24_6-compatibility
vb-docker-connect-to-exisiting-db
vb-dockerfile-nonroot-only
vb-downgrade-hackney
vb-drop-unused-actb-indexes
vb-eliminate-checksum-function-env
vb-erc1155-unnamed-tokens
vb-exclude-preloads-in-user-ops-lists
vb-exclude-system-transactions-from-replaced-txs-indexer
vb-first-topic-to-separate-table
vb-first-trace-on-demand-temp
vb-fix-base-instance-errors
vb-fix-block-reward-in-api
vb-fix-clique
vb-fix-decoding
vb-fix-docker-compose-auth-path
vb-fix-empty-gas-price-in-pending-tx
vb-fix-indexer-error-status
vb-fix-issue-template
vb-fix-performance-coin-balance-history
vb-fix-preload-additional-sources-at-bytecode-twin
vb-fix-scam-badge-status
vb-fix-token-balances-collection-for-burn-address
vb-get-implemetation-proxy-pattern
vb-graphql-default-transaction
vb-graphql-req-size-limit
vb-handle-nethermind-trace-nil-type
vb-inactive-pools-description
vb-index-for-refetch-needed
vb-index-to-speedup-aquiring-pbo
vb-insecure-http-connection
vb-internal-transactions-list
vb-internal-txs-api-v2-endpoint-perf-workaround
vb-invalidate-blocks-at-token-balance-update-failed
vb-ipfs-links-better-detection
vb-ipfs-links-better-detection-light
vb-metadata-from-base-uri
vb-migrate-to-phoenix-1-6
vb-moonbeam-support
vb-multichain-search
vb-next-page-params-missing-clause
vb-nft-collection-trigger-metadata-refetch-admin-api-endpoint
vb-no-missing-blocks-in-ui
vb-open-ability-to-refetch-metadata-for-instances-without-metadata
vb-optimize-webpack-js-bundle-compilation
vb-persistent-token-holders
vb-production-withdrawals
vb-production-withdrawals-stg
vb-refactor-docker-compose
vb-refine-token-ids-index
vb-remove-comments-in-js-tracer
vb-remove-comments-in-tracer-js
vb-remove-stg-suffix
vb-rollback-union-for-address-intenral-txs
vb-routes-fix
vb-save-proxy-type
vb-set-ssl_opts-in-runtime-config
vb-single-docker-image
vb-solidityscan-support
vb-speedup-load-current-token-balances
vb-split-address-current-token-balances-split
vb-split-js
vb-staking-actualize-2
vb-table-partitioning
vb-test-deadlocks
vb-token-id-in-tokenlist
vb-token-instance-retry-batch
vb-token-tansfer-eliminate-from-query
vb-token-transfers-perf
vb-top-tokens-page-tx-count
vb-vb-address-badges-new-is-scam-flag
vb-wobserver-optional
wobserver-customization
wsa-implement-emission-reward-tile
wsa-jason-decode-error
v1.0-beta
v1.0.1-beta
v1.1.0-beta
v1.2.0-beta
v1.2.1-beta
v1.3.0-beta
v1.3.1-beta
v1.3.10-beta
v1.3.11-beta
v1.3.12-beta
v1.3.13-beta
v1.3.14-beta
v1.3.15-beta
v1.3.2-beta
v1.3.3-beta
v1.3.4-beta
v1.3.5-beta
v1.3.6-beta
v1.3.7-beta
v1.3.8-beta
v1.3.9-beta
v2.0.0-beta
v2.0.1-beta
v2.0.2-beta
v2.0.3-beta
v2.0.4-beta
v2.1.0-beta
v2.1.1-beta
v3.0.0-beta
v3.1.0-beta
v3.1.1-beta
v3.1.2-beta
v3.1.3-beta
v3.2.0-beta
v3.3.0-beta
v3.3.1-beta
v3.3.2-beta
v3.3.3-beta
v3.4.0-beta
v3.5.0-beta
v3.5.1-beta
v3.6.0-beta
v3.7.0-beta
v3.7.1-beta
v3.7.2-beta
v3.7.3-beta
v4.0.0-beta
v4.1.0-beta
v4.1.1-beta
v4.1.2-beta
v4.1.3-beta
v4.1.4-beta
v4.1.5-beta
v4.1.6-beta
v4.1.7-beta
v4.1.8-beta
v5.0.0-beta
v5.1.0-beta
v5.1.1-beta
v5.1.2-beta
v5.1.3-beta
v5.1.4-beta
v5.1.5-beta
v5.2.0-beta
v5.2.1-beta
v5.2.2-beta
v5.2.3-beta
v5.3.0-beta
v5.3.1-beta
v5.3.2-beta
v5.3.3-beta
v5.4.0-beta
v6.0.0-beta
v6.1.0-beta
v6.2.0-beta
v6.2.1-beta
v6.2.2-beta
v6.3.0-beta
v6.4.0-beta
v6.5.0-beta
v6.6.0-beta
v6.7.0-beta
v6.7.1-beta
v6.7.2-beta
v6.8.0-beta
v6.8.1-beta
v6.9.0-beta
v6.9.1-beta
${ noResults }
Luke Imhoff
2a4223c2c6
Fixes #1266 Issue #1266 was triggered when the recorded block number exceeded the reported max block number as can happen temporary when the node that gives the latest block number is farther behind than the node that gave the block data. The previous `Explorer.Chain.missing_block_number_ranges` query added in #1230 did not account for the max block number in the database exceeding the range max. When this occurs, an errant range was produced by the #1230 query because it chose the greatest of the range and the max block when trying to find the end point for the gap search. The testing did not catch #1266 because the doctests only used block numbers that exceeded the search range, by 1 and the bug did not show up until it was 2 or more. The new query is split into 4 subqueries: 1. missing prefix when range min < min(block.number) 2. missing infix when the blocks aren't in the range at all 3. missing suffix when max(block.number) < range max 4. gaps between existent block numbers This version is also more efficient as there is only a single sort of the outer `UNION ALL` result instead of a sort of real blocks and fake end points for the range. It is able to move the `UNION ALL` up because it doesn't need to produce fake end cap blocks. This positioning of the `UNION ALL` and `ORDER BY` on the outer most query allows for all 4 queries to use `one_consensus_block_at_height` index and either a limit (for `min`/`max`) or a window aggregate (for `lag`), which has minimal, single row cost. |
6 years ago | |
---|---|---|
.. | ||
benchmarks/explorer/chain | Denormalize blocks.number into transasctions.block_number | 7 years ago |
config | Use :timer functions to make timeout values clearer | 6 years ago |
lib | Allow block numbers to exceed missing block search range by > 1 | 6 years ago |
priv | Remove opcodes from CodeCompiler | 6 years ago |
test | Failing regression test for #1266 | 6 years ago |
.gitignore | Add bare admin panel (#927) | 6 years ago |
.sobelow-conf | Derive transaction forks for transacion in blocks that go non-consensus | 6 years ago |
README.md | Support for Moxing WebSocket | 6 years ago |
coveralls.json | Use configuration to conditionally start processes (#178) | 7 years ago |
mix.exs | Add :dev to plug_cowboy dependency in explorer | 6 years ago |
package-lock.json | Update JS solidity compiler | 6 years ago |
package.json | Update JS solidity compiler | 6 years ago |
README.md
BlockScout
This is a tool for inspecting and analyzing the POA Network blockchain.
Machine Requirements
- Erlang/OTP 20.2+
- Elixir 1.5+
- Postgres 10.0
Required Accounts
- Github for code storage
Setup Instructions
Development
To get BlockScout up and running locally:
- Set up some default configuration with:
$ cp config/dev.secret.exs.example config/dev.secret.exs
- Install dependencies with
$ mix do deps.get, local.rebar, deps.compile, compile
- Create and migrate your database with
$ mix ecto.create && mix ecto.migrate
- Run IEx (Interactive Elixir) to access the index and explore:
$ iex -S mix
Testing
- Format the Elixir code:
$ mix format
- Run the test suite with coverage:
$ mix coveralls.html
- Lint the Elixir code:
$ mix credo --strict
- Run the dialyzer:
mix dialyzer --halt-exit-status
- Check the Elixir code for vulnerabilities:
$ mix sobelow --config
Benchmarking
Explorer.Chain.recent_collated_transactions/0
- Reset the test database:
MIX_ENV=test mix do ecto.drop, ecto.create, ecto.migrate
- Change
tag
inbenchmarks/explorer/chain/recent_collated_transactions.exs
to a new value, so that it will compare against the old values saved inbenchmarks/explorer/chain/recent_collated_transactions.benchee
- Run the benchmark:
MIX_ENV=test mix run benchmarks/explorer/chain/recent_collated_transactions.exs