SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
BlockScout
an open source EVM
blockchain explorer
Andrew Cravenho
BlockScout PM, POA Network
Live at BlockScout.com
Contribute at https://github.com/poanetwork/blockscout
POA Network
POA Network. 2018
|> Independent Network with a unique state
|> Ethereum Sidechain
|> 2nd Layer Scalability Solution
|> Production Bridges released in April 2018 connecting POA
to Ethereum Network
POA Network. 2018
What is BlockScout
POA Network. 2018
|> Open Source EVM Block Explorer
|> Tool for analyzing blockchains
|> Read and Write (WIP) Smart Contract functions
Why we built it
POA Network. 2018
|> Etherscan is not available to sidechains/forks
|> Source code is not public
|> Decentralized solution to view the blockchain
|> Off-chain data is not available to the public
Networks Supported
POA Network. 2018
|> Ethereum Mainnet
|> Kovan Testnet
|> Ropsten Testnet
|> Rinkeby Testnet
|> Ethereum Classic
|> POA Core
|> POA Sokol Testnet
|> xDai Chain
|> More coming soon...
Clients Supported
POA Network. 2018
|> Parity
|> Geth
|> Ganache
Features of BlockScout
POA Network. 2018
|> Blocks
|> Transactions
|> Receipts
|> Internal Transactions
|> Logs
|> Uncles
|> Block Reorganizations
|> ERC-20 token support
|> ERC-721 token support
|> Contract Verification
|> Query Contract
|> Real-time UI
|> API
|> GraphQL
Development Stack
POA Network. 2018
|> Phoenix Framework
|> Elixir - functional and scalable
|> Erlang
|> Postgres
Monitoring
POA Network. 2018
|> Wobserver
|> Prometheus
|> Grafana
Umbrella Applications
POA Network. 2018
1. block_scount_web - front end UI/UX
2. ethereum_jsonrpc - Ethereum JSON RPC client
3. explorer - import processes to Postgres or ETS
4. Indexer - Fetches data from the blockchain
POA Network. 2018
Realtime Indexer
Looks for new blocks being added
to the blockchain. Fetches and
imports the data.
Catch-up Indexer
Works from the tip of the chain and works
backwards.
Realtime Indexer
POA Network. 2018
apps/indexer/lib/indexer/block/realtime/fetcher.ex
@impl GenServer
def handle_info(
{subscription, {:ok, %{"number" => quantity}}},
%__MODULE__{
block_fetcher: %Block.Fetcher{} = block_fetcher,
subscription: %Subscription{} = subscription,
previous_number: previous_number
} = state
)
when is_binary(quantity) do
number = quantity_to_integer(quantity)
start_fetch_and_import(number, block_fetcher, previous_number)
Catchup Indexer
POA Network. 2018
apps/indexer/lib/indexer/block/catchup/fetcher.ex
# realtime indexer gets the current latest block
first = latest_block_number - 1
last = 0
missing_ranges = Chain.missing_block_number_ranges(first..last)
range_count = Enum.count(missing_ranges)
missing_block_count =
missing_ranges
|> Stream.map(&Enum.count/1)
|> Enum.sum()
Logger.debug(fn ->
"#{missing_block_count} missed blocks in #{range_count} ranges between #{first} and #{last}"
end)
Indexer Processes
POA Network. 2018
Realtime Indexer Catch-up Indexer
Transaction Receipts Synchronous Synchronous
Logs Synchronous Synchronous
Token Transfers Synchronous Synchronous
Coin Balances Synchronous Synchronous
Token Balances Synchronous Asynchronous
Token meta data Synchronous Asynchronous
Internal Transactions Synchronous Asynchronous
Ethereum JSON RPC Client
POA Network. 2018
|> Receives requests from the indexer
|> Sends Requests to the blockchain
|> Receives data back
|> Maps and prepares the data for import
|> Final data is sent to the Explorer App for Import
Ethereum Client Processes
POA Network. 2018
|> eth_getBlockByNumber - returns information related to a block
|> eth_getTransactionReceipt - returns the receipt of a transaction by transaction hash
|> extract token transfers - fetch the token balances by the contract address
|> logs/events
|> eth_getBalance - returns the balance of given address at a given block number
Client Specific Calls
|> Parity - trace_replayTransaction - fetches internal transactions for Parity
|> Geth - debug_traceTransaction - fetches internal transactions for Geth
Explorer Umbrella App
POA Network. 2018
|> Handles all the calls to/from Postgres
|> Handles all outgoing API calls (coin prices)
|> Manages accounts (admin/users)
|> Handles ETS tables (Erlang Term Storage)
Block Scout Web Umbrella App
POA Network. 2018
|> Frontend
|> Real-time Events
|> GraphQL
|> RPC API
|> Contract Verification and Interaction
Reactive Updates
POA Network. 2018
|> Live
Smart Contracts
POA Network. 2018
|> Live
Transaction Details
POA Network. 2018
|> Live
Future Roadmap
POA Network. 2018
User Experience Improvements
POA Network. 2018
|> Query Optimization for faster load times (PR)
|> Infinite Scroll (WIP PR)
|> Faster Indexing Times
Indexer
POA Network. 2018
|> Define a set of blocks to index
|> Geth Internal Transactions (WIP)
|> Faster Indexing Times- improved infrastructure
Customizable Configuration Panel
POA Network. 2018
|> Admin panel (completed)
|> Define CSS colors
|> Logo
|> Social Links
|> Max Memory Consumed
|> Adjust Indexer Backoff Settings
|> RPC Endpoints
Data Export
POA Network. 2018
|> Download Transactions via CSV
|> Download Tokens via CSV
|> Download Balance History via CSV
Other Roadmap Items
POA Network. 2018
|> GraphQL
|> ERC721 Data Attribute Support
|> Decode Transaction Input by the Contract ABI
|> Decode Logs by the Contract ABI

Más contenido relacionado

Último

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Último (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

BlockScout - Open Source EVM Blockchain Explorer | Erlang Solutions Webinar

  • 1. BlockScout an open source EVM blockchain explorer Andrew Cravenho BlockScout PM, POA Network
  • 2. Live at BlockScout.com Contribute at https://github.com/poanetwork/blockscout
  • 3. POA Network POA Network. 2018 |> Independent Network with a unique state |> Ethereum Sidechain |> 2nd Layer Scalability Solution |> Production Bridges released in April 2018 connecting POA to Ethereum Network
  • 5. What is BlockScout POA Network. 2018 |> Open Source EVM Block Explorer |> Tool for analyzing blockchains |> Read and Write (WIP) Smart Contract functions
  • 6. Why we built it POA Network. 2018 |> Etherscan is not available to sidechains/forks |> Source code is not public |> Decentralized solution to view the blockchain |> Off-chain data is not available to the public
  • 7. Networks Supported POA Network. 2018 |> Ethereum Mainnet |> Kovan Testnet |> Ropsten Testnet |> Rinkeby Testnet |> Ethereum Classic |> POA Core |> POA Sokol Testnet |> xDai Chain |> More coming soon...
  • 8. Clients Supported POA Network. 2018 |> Parity |> Geth |> Ganache
  • 9. Features of BlockScout POA Network. 2018 |> Blocks |> Transactions |> Receipts |> Internal Transactions |> Logs |> Uncles |> Block Reorganizations |> ERC-20 token support |> ERC-721 token support |> Contract Verification |> Query Contract |> Real-time UI |> API |> GraphQL
  • 10. Development Stack POA Network. 2018 |> Phoenix Framework |> Elixir - functional and scalable |> Erlang |> Postgres
  • 11. Monitoring POA Network. 2018 |> Wobserver |> Prometheus |> Grafana
  • 12. Umbrella Applications POA Network. 2018 1. block_scount_web - front end UI/UX 2. ethereum_jsonrpc - Ethereum JSON RPC client 3. explorer - import processes to Postgres or ETS 4. Indexer - Fetches data from the blockchain
  • 13. POA Network. 2018 Realtime Indexer Looks for new blocks being added to the blockchain. Fetches and imports the data. Catch-up Indexer Works from the tip of the chain and works backwards.
  • 14. Realtime Indexer POA Network. 2018 apps/indexer/lib/indexer/block/realtime/fetcher.ex @impl GenServer def handle_info( {subscription, {:ok, %{"number" => quantity}}}, %__MODULE__{ block_fetcher: %Block.Fetcher{} = block_fetcher, subscription: %Subscription{} = subscription, previous_number: previous_number } = state ) when is_binary(quantity) do number = quantity_to_integer(quantity) start_fetch_and_import(number, block_fetcher, previous_number)
  • 15. Catchup Indexer POA Network. 2018 apps/indexer/lib/indexer/block/catchup/fetcher.ex # realtime indexer gets the current latest block first = latest_block_number - 1 last = 0 missing_ranges = Chain.missing_block_number_ranges(first..last) range_count = Enum.count(missing_ranges) missing_block_count = missing_ranges |> Stream.map(&Enum.count/1) |> Enum.sum() Logger.debug(fn -> "#{missing_block_count} missed blocks in #{range_count} ranges between #{first} and #{last}" end)
  • 16. Indexer Processes POA Network. 2018 Realtime Indexer Catch-up Indexer Transaction Receipts Synchronous Synchronous Logs Synchronous Synchronous Token Transfers Synchronous Synchronous Coin Balances Synchronous Synchronous Token Balances Synchronous Asynchronous Token meta data Synchronous Asynchronous Internal Transactions Synchronous Asynchronous
  • 17. Ethereum JSON RPC Client POA Network. 2018 |> Receives requests from the indexer |> Sends Requests to the blockchain |> Receives data back |> Maps and prepares the data for import |> Final data is sent to the Explorer App for Import
  • 18. Ethereum Client Processes POA Network. 2018 |> eth_getBlockByNumber - returns information related to a block |> eth_getTransactionReceipt - returns the receipt of a transaction by transaction hash |> extract token transfers - fetch the token balances by the contract address |> logs/events |> eth_getBalance - returns the balance of given address at a given block number Client Specific Calls |> Parity - trace_replayTransaction - fetches internal transactions for Parity |> Geth - debug_traceTransaction - fetches internal transactions for Geth
  • 19. Explorer Umbrella App POA Network. 2018 |> Handles all the calls to/from Postgres |> Handles all outgoing API calls (coin prices) |> Manages accounts (admin/users) |> Handles ETS tables (Erlang Term Storage)
  • 20. Block Scout Web Umbrella App POA Network. 2018 |> Frontend |> Real-time Events |> GraphQL |> RPC API |> Contract Verification and Interaction
  • 25. User Experience Improvements POA Network. 2018 |> Query Optimization for faster load times (PR) |> Infinite Scroll (WIP PR) |> Faster Indexing Times
  • 26. Indexer POA Network. 2018 |> Define a set of blocks to index |> Geth Internal Transactions (WIP) |> Faster Indexing Times- improved infrastructure
  • 27. Customizable Configuration Panel POA Network. 2018 |> Admin panel (completed) |> Define CSS colors |> Logo |> Social Links |> Max Memory Consumed |> Adjust Indexer Backoff Settings |> RPC Endpoints
  • 28. Data Export POA Network. 2018 |> Download Transactions via CSV |> Download Tokens via CSV |> Download Balance History via CSV
  • 29. Other Roadmap Items POA Network. 2018 |> GraphQL |> ERC721 Data Attribute Support |> Decode Transaction Input by the Contract ABI |> Decode Logs by the Contract ABI