Skip to content

Commit

Permalink
Updated oracles section, taking pull from dev (#687)
Browse files Browse the repository at this point in the history
* Merge main into dev (#665)

* Core Devs Call Notes April 18, 2024 (#660)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

* fix(bridges): typo

* Core Devs Call April 3, 2024 (#654)

* fix: using datadir instead of validator-dir (#647)

* node structure and updates (#648)

* metadata test

* thumbnail

* thumbnail

* thumbnail fix

* thumbnail fix

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* minor fixes

* Solve conflicts

* Add files via upload

* Update README.md

updated and edited some part

* Update depositWithdrawalReward.md

* Update generalQuestions.md

* hard-fork info

* governance summary added

* fixing validator section

* config for redirects

* fixed node structure

* Update _category_.json

---------

Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: Armagan Ercan <armaggan@pm.me>

* Add files via upload (#650)

* Bridge UI related changes for docs (#652)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

---------

Co-authored-by: Vanshika

---------

Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Vanshika Srivastava <vanshikasrivastava.business@gmail.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>

* Add files via upload

* added new provider for data indexing, some minor link changes

* fixed redirect for media kit

* added zerodev segment

* resolve configuration error

* Add CI for manual deployments to production, rename deploy.yml to dev_deploy.yml which handles deploys to dev/staging only (#658)

Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>

* Add slack_release_notifications.yml (#659)

Co-authored-by: Giacomo Licari <giacomo@gnosis.io>

* Add files via upload

* Update authors.yml

* fix: build error

* bridge: add governance proposal (unlocked EURe due to bridge UI issue)

* Added RPC nodes to moralis section (#662)

---------

Co-authored-by: Vanshika <vanshikasrivastava.business@gmail.com>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: giacomognosis <157793591+giacomognosis@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.io>
Co-authored-by: Filip Martinsson <martinsson.filip@gmail.com>

* Added RPC nodes to moralis section (#662) (#664)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

* fix(bridges): typo

* Core Devs Call April 3, 2024 (#654)

* fix: using datadir instead of validator-dir (#647)

* node structure and updates (#648)

* metadata test

* thumbnail

* thumbnail

* thumbnail fix

* thumbnail fix

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* minor fixes

* Solve conflicts

* Add files via upload

* Update README.md

updated and edited some part

* Update depositWithdrawalReward.md

* Update generalQuestions.md

* hard-fork info

* governance summary added

* fixing validator section

* config for redirects

* fixed node structure

* Update _category_.json

---------

Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: Armagan Ercan <armaggan@pm.me>

* Add files via upload (#650)

* Bridge UI related changes for docs (#652)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

---------

Co-authored-by: Vanshika

---------

Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Vanshika Srivastava <vanshikasrivastava.business@gmail.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>

* Add files via upload

* added new provider for data indexing, some minor link changes

* fixed redirect for media kit

* added zerodev segment

* resolve configuration error

* Add CI for manual deployments to production, rename deploy.yml to dev_deploy.yml which handles deploys to dev/staging only (#658)

Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>

* Add slack_release_notifications.yml (#659)

Co-authored-by: Giacomo Licari <giacomo@gnosis.io>

* Add files via upload

* Update authors.yml

* fix: build error

* bridge: add governance proposal (unlocked EURe due to bridge UI issue)

* Added RPC nodes to moralis section (#662)

---------

Co-authored-by: Armagan Ercan <armaggan@pm.me>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: giacomognosis <157793591+giacomognosis@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.io>
Co-authored-by: Filip Martinsson <martinsson.filip@gmail.com>

* CI: fix tag regex

* CI: fix tag name in tag release

* CI: fix missing permissions

---------

Co-authored-by: Armagan Ercan <armaggan@pm.me>
Co-authored-by: Vanshika <vanshikasrivastava.business@gmail.com>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: Filip Martinsson <martinsson.filip@gmail.com>

* Update README, add instructions on deployments to production (#667)

* Core Devs Call April 24, 2024

* chore: update hardforks info (#668)

* chore: update clients versions

* chore: add dancun hardfork hashes

* chore: add shapella schedule table

* small fix

* grammar fixes

* Add files via upload

* Update README.md

updated cover image

* fix for developer broken page link

* chore: update bridges addresses info

* Feature/improve ci (#675)

* CI: update actions, improve tag fetching

* CI: add cache invalidation

* chore: update bridges FAQ

* chore: update Sepolia-Chiado testnet bridges addresses

* Add files via upload

* fix broken mdx files

* broken links, package updates

* remove mGNO related content

* Add files via upload

* refactor(bridges): remove outdated content and consolidate bridge validator & bridge governance into bridge management (#680)

* refactor(bridge): refactor 'Understanding Token Bridgess'

* chore(bridge): update Hashi-related info

* chore(bridges): move all bridge governance and validators contents under 'bridge management'

* chore(bridges): remove outdated content and update info

* Added Option 3: "Running Your Own Deposit UI Instance Locally" (#672)

* added links to third party bridges and update legacy UI section

* bridges update

* reconfigure bridge segment

* new segment form

* fix a broken link

* faq: update bridge FAQs

* Add files via upload

* Update 06-19-core-devs-call.md

* updated docs on The Graph (#683)

* add pyth to oracle (#686)

* Add Chronicle to Oracles list (#685)

* Add Chronicle to Oracles list

* Add link for support

* Add files via upload

* added api3 updated docs

* fixed accorn error

---------

Co-authored-by: giacomognosis <157793591+giacomognosis@users.noreply.github.com>
Co-authored-by: Armagan Ercan <armaggan@pm.me>
Co-authored-by: zengzengzenghuy <tayzh2799@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Giacomo Licari <giacomo@gnosis.pm>
Co-authored-by: Filip Martinsson <martinsson.filip@gmail.com>
Co-authored-by: 4rgon4ut <59182467+4rgon4ut@users.noreply.github.com>
Co-authored-by: zengzengzenghuy <85567868+zengzengzenghuy@users.noreply.github.com>
Co-authored-by: Felix <95569029+xdecentralix@users.noreply.github.com>
Co-authored-by: AK <alikim@gmail.com>
Co-authored-by: Aditya Arora <arora.aditya520@gmail.com>
Co-authored-by: biancabuzea200 <34369307+biancabuzea200@users.noreply.github.com>
  • Loading branch information
13 people authored Jun 29, 2024
1 parent 9e6b0fa commit 498dae6
Show file tree
Hide file tree
Showing 8 changed files with 476 additions and 232 deletions.
394 changes: 162 additions & 232 deletions docs/tools/Oracle Providers/api3.md

Large diffs are not rendered by default.

88 changes: 88 additions & 0 deletions docs/tools/Oracle Providers/chronicle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: Chronicle
description: Chronicle enables access to decentralized, scalable, and cost-efficient Oracles.
keywords: [chronicle, oracle, data feeds, price feeds]
---

# Chronicle

[Chronicle Protocol](https://chroniclelabs.org/) is a novel Oracle solution that has exclusively secured over $10B in assets for MakerDAO and its ecosystem since 2017. Chronicle overcomes the current limitations of transferring data on-chain by developing scalable, cost-efficient, decentralized, and verifiable Oracles, rewriting the rulebook on data transparency and accessibility.

### Querying the price of GNO using Chronicle
Chronicle contracts are read-protected by a whitelist, meaning you won't be able to read them on-chain without your address being added to the whitelist. On the Testnet, users can add themselves to the whitelist through the SelfKisser contract, a process playfully referred to as "kissing" themselves. For access to production Oracles on the Mainnet, please open a support ticket on [Discord](https://discord.com/invite/CjgvJ9EspJ) in the 🆘|support channel.

For the deployment addresses, please check out the [Dashboard](https://chroniclelabs.org/dashboard/oracles).
```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
/**
* @title OracleReader
* @notice A simple contract to read from Chronicle oracles
* @dev To see the full repository, visit https://github.com/chronicleprotocol/OracleReader-Example.
* @dev Addresses in this contract are hardcoded for Gnosis.
* For other supported networks, check the https://chroniclelabs.org/dashboard/oracles.
*/
contract OracleReader {
/**
* @notice The Chronicle oracle to read from.
* GNO/USD - Chronicle_GNO_USD_2 - 0xBcC6BFFde7888A3008f17c88D5a5e5F0D7462cf9
* Network: Gnosis
*/
IChronicle public chronicle = IChronicle(address(0xBcC6BFFde7888A3008f17c88D5a5e5F0D7462cf9));
/**
* @notice The SelfKisser granting access to Chronicle oracles.
* SelfKisser_1:0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d
* Network: Gnosis
*/
ISelfKisser public selfKisser = ISelfKisser(address(0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d));
constructor() {
// Note to add address(this) to chronicle oracle's whitelist.
// This allows the contract to read from the chronicle oracle.
selfKisser.selfKiss(address(chronicle));
}
/**
* @notice Function to read the latest data from the Chronicle oracle.
* @return val The current value returned by the oracle.
* @return age The timestamp of the last update from the oracle.
*/
function read() external view returns (uint256 val, uint256 age) {
(val, age) = chronicle.readWithAge();
}
}
// Copied from [chronicle-std](https://github.com/chronicleprotocol/chronicle-std/blob/main/src/IChronicle.sol).
interface IChronicle {
/**
* @notice Returns the oracle's current value.
* @dev Reverts if no value set.
* @return value The oracle's current value.
*/
function read() external view returns (uint256 value);
/**
* @notice Returns the oracle's current value and its age.
* @dev Reverts if no value set.
* @return value The oracle's current value using 18 decimals places.
* @return age The value's age as a Unix Timestamp .
* */
function readWithAge() external view returns (uint256 value, uint256 age);
}
// Copied from [self-kisser](https://github.com/chronicleprotocol/self-kisser/blob/main/src/ISelfKisser.sol).
interface ISelfKisser {
/// @notice Kisses caller on oracle `oracle`.
function selfKiss(address oracle) external;
}
```
### More examples
For more examples on integrating Chronicle Oracles, please check the [documentation portal](https://docs.chroniclelabs.org/).

### Get in touch

If you have any questions or need support, drop us a message on [Discord](https://discord.com/invite/CjgvJ9EspJ).

76 changes: 76 additions & 0 deletions docs/tools/Oracle Providers/pyth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Pyth
description: The Pyth network is the largest first-party financial oracle network, delivering real-time market data to over 40 blockchains securely and transparently.
keywords: [pyth, entropy, oracle, price feeds]
---

## Overview

The [Pyth network](https://pyth.network/) is the largest first-party financial oracle network, delivering real-time market data to over 40 blockchains securely and transparently.

The network comprises some of the world’s largest exchanges, market makers, and financial services providers, publishing proprietary price data on-chain for aggregation and distribution to smart contract applications.

## Using Pyth network
The Pyth network introduces an innovative low-latency [pull oracle design](https://docs.pyth.network/documentation/pythnet-price-feeds/on-demand), where users can pull price updates on-chain when needed, enabling everyone in the blockchain environment to access that data point.

Developers on Gnosis have permissionless access to any of Pyth’s 350+ price feeds for equities, ETFs, commodities, foreign exchange pairs, and cryptocurrencies.

Here is a working example of a contract that fetches the latest price on the Gnosis network.
You have to pass [Pyth's contract address](https://docs.pyth.network/price-feeds/contract-addresses/evm) for Gnosis mainnet/testnet(Chiado) and the desired [price feed ID](https://pyth.network/developers/price-feed-ids) to fetch the latest price.

```solidity
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "@pythnetwork/pyth-sdk-solidity/IPyth.sol";
contract MyFirstPythContract {
IPyth pyth;
constructor(address _pyth) {
pyth = IPyth(_pyth);
}
function fetchPrice(
bytes[] calldata pythPriceUpdate,
bytes32 priceFeed
) public payable returns (int64) {
uint updateFee = pyth.getUpdateFee(pythPriceUpdate);
pyth.updatePriceFeeds{value: updateFee}(pythPriceUpdate);
// Fetch the latest price
PythStructs.Price memory price = pyth.getPrice(priceFeed);
return price.price;
}
}
```

Here you can fetch the `updateData` from our [`Hermes` feed](https://docs.pyth.network/price-feeds/pythnet-price-feeds/hermes), which listens to Pythnet and Wormhole for price updates, or you can use the [`pyth-evm-js`](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/js/src/EvmPriceServiceConnection.ts#L15) SDK.


This [package](https://github.com/pyth-network/pyth-crosschain/tree/main/target_chains/ethereum/sdk/solidity) provides utilities for consuming prices from the Pyth network oracle using Solidity. Also, it contains the [Pyth Interface ABI](https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/ethereum/sdk/solidity/abis/IPyth.json) that you can use in your libraries to communicate with the Pyth contract.

We recommend following the [consumer best practices](https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices) when consuming Pyth data.

For more information, check out the official [Pyth documentation](https://docs.pyth.network/price-feeds). There are details on the various functions available for interacting with the Pyth smart contract in the [API Reference section](https://docs.pyth.network/price-feeds/api-reference/evm).

## Pyth Price Feeds on Gnosis

The Pyth Network smart contract is available at the following address:

- Mainnet: [0x2880aB155794e7179c9eE2e38200202908C17B43](https://gnosisscan.io/address/0x2880ab155794e7179c9ee2e38200202908c17b43).
- Chiado: [0x98046Bd286715D3B0BC227Dd7a956b83D8978603](https://gnosis-chiado.blockscout.com/address/0x98046Bd286715D3B0BC227Dd7a956b83D8978603)

Additionally, click to access the [Pyth price-feed IDs](https://pyth.network/developers/price-feed-ids).

## Developers and community

The Pyth network provides additional tools to developers, such as [TradingView Integration](https://docs.pyth.network/guides/how-to-create-tradingview-charts), or the [Gelato web3 functions](https://docs.pyth.network/guides/how-to-schedule-price-updates-with-gelato).

If you have any questions or issues, contact us on the following platforms:

- [Telegram](https://t.me/Pyth_Network)
- [Discord](https://discord.gg/invite/PythNetwork)
- [Website](https://pyth.network/contact)
Binary file added static/img/tools/api3/dapi-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/tools/api3/dapi-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/tools/api3/dapi-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/tools/api3/dapi-main.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
150 changes: 150 additions & 0 deletions updates/2024/06-26-core-devs-call.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
---
title: Core Devs Call - 2024/06/26
authors: [dapplion, armaganercan, filoozom]
tags: [CoreDevsCall, Gnosis Chain]
---

# Gnosis Core Devs Call Notes

Welcome to the Gnosis Core Devs weekly gathering. Every Wednesday, key members from the Gnosis team, contributors, and various team representatives convene to discuss, collaborate, and update one another on the Gnosis ecosystem's progression.

Participants represent teams:

Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis Comms team.

With a diverse set of voices present, our discussions are rich, multifaceted, and aim to foster innovation within the community.

Watch the record [here](https://youtu.be/VXtp07L24ng)

June 26, 2024

# Client Team Updates
## EL

* **Nethermind**:
* No specific updates
* Working on Pectra testnet
* Helping Guillaume (tracing the genesis block and the likes)

* **Erigon**:
* Made a patch release (v2.60.2)
* An issue in eth_estimateGas was introduced in the previous patch release and this was reverted

* **Geth**:
* Tracing the genesis block / extract storage slots from genesis constructors
* Not needed anymore, Guillaume figured out how to build the right block with constructors rather than code + storage
* Managed to build the genesis block
* Now testing if he can snap sync from a Nethermind node for Chiado

* **Reth**:
* Looking into pre-merge AuRa

# Chain Infra

* **Gateway**
* The migration was successfully completed
* Ingresses got new IPs, and rpc.gnosischain.com had IPs cached to the old datacenter, so had to be refreshed for the new datacenter

# Innovation

* Shutter
* From Shutter
* Launch on Jul 11, 2024
* Deployed mainnet contracts yesterday
* First keyper set has been set up
* Further decentralization in progress (or at least more nodes in more zones)
* Opt-in for validators, and we’re intentionally going to keep the number of enabled validators pretty low to be safe for the network
* On Nethermind
* Fixed most known issues
* Some issues with event decoding (could be linked to the validator or the contract)
* After fixing this, should be ready for testing
* If it’s in the contracts, some are easy to deploy, some would require a new keyper set deployment
* Results in not being able to include Shutterized transactions
* Questions
* Should we release only internally?
* I.e. Gnosis and partners
* Erigon, Gateway, Nethermind, Shutter
* => Yes
* Would still be available for everyone, but we’re not going to be very public about running it on socials
* Is there any e2e testing to make sure Nethermind doesn’t break Shutter support for the next release, and to test other client implementations?
* There’s nothing Shutter-specific right now
* Can this be implemented in Hive?
* Shutter should be able to allocate some resources towards testing after the launch
* Survey for Gnosis validators
* https://docs.google.com/forms/d/e/1FAIpQLSe_rKQdf1-uITqAEmV6giMuv51d3ml0BoYbfkNaZJ-vdl0RtQ/viewform

# Testing

* Hive
* Figured out the problem with the Erigon Cancun suit
* Potentially figured out the issue for withdrawals on Erigon and Nethermind
* Will contact Marcos to merge those changes and update the dashboard
* Those were both test issues and not client issues
* Ethereum/tests
* No updates
* Once geth syncs, we should be able to use Geth to generate ethereum/tests, but this already works on Nethermind too

# Research

* Block validity verification
* Huge effort, both on EL and CL, DevOps, infra, …
* Latency penalty may be more harmful, especially for GC
* First client generates the witness and pass it to other clients to validate the block / witness
* However, adding the witness adds latency (+ serializing)
* Re-executing the block adds latency
* Lukasz thinks that this effort might be somewhat wasted, because the witnesses will be included in the protocol with verkle trees, so there might not be a need to implement this now
* It’s also completely incompatible with and would delay verkle
* Guillaume also thinks that this is wasted time
* Marek says that if there’s a slow client, it would slow the entire stack down
* https://gist.github.com/karalabe/e106ac58afc1d611641e543312cf41e3?permalink_comment_id=4765606#gistcomment-4765606
* Lighthouse is implementing something similar / there are two different ways of passing witnesses, at least this should be standardized
* If there are very large proofs (because some blocks are created in a malicious way), in the worst case it could add too much latency to be functional, especially on GC
* Pectra is already huge, and spending time on this might not be great
* It’s a whole different issue for GC because Nethermind is supposedly dominating
* On mainnet Geth should be under 60% at this point (based on a self-reported survey), and potentially going in the right direction
* Maybe Reth’s launch will change this a bit more













































0 comments on commit 498dae6

Please sign in to comment.