blockscout

Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.

GPL-3.0 License

Stars
3.2K
Committers
166
blockscout - BlockScout v1.3.14-beta (performance refinement)

Published by vbaranov over 5 years ago

Features

  • #1812 - add pagination to addresses page
  • #1920 - fix: remove source code fields from list endpoint
  • #1876 - async calculate a count of blocks

Fixes

  • #1917 - Force block refetch if transaction is re-collated in a different block

Chore

  • #1892 - Remove temporary worker modules
blockscout - BlockScout v1.3.13-beta

Published by vbaranov over 5 years ago

Features

  • #1933 - add eth_BlockNumber json rpc method

Fixes

  • #1875 - fix: resolve false positive constructor arguments
  • #1881 - fix: store solc versions locally for performance
  • #1898 - check if the constructor has arguments before verifying constructor arguments
blockscout - BlockScout v1.3.12-beta

Published by vbaranov over 5 years ago

Reverting of synchronous block counter, implemented in #1848, that leads to slow down of the main page

blockscout - BlockScout v1.3.11-beta

Published by vbaranov over 5 years ago

Features

  • #1815 - Be able to search without prefix "0x"
  • #1813 - Add total blocks counter to the main page
  • #1806 - Verify contracts with a post request
  • #1848 - Add cache for block counter

Fixes

  • #1829 - Handle nil quantities in block decoding routine
  • #1830 - Make block size field nullable
  • #1840 - Handle case when total supply is nil
  • #1838 - Block counter calculates only consensus blocks

Chore

  • #1814 - Clear build artefacts script
  • #1837 - Add -f flag to clear_build.sh script delete static folder
blockscout - BlockScout v1.3.10-beta

Published by vbaranov over 5 years ago

Features

  • #1739 - highlight decompiled source code
  • #1696 - full-text search by tokens
  • #1742 - Support RSK
  • #1777 - show ERC-20 token transfer info on transaction page
  • #1770 - set a websocket keepalive from config
  • #1789 - add ERC-721 info to transaction overview page

Fixes

  • #1724 - Remove internal tx and token balance fetching from realtime fetcher
  • #1727 - add logs pagination in rpc api
  • #1740 - fix empty block time
  • #1743 - sort decompiled smart contracts in lexicographical order
  • #1756 - add today's token balance from the previous value
  • #1769 - add timestamp to block overview
  • #1768 - fix first block parameter
  • #1778 - Make websocket optional for realtime fetcher
  • #1790 - fix constructor arguments verification
  • #1793 - fix top nav autocomplete
  • #1795 - fix line numbers for decompiled contracts
  • #1803 - use coinmarketcap for total_supply by default
  • #1802 - make coinmarketcap's number of pages configurable
  • #1799 - Use eth_getUncleByBlockHashAndIndex for uncle block fetching
  • #1531 - docker: fix dockerFile for secp256k1 building

Chore

  • #1804 - (Chore) Divide chains by Mainnet/Testnet in menu
  • #1783 - Update README with the chains that use Blockscout
  • #1780 - Update link to the Github repo in the footer
  • #1757 - Change twitter acc link to official Blockscout acc twitter
  • #1749 - Replace the link in the footer with the official POA announcements tg channel link
  • #1718 - Flatten indexer module hierarchy and supervisor tree
  • #1753 - Add a check mark to decompiled contract tab
  • #1744 - remove 0x0..0 from tests
  • #1763 - Describe indexer structure and list existing fetchers
  • #1800 - Disable lazy logging check in Credo
blockscout - BlockScout v1.3.9-beta

Published by ayrat555 over 5 years ago

1.3.9-beta

Features

  • #1662 - allow specifying number of optimization runs
  • #1654 - add decompiled code tab
  • #1661 - try to compile smart contract with the latest evm version
  • #1665 - Add contract verification RPC endpoint.
  • #1706 - allow setting update interval for addresses with balances counter

Fixes

  • #1669 - do not fail if multiple matching tokens are found
  • #1691 - decrease token metadata update interval
  • #1688 - do not fail if failure reason is atom
  • #1692 - exclude decompiled smart contract from encoding
  • #1684 - Discard child block with parent_hash not matching hash of imported block
  • #1699 - use seconds as transaction cache period measure
  • #1697 - fix failing in rpc if balance is empty
  • #1711 - rescue failing repo in block number cache update
  • #1712 - do not set contract code from transaction input
  • #1714 - fix average block time calculation
blockscout - BlockScout v1.3.8-beta

Published by vbaranov over 5 years ago

Features

  • #1611 - allow setting the first indexing block
  • #1596 - add endpoint to create decompiled contracts
  • #1634 - add transaction count cache

Fixes

  • #1630 - (Fix) colour for release link in the footer
  • #1621 - Modify query to fetch failed contract creations
  • #1614 - Do not fetch burn address token balance
  • #1639 - Optimize token holder count updates when importing address current balances
  • #1643 - Set internal_transactions_indexed_at for empty blocks
  • #1647 - Fix typo in view
  • #1650 - Add petersburg evm version to smart contract verifier
  • #1657 - Force consensus loss for parent block if its hash mismatches parent_hash
blockscout - BlockScout v1.3.7-beta

Published by vbaranov over 5 years ago

Features

Fixes

  • #1615 - Add more logging to code fixer process
  • #1613 - Fix USD fee value
  • #1577 - Add process to fix contract with code
  • #1583 - Chunk JSON-RPC batches in case connection times out

Chore

  • #1610 - Add PIRL to Readme
blockscout - BlockScout v1.3.6-beta

Published by vbaranov over 5 years ago

Features

  • #1589 - RPC endpoint to list addresses
  • #1567 - Allow setting different configuration just for realtime fetcher
  • #1562 - Add incoming transactions count to contract view

Fixes

  • #1595 - Reduce block_rewards in the catchup fetcher
  • #1590 - Added guard for fetching blocks with invalid number
  • #1588 - Fix usd value on address page
  • #1586 - Exact timestamp display
  • #1581 - Consider creates param when fetching transactions
  • #1559 - Change v column type for Transactions table

Chore

  • #1579 - Add SpringChain to the list of Additional Chains Utilizing BlockScout
  • #1578 - Refine contributing procedure
  • #1572 - Add option to disable block rewards in indexer config
blockscout - BlockScout v1.3.5-beta

Published by vbaranov over 5 years ago

Features

Fixes

Chore

blockscout - BlockScout v1.3.4-beta

Published by acravenho over 5 years ago

Enhancements

  • check if to_address_hash is a contract address to fetch internal transactions (#1455)
  • add indexes for block_reward query (#1454)
  • add indexes required for blocks runner (#1447)
  • show an approximation of transaction time (#1446)

Bugfixes

  • fix: add coin_balance_status to address_validations (#1462)
  • propagate errors from parent calls (#1452)
  • do not try to convert nil values in logs (#1451)
blockscout - BlockScout v1.3.3-beta

Published by acravenho over 5 years ago

Enhancements

  • add indexes required for blocks runner (#1447)
  • verify smart contracts with external libraries (#1410)
  • verify smart contract constructor arguments (#1414)
  • pass external libraries to the Solidity compiler (#1418)
  • add unique index for block_rewards table (#1423)
  • add index for address_current_token_balances (#1425)
  • add CERTFILE and KEYFILE envvars. Not breaking. (#1426)
  • reduce uncle rewards (#1435)
  • add index on block number to address token balances (#1444)
  • feat: make replaced transactions disabled (#1445)
  • add indexes required for blocks runner (#1447)

Bugfixes

  • Don't return nil block numbers from uncataloged_token_transfer_block_numbers. (#1412)
  • Don't attempt to add non-integer block numbers to the sequence, and warn if we get one. (#1412)
  • deduplicate input data before upserting block rewards (#1423)
  • add index 3 to external validator type of fetched beneficiary (#1439)
blockscout - BlockScout v1.3.2-beta

Published by acravenho over 5 years ago

Enhancements

  • update transactions even if internal transactions are inserted (#1384)
  • upgraded the migration script to run in batches. (#1385)
  • cache min and max block numbers (#1388)
  • use cached min and max values to calculate the indexed ratio (#1388)
  • use Token Bridge smart contracts to calculate xDai's market cap (#1396)
  • compile smart contracts with external libraries (#1400)

Bugfixes

  • do not try to convert nil values to an integer in receipts response (#1398)
  • adds reward type external at index 2 (#1399)
  • fix docker build dependencies (#1401)
  • dockerfile: conditionally change coin name in gettext via environment (#1402)
  • add forum support link to the footer (#1403)
  • update the font style of the version in the footer (#1403)
  • fix the styling of the reward on the blocks page (#1403)
  • update the copy button on the verified contract page (#1403)
  • Special case the genesis block in the clique block transformer. (#1409)
  • Resolve other small errors when using clique (#1409)
  • Add a small amount of UI sugar for the genesis block (#1409)
blockscout - BlockScout v1.3.1-beta

Published by acravenho over 5 years ago

Enhancements

  • Allow list of block numbers instead of ranges for fetching beneficiaries as it simplifies calling as numbers don't need to be grouped into ranges when gettings numbers from database. (#1337)
  • Rename reward functions to match domain terminology:
    • minted - reward directly from fetch beneficiaries that was minted for the new block.
    • gas payment - Wei paid to the validator by the transaction signers to cover the gas.
  • Optimize add_gas_payments (#1337)
  • Use aliases consistently in tests. (#1337)
  • Use Ecto 3 coalesce, sum, +, and * support (#1337)
  • Calculate gas payments for all blocks in batch in SQL. (#1337)
  • Convert UncatalogedRewards.Processor into a BufferedTask …
    • Makes it works like the rest of the fetchers for consistency.
    • Allow it to participate in memory monitoring
  • Fetch beneficiary errors no longer kill the block catchup, but instead only causes them to be async fetched while the rest of the block imports (#1337)
  • Adds ReplacedTransaction.Fetcher which finds dropped/replaced transactions and sets corresponding fields (#1370)

Bugfixes

  • Wei.mult required both parameters to be Wei.t, but that meant it was actually yielding wei^2 units. Fix the units by requiring the first parameter to be wei and the second to be a unitless integer, which makes more sense for the gas_price * gas_used usage as we expect that to be measured in wei and not wei^2. (#1337)
  • Ignore beneficiaries with different block hashes for the submitted block number as this indicates a reorg happened between when the block was retrieved and the trace_block call returned. (#1337)
  • Addresses are created as needed for block rewards. (#1337)
  • Coin Balances are created for each block and address mentioned in a block reward.
    • Coin Balances are queued in CoinBalance.Fetcher.
blockscout - BlockScout v1.3.0-beta

Published by acravenho over 5 years ago

Enhancements

  • Creating AllowIframe plug. (#1168)
  • Editing router to have a new scope for write-only routes and a separate one for read-only routes which allows for iframes (#1168)
  • Adding CORSPlug with defaults plus x-apollo-tracing header for GraphQL usage with graphqlbin.com (#1173)
  • GraphQL API token_transfers query (#1176)
  • Add primary names to the top accounts page (#1178)
  • Reward values are now saved in the database for every block. (#1184)
  • Ensures consensus is valid for parent blocks (#1194)
  • Improve token balances fetching for specific addresses (#1197)
  • Have all uses of Repo.stream use new Repo.stream_in_transaction, so that none of them miss the :infinite timeouts if they are copied for a new one later. (#1209)
  • Use address_current_token_balances in address tokens tab (#1226)
  • Update to Ecto 3.0 (#1229)
  • Use reraise and STACKTRACE to reraise safe_insert_all errors (#1239)
  • Validator metadata retrieval and display (#1240)
  • Now it's possible to verify contracts compiled with solidity v0.5.0+. (#1245)
  • Add reward value of a block in the tile and overview section. (#1249)
  • Show token price in USD (#1264)
  • Implement emission reward tile (#1268)
  • Get rewards of blocks already indexed without rewards (#1269)
  • Restart on heartbeat timeout (#1270)
  • Market history chart load async (#1278)
  • Use info style in verify contract message (#1280)
  • Async loading to block list in the home page (#1281)
  • Remove buttons to show raw input/logs (#1282)
  • Store averge block time in a genserver (#1292)
  • Don't fetch internal transactions for simple token transfers (#1305)
  • Restrict Explorer.Chain.Block.get_blocks_without_reward to consensus (#1313)
  • Guard against nil in Parity.Trace.Action input (#1316)
  • Update address_current_token_balances and address_token_balances to remove those referencing replaced block numbers during reorgs (#1323)
  • Return polling to realtime fetcher (#1330)
  • Do not index internal transactions with simple token transfers (#1341)
  • Fetch Bytecode for contract creation addresses (#1347)
  • Improved docker makefile for checking existance of postgres DB (#1350)
  • Add catchup code fetcher for Bytecodes (#1353)
  • Better footer, configurable network list (#1356)
  • Set Token holder_count to 0 for new tokens (#1360)
  • Render addresses according to eip-55 (#1363)
  • Make insert_address_current_token_balances_in_batches only insert new (#1364)
  • Update to Phoenix 1.4 and cowboy 2.0 to enable HTTP/2 (#1365)
  • Add a minimum polling interval to protect from overrun (#1366)

Bug Fixes

  • Pattern matches more strictly on a function return value. {_, _} matches the {:error, reason} tuple that was being returned. (#1172)
  • The bug was that only the first transaction that had token transfers was being shown. (#1170)
  • Editing realtime fetcher's fetch_and_import_block function to wait 5 seconds if the block number given for it to fetch is a reorg. This is useful to improve the chance that the latest fetched block for a given
    number gets consensus. (#1194)
  • Fix realtime address balance update (#1191)
  • Fix overlapping names on token transfers (#1196)
  • Fix Block Validated page to show all tabs (#1205)
  • Fix displayed address length when a primary name presents (#1206)
  • Instead of collecting everything with Repo.all before inserting into ETS tables, use Repo.stream_each to stream rows into ETS tables. This will let data appear in the ETS table before all rows are returned from the database, so the readers will appear more responsive on restart.
    • Explorer.Counters.TokenTransferCounter
    • Explorer.Counters.BlockValidationCounter
    • Explorer.Counters.TokenHoldersCounter (#1209)
  • The short-circuiting [] was not being used for Indexer.TokenBalances.fetch_token_balances_from_blockchain due to the use of /1 and /2 with a default. (#1217)
  • Don't log errors when uncles aren't found (#1222)
  • Use lag windowing function to reduce missing block time (#1230)
  • fetch_and_import_range_from_sequence log exceptions instead of raise (#1235)
  • Stages will be between Import and the Import.Runner. Unlike Runners, which use 1 common Ecto.Multi, a Stage can produce 1 or more independent Ecto.Multi that will run in separate transactions. (#1242)
  • Failing to compile source code won't cause internal server error anymore. (#1245)
  • Convert DBConnection.ConnectionError tcp recv: closed to {:error, :timeout} (#1252)
  • Chunk pending transactions (#1254)
  • Only query for coin balance when channel connected (#1255)
  • Don't use step variable twice (#1256)
  • Use where clause for on_conflict to only write tuples that are different (#1260)
  • Increase DB transaction timeout to account for Eth Mainnet performance (#1265)
  • Add ON CONFLICT to derive_transaction_forks (#1271)
  • Fix: update spandex for run time config (#1272)
  • Allow block numbers to exceed missing block search range by > 1 (#1273)
  • Counter the need for counter queries by using COUNT(*) and adding indexes (#1275)
  • Use COUNT(*) and index of current_token_balances to eliminate TokenHoldersCounter (#1291)
  • Order current token balance inserts to prevent deadlock (#1296)
  • Delete block_rewards for non-consensus or old consensus blocks (#1309)
  • Order derive_tranactions_forks SELECT to match transaction inserts (#1318)
  • Fixes for ganache JSON RPC mistakes (#1321)
  • Script to fix address_current_token_balances (#1327)
  • Fix and optimize queries that need min or max block number (#1332)
  • Fix: Poll on import completion and only new blocks (#1338)
  • Optimize update_address_current_token_balances_in_batches (#1340)
  • Store and maintain Explorer.Chain.count_token_holders_from_token_hash in tokens.holder_count (#1357)
  • Don't reload every page (#1371)

Incompatible Changes

  • Current block_rewards renamed to emission_rewards. (#1184)
  • New block_rewards table created to house those rewards (#1184)
blockscout - BlockScout v1.2.1-beta

Published by acravenho almost 6 years ago

Enhancements

  • Address block validated list now loads all pages asynchronously
  • Async load now uses Redux.
  • GraphQL - Add internal transactions support
  • Support tracing. Disabled by default, instructions for enabling are located in the readme.
  • The token holders page now loads asynchronously
  • Partial retry for batched JSONRPC requests
    • Any EthereumJSONRPC function that did batch request now return a struct that contains both the successfully decoded params and any fetch errors, so that the caller can decide what to do instead of deferring to any errors as happened before.
    • Indexer.CoinBalance.Fetcher will retry only those balances that can't be fetched.
    • Indexer.Block.Uncle.Fetcher will retry only those hashes that can't be fetched.
    • Indexer.Block.Catchup.Fetcher will retry only those numbers that can't be fetched.
    • Indexer.Block.Realtime.Fetcher has no retry mechanism since it defers to Indexer.Block.Catchup.Fetcher, so it will not change.
  • Internal Transactions page now load asynchronously
  • Add a release goal to Mix

Bug Fixes

  • Fix pagination issue on inventory tab at Token's page
  • Creating EthereumJSONRPC.Ganache. It ignores fetching beneficiaries,
    internal transactions, and pending transactions.
  • Print the contract code with the appropriate line breaks and debugger for verified contracts.
  • Fix Ganache Transaction input bug
  • Fix typo in the validation count
  • Fix the performance issue on the address token transfers page.
  • Fix the performance issue on the top accounts page.

Incompatible Changes

  • JS code related to validations list was moved from address.js to address/validations.js
  • Elements that previously activated this with data-async-listing must now add data-async-load to keep the feature.
  • Elements with redux behaviours should create their store with createAsyncStore to maintain async loading.
blockscout - BlockScout v1.2.0-beta

Published by acravenho almost 6 years ago

Enhancements

  • Geth Internal Transactions
  • Decoding Input Data on the Transaction Details page
  • Decoding Logs
  • Add Goerli Testnet Theme
  • Add Unit Price to the Address details page
  • Support Parity 2.1 pending tag output
  • GraphQL - get transactions by address
  • GraphQL - references to the REST API version
  • GraphQL - query to get addresses by hash
  • TokenBalance.Fetcher will ignore failing contract calls after n tries
  • Async task to check token metadata
  • Load the address page asynchronously
  • Transaction not found page
  • Neutral BlockScout theme and logo
  • Block Details 404 page
  • Add TokenID to tokentx API Endpoint
  • Import addresses to the coin balance fetcher when checking tokens
  • Add configurable block transformers (Clique PoA)
  • Color code internal transactions

Bug Fixes

  • Increase the timeout to 15s on the Token Balance Fetcher
  • fetch_beneficiaries fix to be compatible with Parity v2.^
  • Extract input from Parity call traces
  • Fix pattern matching error when transactions don't load to_address.smart_contract
  • Fix performance issue on the address page
  • Fix Token.Fetcher to retry when errors occur.
  • Fix no schema on GraphiQL
  • Fix the transactions not batching on the homepage
  • Partial fix for the Top Accounts page
  • Fix for address type on smart contract read functionality
blockscout - BlockScout v1.1.0-beta

Published by acravenho almost 6 years ago

Enhancements

  • Add theme colors and logos for:
    • Tobablaba
    • Expanse
    • Musicoin
    • Ellaism
    • Social
    • GoChain
    • WanChain
    • TomoChain
    • Pirl
    • Callisto
    • xDai Chain
    • Rinkeby
  • GraphQL functionality (more to come in the future)
  • Add documentation on configuring the Indexer.Memory.Monitor soft-limit to the READMEs.
  • Don't store pid in %Indexer.BufferedTask{} and instead get it as needed.
  • Instead of queuing up batches, store entries in queue and only form a batch when run is called. This ensures that the batch size is maximized and previously partial adjacent batches will go out as a full batch.
  • Add backoff mechanism based on a recent count of timeouts for all outgoing requests for Ethereum JSON RPC
  • Editing API.RPC.BlockController#getblockreward action to return 200s
    for errors.
  • Increase batch_size and init_chunk_size from TokenBalance.Fetcher to process 100 of token balances at time.
  • Ensure that token balances that gave errors interacting with smart contract are going to be fetched
  • Editing the logger backends to do file rotation every 50mb and keep
    the last 19 log files per logger backend. 50mb * 20 = ~1gb
  • Add a helper function to Internal Transaction view to get the type to be
    displayed. When it is an Internal Transaction of type :call, show the
    :call_type instead.
  • Show a 0 balance for addresses that are not in the DB in the UI
  • Add a way to count the supply from mints and burns
  • Change the chart on the homepage for xDai Chain to use the supply of each day instead of the supply of today
  • Put address pending transactions in a collapsable container which is collapsed by default.
  • Simplify logic to maintain the viewport positioning as items are added and removed above the viewport.
    add a configuration to use the new modules
  • Add a dropdown menu in the top nav for validated and pending transactions
  • Remove the tab navigation from the transaction index pages
  • Considers logs topics according to the bridge hash (first topic) to index addresses when the networking is minting coins.
  • Adding EthereumJSONRPC.fetch_beneficiaries/2 to help us fetch theblock reward contract beneficiaries of a given block range. This only works with Parity.
  • Editing Indexer's dev and prod config by adding trace_block config to :method_to_url.
  • Adding block_reward_contract_beneficiaries to Indexer.AddressExtraction for it to know how to get addresses in this scenario.
  • Editing Indexer.Block.Fetcher.fetch_and_import_range/2 to get block reward contract beneficiaries, create their addresses if they don't yet exist, and update their coin balances.
  • Simplify WebSocketClient.respond_to_registration: All clauses set request_id_to_registration in state to new_request_id_to_registration, so it does not need to be passed. The catchall clause does the equivalent because new_request_id_to_registration was request_id_to_registration already as Map.pop popped nothing.
  • Refactor the transactions count by address to count only the transactions sent by the address.
  • Improve the address page and accounts page performance since the query didn't try to count all transactions (including token transfers).
  • make validations tab bring needed block associations to check block type
  • Add Explorer.Admin context for performing admin-related functions
  • usernamecolum on users table is now case insensitive
  • Add process that generates a secure key apps/explorer/priv/.recovery to be used with admin configuration
  • Add BlockScoutWeb.AdminRoutes for any admin-related routes
  • Add BlockScoutWeb.FormView to contain helpers with generating form elements to be used with changesets

Bug Fixes

  • Editing EthereumJSONRPC.Transaction.entry_to_elixir/1 to accept a key of txType without generating a FunctionClauseError
  • Fixed issues with replace_all and id primary keys- see below for incompatible changes
  • Slow loading internal transactions table - removed the join with the transactions table
  • Hide the token holders count when not showing in the UI - ETS table
  • Indexer.Memory.Monitor checks the total VM memory usage (:erlang.memory(:total)) every (1) minute. If the memory usage exceeds the soft-limit, shrinkable processes are asked to shrink.
  • Provide block argument for executing contract functions on Geth
  • Trim null bytes from strings when fetching tokens
  • Display "0 tokens" on addresses with no tokens in order to fix the address overview height glitch when loading the page.
  • Ensure blocks are fully indexed and all internal_transactions are fetched when rendering chain indexing message (to guard against when lowest block_number transaction has internal transactions fetched before chain is done indexing)
  • Fix Ganache ping/pong WebSockets implementation
  • Coin balances for block reward contract beneficiaries are updated with every block that affects them.
  • Use struct, %EthereumJSONRPC.WebSocket.WebSocketClient.Options{} to hold web_socket_options.
  • %EthereumJSONRPC.WebSocket.Registration{}
    • Record t:EthereumJSONRPC.request/0 in %EthereumJSONRPC.WebSocket.Registration{}, so that the request can be re-requested if the websocket disconnects and reconnects.
  • Bug fixes for Ganache integration.
  • created_contract_address_hash should be treated like error and status, where only the first internal transaction matters.
  • Log and retry import errors in uncle fetcher

Incompatible Changes

  • internal_transactions loses id and has (transaction_hash, index) promoted to be the composite primary key.
  • logs loses id and has (transaction_hash, index) promoted to be the composite primary key.
  • token_transfers loses id and has (transaction_hash, log_index) promoted to be the composite primary key.
  • c:Indexer.BufferedTask.run/3 is now c:Indexer.BufferedTask.run/2 with the retries count being removed. No implementations used the retries count and removing it allowed for batching optimizations.
  • Remove Indexer.BufferedTask :init_chunk_size as it didn't really do much besides decided when to send GenServer.calls from the init_task.
  • Drop server-side subscription_id from %EthereumJSONRPC.WebSocket.Registration{} as it can retrieved from request now.
blockscout - BlockScout v1.0.0-beta

Published by acravenho about 6 years ago

We're excited to introduce BlockScout v1.0-beta.

Features

  • Blocks - During startup, a real-time indexer process and a catch-up indexer process are spawned to index any past and present blocks. These processes also index uncles and block reorganizations.
  • Transactions - Consensus true/false transactions are indexed and displayed in the UI.
  • Transaction Receipts - BlockScout fetches each transaction receipt to obtain the amount of gas used and the status of the transaction (post-Byzantium).
  • Internal Transactions - Internal transactions made in real-time are fetched in real-time, otherwise they are fetched asynchronously. For pre-Byzantium chains, the transaction status is derived from internal transactions.
  • Logs - Logs are imported into their own table during transaction receipt processing. This spawns a process to check for token transfers.
  • ERC-20 Support - Token transfers, balances, and balance history are included.
  • ERC-721 Support - Token ID, token count, and history are included for ERC-721 tokens.
  • Contract Verification - Smart contracts in Solidity are supported.
  • Read Contract Functionality - Once a contract is verified, users can query the contract from the explorer UI.
  • Real-time UI - The homepage, transactions page, blocks page, block details page, and address page all have real-time events enabled.
  • Ethereum Clients - BlockScout supports the following:
    • Parity 1.1
    • Geth
  • Pre-Byzantium Support - The status field is not included in pre-Byzantium chains but is supported in BlockScout by deriving the status from internal transactions.
  • Networks - POA Network will support 6 chains including the Ethereum Mainnet, POA Core, POA Sokol, Kovan Testnet, Ropsten Testnet, and Ethereum Classic. Any EVM chain can deploy and use BlockScout.
  • Themes and Logos
    • POA Core
    • POA Sokol
    • POA Dai
    • Ethereum Mainnet
    • Kovan Testnet
    • Rinkeby Testnet
    • Ropsten Testnet
    • Ethereum Classic

Incompatible Changes

  • Geth Internal Transactions - Will be supported in v2.0
  • Parity > 2.0 - Will be supported in v1.1