From ea86619e916e1f6aa27d95f7f3a1737495f5a590 Mon Sep 17 00:00:00 2001 From: Willian Mitsuda Date: Fri, 10 Sep 2021 18:55:54 -0300 Subject: [PATCH] Add sourcify doc instructions --- README.md | 12 +++++++++++- docs/sourcify.md | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 docs/sourcify.md diff --git a/README.md b/README.md index 2f9a5f9..d1aef5b 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,15 @@ This is the preferred way to run Otterscan. You can read about other ways [here] You can make sure it is working correctly if the homepage is able to show the latest block/timestamp your Erigon node is at just bellow the search button. -## Kudos +## Source verification + +We make use of [Sourcify](https://sourcify.dev/) for displaying contract verification info. + +More info [here](docs/sourcify.md). + +## Kudos (in no particular order) + +We make use of many open-source software and integrate many public datasources, mainly: To the [Geth](https://geth.ethereum.org/) team whose code Erigon is based on. @@ -150,6 +158,8 @@ To [Trust Wallet](https://github.com/trustwallet/assets) who sponsor and make av To the owners of the [4bytes repository](https://github.com/ethereum-lists/4bytes) that we import and use to translate the method selectors to human-friendly strings. +To [Sourcify](https://sourcify.dev/), a public decentralized source code and metadata verification service. + To [Ethers](https://github.com/ethers-io/ethers.js/) which is the client library we used to interact with the ETH node. It is high level enough to hide most jsonrpc particularities, but flexible enough to allow easy interaction with custom jsonrpc methods. ## Future diff --git a/docs/sourcify.md b/docs/sourcify.md new file mode 100644 index 0000000..f966517 --- /dev/null +++ b/docs/sourcify.md @@ -0,0 +1,23 @@ +# Sourcify + +We get the contract source code and metadata from [Sourcify](https://sourcify.dev/). + +There are multiple ways to consume their data we support, each one with pros and cons: + +## IPNS/IPFS + +This is the default integration method, we resolve the public Sourcify IPNS to get the latest known IPFS root hash of their repository. + +The downside is that recently verified contracts may not have yet been added to the root hash and republished into IPNS. + +## Direct HTTP connection to Sourcify's repository + +Standard HTTP connection to their repo at https://repo.sourcify.dev/ + +Fast access to fresh verified data. On the other hand it is less private and centralized. + +## Local snapshot + +As a midterm solution, we are making available a snapshot docker image of their repository, containing only mainnet full verified contracts. + +This would allow you to play with existing contracts up to the snapshot date/time locally, not depending on their service or IPFS connectivity availability.