diff --git a/basics/assets/metamask-setup.md b/basics/assets/metamask-setup.md index 99cbc5453..04f7f6eec 100644 --- a/basics/assets/metamask-setup.md +++ b/basics/assets/metamask-setup.md @@ -73,11 +73,11 @@ The process for configuring MetaMask to use Filecoin is fairly simple but has so {% tabs %} {% tab title="Mainnet" %} -
FieldValue
Network nameFilecoin
New RPC URLEither:
- https://api.node.glif.io/rpc/v1
- https://filecoin.chainup.net/rpc/v1
- https://rpc.ankr.com/filecoin
Chain ID314
Currency symbolFIL
+
FieldValue
Network nameFilecoin
New RPC URLEither:
- https://filecoin.chain.love/rpc/v1
- https://filecoin.chainup.net/rpc/v1
- https://rpc.ankr.com/filecoin
Chain ID314
Currency symbolFIL
{% endtab %} {% tab title="Calibration" %} -
FieldValue
Network nameFilecoin Calibration testnet
New RPC URLEither:
- https://api.calibration.node.glif.io/rpc/v1
- https://filecoin-calibration.chainup.net/rpc/v1
Chain ID314159
Currency symboltFIL
+
FieldValue
Network nameFilecoin Calibration testnet
New RPC URLEither:
- https://calibration.filecoin.chain.love/rpc/v1
- https://filecoin-calibration.chainup.net/rpc/v1
Chain ID314159
Currency symboltFIL
{% endtab %} {% tab title="Local testnet" %} diff --git a/basics/what-is-filecoin/networks.md b/basics/what-is-filecoin/networks.md index 820b6b273..d94724d40 100644 --- a/basics/what-is-filecoin/networks.md +++ b/basics/what-is-filecoin/networks.md @@ -17,11 +17,14 @@ Test networks, or testnets, are versions of the Filecoin network that simulate v The [Calibration](../../networks/calibration/) testnet offers the closest simulation of the mainnet. It provides realistic sealing performance and hardware requirements due to the use of finalized proofs and parameters, allowing prospective storage providers to test their setups. Storage clients can also store and retrieve real data on this network, participating in deal-making workflows and testing storage/retrieval functionalities. Calibration testnet uses the same sector size as the mainnet. -- [Public endpoint](https://api.calibration.node.glif.io/rpc/v0) +- [Public endpoint](https://calibration.filecoin.chain.love/rpc/v0) - [Blockchain explorer](https://calibration.filscan.io/) - [Calibration Faucet - Chainsafe](https://faucet.calibnet.chainsafe-fil.io) - [Calibration Faucet - Zondax](https://beryx.zondax.ch/faucet/) - [Calibration Faucet - Forest Explorer](https://forest-explorer.chainsafe.dev/faucet/calibnet) - [Calibration USDFC Faucet - Chainsafe](https://forest-explorer.chainsafe.dev/faucet/calibnet_usdfc) +More resources available on Calibration network: +{% @chainlove-widget/chainlove-compare url="https://widget.docs.chain.love/?network=filecoin&chain=calibnet" %} + [Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill_Page+URL=https://docs.filecoin.io/basics/what-is-filecoin/networks) diff --git a/builder-cookbook/dapps/chain-data-query.md b/builder-cookbook/dapps/chain-data-query.md index 0c668dfa4..c7f238875 100644 --- a/builder-cookbook/dapps/chain-data-query.md +++ b/builder-cookbook/dapps/chain-data-query.md @@ -17,20 +17,20 @@ To explore further details about the available public RPC providers supporting F #### **Ingredients** -Let's use Glif nodes as an example to demonstrate how to connect to a public Filecoin RPC node provider. Additionally, we will utilize `ethers.js` to establish the connection with the RPC nodes. +Let's use Chain.Love nodes as an example to demonstrate how to connect to a public Filecoin RPC node provider. Additionally, we will utilize `ethers.js` to establish the connection with the RPC nodes. -* [Glif nodes](https://hosting.glif.io/) +* [Chain.Love](https://filecoin.chain.love) * [ethers.js](https://docs.ethers.org/v5/) #### **Instructions** -We will use `ethers.js` to establish a connection with the public Filecoin node provided by Glif. The following code demonstrates connecting to the Filecoin Calibration testnet as an example. +We will use `ethers.js` to establish a connection with the public Filecoin node provided by Chain.Love. The following code demonstrates connecting to the Filecoin Calibration testnet as an example. ```javascript import { ethers } from "ethers" //The public Filecoin calibration URL -const filecoin_url = 'https://api.calibration.node.glif.io/rpc/v1' +const filecoin_url = 'https://calibration.filecoin.chain.love/rpc/v1' const provider = new ethers.JsonRpcProvider(filecoin_url) const blockNumber = await provider.getBlockNumber() @@ -52,9 +52,9 @@ Since the Filecoin Virtual Machine (FVM) is EVM-compatible, we can use `ethers.j #### **Ingredients** -We will also use `ethers.js` to connect to the public Glif node to listen to the smart contract events. +We will also use `ethers.js` to connect to the public Chain.Love node to listen to the smart contract events. -* [Glif Nodes](https://hosting.glif.io/) +* [Chain.Love](https://filecoin.chain.love) * [ethers.js](https://docs.ethers.org/v5/) #### **Instructions** @@ -69,7 +69,7 @@ import { ethers } from "ethers" const wFILAddress = "0xaC26a4Ab9cF2A8c5DBaB6fb4351ec0F4b07356c4" // wFIL Contract var abi = ["event Transfer(address indexed from, address indexed to, uint amount)"] -const filecoin_url = 'https://api.calibration.node.glif.io/rpc/v1' +const filecoin_url = 'https://calibration.filecoin.chain.love/rpc/v1' const provider = new ethers.providers.JsonRpcProvider(filecoin_url) //listen to the Transfer events in the Token contract @@ -95,14 +95,14 @@ We can also use filters to retrieve specific smart contract transactions from th #### **Ingredients** -We will also use `ethers.js` to connect to the public Glif node to filter the smart contract events by providing conditions. +We will also use `ethers.js` to connect to the public Chain.Love node to filter the smart contract events by providing conditions. -* [Glif nodes](https://hosting.glif.io/) +* [Chain.Love](https://filecoin.chain.love) * [ethers.js](https://docs.ethers.org/v5/) #### **Instructions** -Here's an example of how you can connect to a Glif node on the calibration network, create a filter to list all wFIL token transfers from your address, and execute the filter to look back 2000 blocks to find the matched transaction list: +Here's an example of how you can connect to a Chain.Love node on the calibration network, create a filter to list all wFIL token transfers from your address, and execute the filter to look back 2000 blocks to find the matched transaction list: ```javascript import { ethers } from "ethers" @@ -110,7 +110,7 @@ import { ethers } from "ethers" const wFILAddress = "0xaC26a4Ab9cF2A8c5DBaB6fb4351ec0F4b07356c4" // wFIL Contract var abi = ["event Transfer(address indexed from, address indexed to, uint amount)"] -const filecoin_url = 'https://api.calibration.node.glif.io/rpc/v1' +const filecoin_url = 'https://calibration.filecoin.chain.love/rpc/v1' const provider = new ethers.providers.JsonRpcProvider(filecoin_url) // Create a filter to list all token transfers from myAddress diff --git a/networks/calibration/README.md b/networks/calibration/README.md index 90c694c11..ab2eecc1e 100644 --- a/networks/calibration/README.md +++ b/networks/calibration/README.md @@ -28,13 +28,13 @@ wget https://forest-archive.chainsafe.dev/latest/calibnet/ ```bash # Lite node (fastest startup) -FULLNODE_API_INFO=wss://wss.calibration.node.glif.io/apigw/lotus lotus daemon --lite +FULLNODE_API_INFO=wss://calibration.filecoin.chain.love/ws lotus daemon --lite # Full node with snapshot import lotus daemon --import-snapshot # Connect to RPC endpoint -curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"Filecoin.ChainHead","params":[],"id":1}' https://api.calibration.node.glif.io/rpc/v1 +curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"Filecoin.ChainHead","params":[],"id":1}' https://calibration.filecoin.chain.love/rpc/v1 ``` ### Get Test FIL @@ -48,8 +48,8 @@ Quick access to faucets: ### Essential Network Info * **Chain ID**: `314159` (for MetaMask/wallets) -* **RPC**: `https://api.calibration.node.glif.io/rpc/v1` -* **WebSocket**: `wss://wss.calibration.node.glif.io/apigw/lotus/rpc/v1` +* **RPC**: `https://calibration.filecoin.chain.love/rpc/v1` +* **WebSocket**: `wss://calibration.filecoin.chain.love/ws/rpc/v1` * **Minimum Power**: `32 GiB` ## About Calibration diff --git a/networks/calibration/rpcs.md b/networks/calibration/rpcs.md index 231913bc4..44bc21741 100644 --- a/networks/calibration/rpcs.md +++ b/networks/calibration/rpcs.md @@ -12,18 +12,18 @@ Chainlist also provides a dynamically updated list of [available Filecoin - Main These endpoints are limited to the read-only [Filecoin JSON RPC API](../../reference/json-rpc/) including read-only [Filecoin Eth RPC](../../reference/json-rpc/eth.md) methods, except for the write operations [`MPoolPush`](../../reference/json-rpc/mpool.md#mpoolpush) and [`EthSendRawTransaction`](../../reference/json-rpc/eth.md#ethsendrawtransaction) for sending already signed messages. -## [Glif](https://api.calibration.node.glif.io) +## [Chain.Love](https://filecoin.chain.love/) -* HTTPS: `https://api.calibration.node.glif.io/rpc/v1` -* WebSocket: `wss://wss.calibration.node.glif.io/apigw/lotus/rpc/v1` +* HTTPS: `https://calibration.filecoin.chain.love/rpc/v1` +* WebSocket: `wss://calibration.filecoin.chain.love/ws/rpc/v1` * Lotus lite-node command: ``` -FULLNODE_API_INFO=wss://wss.calibration.node.glif.io/apigw/lotus lotus daemon --lite +FULLNODE_API_INFO=wss://calibration.filecoin.chain.love/ws lotus daemon --lite ``` -* When using a lite-node, omit `/rpc/v1` from Glif’s WebSocket address. -* [Glif documentation](https://hosting.glif.io/) +* When using a lite-node, omit `/rpc/v1` from Chain.Love’s WebSocket address. +* [Chain.Love documentation](https://chain-love.gitbook.io/chain-love-docs/blockchains/filecoin) ## [Ankr](https://www.ankr.com/rpc/filecoin) @@ -36,4 +36,7 @@ FULLNODE_API_INFO=wss://wss.calibration.node.glif.io/apigw/lotus lotus daemon -- * [ChainupCloud documentation](https://docs.chainupcloud.com/blockchain-api/filecoin/public-apis) +More RPCs available on the Calibration network: +{% @chainlove-widget/chainlove-compare url="https://widget.docs.chain.love/?network=filecoin&chain=calibnet&category=rpc" %} + [Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/networks/calibration/rpcs) diff --git a/networks/mainnet/explorers.md b/networks/mainnet/explorers.md index 184010ec1..dfa861ce1 100644 --- a/networks/mainnet/explorers.md +++ b/networks/mainnet/explorers.md @@ -36,7 +36,7 @@ If you have access to a Filecoin node, you can send a JSON-RPC request to get bl To get the head tipset: ```shell -curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ +curl --location --request POST 'https://filecoin.chain.love/rpc/v1' \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", @@ -49,7 +49,7 @@ curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ Print a block: ```shell -curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ +curl --location --request POST 'https://filecoin.chain.love/rpc/v1' \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", @@ -62,7 +62,7 @@ curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ Print message information: ```shell -curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ +curl --location --request POST 'https://filecoin.chain.love/rpc/v1' \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", @@ -72,6 +72,9 @@ curl --location --request POST 'https://api.node.glif.io/rpc/v1' \ }' | jq ``` +Curated list by Chain.Love of explorers available on Mainnet: +{% @chainlove-widget/chainlove-compare url="https://widget.docs.chain.love/?network=filecoin&chain=mainnet&category=explorer" %} + [Was this page helpful?](https://airtable.com/apppq4inOe4gmSSlk/pagoZHC2i1iqgphgl/form?prefill\_Page+URL=https://docs.filecoin.io/networks/mainnet/explorers) diff --git a/networks/mainnet/rpcs.md b/networks/mainnet/rpcs.md index 07bfd8480..3a95a49b0 100644 --- a/networks/mainnet/rpcs.md +++ b/networks/mainnet/rpcs.md @@ -14,7 +14,7 @@ These endpoints are limited to the read-only [Filecoin JSON RPC API](../../refer | Provider | HTTPS endpoint | WSS endpoint | Docs | API Support | | ------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| [Glif Nodes](https://api.node.glif.io/) | `https://api.node.glif.io/rpc/v1` | `wss://wss.node.glif.io/apigw/lotus/rpc/v1` | [Glif Nodes - Docs](https://api.node.glif.io/) | All Filecoin and Eth JSON RPC methods including MPoolPush | +| [Chain.Love](https://filecoin.chain.love) | `https://filecoin.chain.love/rpc/v1` | `wss://calibration.filecoin.chain.love/ws/rpc/v1` | [Chain.Love - Docs](https://chain-love.gitbook.io/chain-love-docs/blockchains/filecoin) | All Filecoin and Eth JSON RPC methods including MPoolPush | | [Ankr](https://ankr.com/) | `https://rpc.ankr.com/filecoin` | By request at: https://www.ankr.com/rpc/filecoin | [Ankr Docs - Filecoin](https://www.ankr.com/docs/rpc-service/chains/chains-list/#filecoin) | All Filecoin and Eth JSON RPC methods including MPoolPush | | [Chainup Cloud](https://cloud.chainup.com/) | `https://filecoin.chainup.net/rpc/v1` | `wss://filecoin.chainup.net/rpc/v1` | [Chainup Cloud Docs - Filecoin](https://docs.chainupcloud.com/blockchain-api/filecoin/public-apis) | | | [NOWNodes](https://nownodes.io/) | `https://fil.nownodes.io` (Free for 1 month with signup) | | [NOWNodes - Docs](https://nownodes.gitbook.io/documentation) | | @@ -23,13 +23,13 @@ These endpoints are limited to the read-only [Filecoin JSON RPC API](../../refer ## Additional Notes: -* Glif Nodes offers a [Lotus Lite node](https://docs.filecoin.io/nodes/lite-nodes/spin-up-a-lite-node) endpoint with the following command: +* Chain.Love offers a [Lotus Lite node](https://docs.filecoin.io/nodes/lite-nodes/spin-up-a-lite-node) endpoint with the following command: ```shell - FULLNODE_API_INFO=wss://wss.node.glif.io/apigw/lotus lotus daemon --lite + FULLNODE_API_INFO=wss://filecoin.chain.love/ws lotus daemon --lite ``` - When using a Lotus Lite node, omit `/rpc/v1` from Glif’s WebSocket address. + When using a Lotus Lite node, omit `/rpc/v1` from Chain.Love’s WebSocket address. A Lotus Lite node is a stripped down version of a Lotus full-node capable of running on lower-end hardware. It also allows for local signing for storage deals without a full Lotus node. diff --git a/nodes/lite-nodes/spin-up-a-lite-node.md b/nodes/lite-nodes/spin-up-a-lite-node.md index 6ef897bed..2265a03eb 100644 --- a/nodes/lite-nodes/spin-up-a-lite-node.md +++ b/nodes/lite-nodes/spin-up-a-lite-node.md @@ -214,7 +214,7 @@ Let's start the lite-node by connecting to a remote full-node. We can use the pu 1. Create an environment variable called `FULLNODE_API_INFO` and set it to the WebSockets address of the node you want to connect to. At the same time, start the Lotus daemon with the `--lite` tag: ```shell - FULLNODE_API_INFO=wss://wss.node.glif.io/apigw/lotus lotus daemon --lite + FULLNODE_API_INFO=wss://filecoin.chain.love/ws lotus daemon --lite ``` This will output something like: @@ -231,7 +231,7 @@ Let's start the lite-node by connecting to a remote full-node. We can use the pu 1. Create an environment variable called `FULLNODE_API_INFO` and set it to the WebSockets address of the node you want to connect to. At the same time, start the Lotus daemon with the `--lite` tag: ```shell - FULLNODE_API_INFO=wss://wss.calibration.node.glif.io/apigw/lotus lotus daemon --lite + FULLNODE_API_INFO=wss://calibration.filecoin.chain.love/ws lotus daemon --lite ``` This will output something like: @@ -270,7 +270,7 @@ To send JSON-RPC requests to our lite-node, we need to expose the API. 3. In the same window, restart the lite-node: ```shell - FULLNODE_API_INFO=wss://wss.node.glif.io/apigw/lotus lotus daemon --lite + FULLNODE_API_INFO=wss://filecoin.chain.love/ws lotus daemon --lite ``` This will output something like: @@ -304,7 +304,7 @@ To send JSON-RPC requests to our lite-node, we need to expose the API. 3. In the same window, restart the lite-node: ```shell - FULLNODE_API_INFO=wss://wss.calibration.node.glif.io/apigw/lotus lotus daemon --lite + FULLNODE_API_INFO=wss://calibration.filecoin.chain.love/ws lotus daemon --lite ``` This will output something like: diff --git a/reference/general/README.md b/reference/general/README.md index 15ac9ff65..55a876a81 100644 --- a/reference/general/README.md +++ b/reference/general/README.md @@ -96,8 +96,8 @@ Check out the [documentation website](https://filecoin.hugomrdias.dev/) for more > NOTE: making deep calls into the chain’s history may take some time to return and it may be more efficient to use a chain database (e.g. used by block explorers) that stores the chain’s history and is optimized for queries. -* [GLIF nodes](https://lotus.filecoin.io/lotus/developers/glif-nodes/) - A hosted endpoint to Filecoin mainnet and testnet. Note: as of Q1 2023, Infura no longer supports Filecoin. - * The GLIF endpoint supports read-only calls and `MPoolPush()` for sending signed transactions to the network (which can be signed using the [Message signing tools](https://docs.filecoin.io/reference/general/overview/#message-signing-tools)). +* [Chain.Love (Glif nodes)](https://lotus.filecoin.io/lotus/developers/glif-nodes/) - A hosted endpoint to Filecoin mainnet and testnet. Note: as of Q1 2023, Infura no longer supports Filecoin. + * The Chain.Love endpoint supports read-only calls and `MPoolPush()` for sending signed transactions to the network (which can be signed using the [Message signing tools](https://docs.filecoin.io/reference/general/overview/#message-signing-tools)). * [**Lotus JSON-RPC API**](https://lotus.filecoin.io/lotus/get-started/what-is-lotus/) - Lotus offers the full feature set of its capabilities through API. * [lotus API Postman sample](https://documenter.getpostman.com/view/4872192/SWLh5mUd?version=latest) - (shows sample wallet calls only) diff --git a/reference/json-rpc/README.md b/reference/json-rpc/README.md index e4b70aa63..25a743c8c 100644 --- a/reference/json-rpc/README.md +++ b/reference/json-rpc/README.md @@ -23,10 +23,10 @@ curl --location --request POST '' \ ## Step-by-step example -1. In a terminal window, use Curl to request the current chain head from a public [Glif](https://glif.io/en) node.\\ +1. In a terminal window, use Curl to request the current chain head from a public [Chain.Love](https://filecoin.chain.love) node.\\ * ```shell - curl -X POST 'https://api.node.glif.io' \ + curl -X POST 'https://filecoin.chain.love' \ -H 'Content-Type: application/json' \ --data '{"jsonrpc":"2.0","id":1,"method":"Filecoin.ChainHead","params":[]}' ``` @@ -42,7 +42,7 @@ curl --location --request POST '' \ ``` 1. ```shell - curl -X POST 'https://api.node.glif.io' \ + curl -X POST 'https://filecoin.chain.love' \ -H 'Content-Type: application/json' \ --data '{"jsonrpc":"2.0","id":1,"method":"Filecoin.ChainHead","params":[]}' \ | jq @@ -83,7 +83,7 @@ Each node implementation has different ways to generate and manage authenticatio * [Lotus](https://lotus.filecoin.io) * [Venus](https://venus.filecoin.io) -If you are using a node provider service like [Glif](https://glif.io/en), take a look at your providers documentation to find out how to manage authentication tokens. +If you are using a node provider service like [Chain.Love](https://filecoin.chain.love/rpc), take a look at your providers documentation to find out how to manage authentication tokens. diff --git a/smart-contracts/advanced/fevm-indexers.md b/smart-contracts/advanced/fevm-indexers.md index a613e845a..d573a65ba 100644 --- a/smart-contracts/advanced/fevm-indexers.md +++ b/smart-contracts/advanced/fevm-indexers.md @@ -96,33 +96,13 @@ For example: } ``` Use the Goldsky Playground or integrate it into your app to consume indexed data. -## The Graph -[The Graph](https://thegraph.com) is a decentralized protocol for indexing blockchain data. It enables developers to build and publish custom open APIs, known as subgraphs, that applications can query to retrieve blockchain data using GraphQL in a time-efficient manner. +## Chain.Love -#### Glossary - -* **Subgraphs**: Customizable schemas that define how to index data from specific blockchain smart contracts and events. -* **GraphQL**: A query language that allows clients to request exactly the data they need, making data fetching more efficient. - -#### Querying Subgraphs on Filecoin FEVM - -There are many ways to query existing subgraphs, including numerous well-known libraries for [JavaScript](https://thegraph.com/docs/en/querying/querying-from-an-application/) and [Python](https://thegraph.com/docs/en/querying/querying-with-python/). But even without any third-party tooling, querying a subgraph is no more complicated than querying [RPC nodes](https://docs.filecoin.io/reference/json-rpc). The only complexity is that you have to know the schema of the subgraph beforehand, similar to knowing SQL database tables and columns before being able to query them. Luckily, The Graph provides several ways to discover the subgraph schema. The most convenient one is called the ["Playground"](https://graphql.org/blog/2020-04-03-graphiql-graphql-playground/), and it is available upon a GET request to the subgraph query URL. Alternatively, you may use the discovery method that exists on every subgraph, called the [Introspection Query](https://graphql.org/learn/introspection/). - -#### Developing Subgraphs on Filecoin FEVM - -Developing a subgraph requires specialized knowledge that can be obtained through [The Graph Academy](https://thegraph.academy). - -### Deploying Subgraphs - -Just as with database data queried through SQL, subgraphs have to be stored somewhere. You may run a self-hosted instance as described in [The Graph Academy examples](https://thegraph.academy/developers/local-development/) and deploy a subgraph there. However, as with RPC nodes and databases, running subgraphs locally in production is not recommended from an uptime standpoint. For hosting the subgraph, it is reasonable to use online web services such as AWS or refer to professional subgraph providers such as [Protofire (aka Glif Nodes)](https://api.node.glif.io/graph). - -#### Example: Deploying a Subgraph with Glif Nodes (Protofire) - -[Protofire (aka Glif Nodes)](https://api.node.glif.io) offers public access to The Graph services, simplifying the process of deploying and managing subgraphs. +[Chain.Love](https://filecoin.chain.love) offers public access to The Graph services, simplifying the process of deploying and managing subgraphs. 1. **Connect Your Wallet** - * On the [Protofire (Glif Nodes) platform - SUBGRAPHS](https://api.node.glif.io/graph), connect your [Filecoin-compatible wallet](https://docs.filecoin.io/basics/assets/wallets). + * On the [Chain.Love platform - SUBGRAPHS](https://filecoin.chain.love/graph), connect your [Filecoin-compatible wallet](https://docs.filecoin.io/basics/assets/wallets). 2. **Create an API Key** * Choose the **API keys** tab. * Click **Create new key**. @@ -133,7 +113,7 @@ Just as with database data queried through SQL, subgraphs have to be stored some * Click **Pay** and proceed with providing your credit card details to activate a free subscription. {% hint style="warning" %} -Glif Nodes currently offers this service completely **free of charge**. If this ever changes, you will be notified at least one month in advance. It is recommended to provide your contact details on the Glif Nodes website to receive updates. Credit card details are used solely for DDoS protection. No charges will be made without prior notification. +Chain.Love currently offers this service completely **free of charge**. If this ever changes, you will be notified at least one month in advance. It is recommended to provide your contact details on the Chain.Love website to receive updates. You may authorize via GitHub or Google to avoid passing your credit card details, which is used as a DDoS protection mechanism. {% endhint %} 4. **Create a Subgraph** @@ -146,11 +126,10 @@ Glif Nodes currently offers this service completely **free of charge**. If this ### Querying Existing Subgraphs -One of the popular subgraphs is a subgraph containing information about all the blocks on the network, essentially providing an alternative to the `eth_getBlock...` subset of commands. Let's see how we can query the `eth_getBlockByNumber` using the Linux command-line interface and the Protofire (Glif Nodes) platform. +One of the popular subgraphs is a subgraph containing information about all the blocks on the network, essentially providing an alternative to the `eth_getBlock...` subset of commands. Let's see how we can query the `eth_getBlockByNumber` using the Linux command-line interface and the Chain.Love platform. -* Visit the [Protofire (Glif Nodes) platform](https://api.node.glif.io). -* Navigate to the **SUBGRAPHS** tab. -* Select the relevant subgraph from [Protofire](https://api.node.glif.io/graph). +* Visit the [Chain.Love platform](https://filecoin.chain.love/graph). +* Select the relevant subgraph. * In the opened **Playground** tab, click the **Show GraphQL Explorer** button (folder icon, 3rd from the top in the left bar) to verify the subgraph schema. * Click the elements that you are looking to query and adjust the query if necessary. For the sake of this example, let's query the first block this subgraph supports (#2867000). The resulting query should look like the following: @@ -183,3 +162,8 @@ One of the popular subgraphs is a subgraph containing information about all the } ``` * Copy **Queries (HTTP)** URL on the top of the Playground as well as resulting query to your code. The subgraph querying is free so far, although it requires an API key. + +### Providers list + +Chain.Love provides a curated list of indexers available on Filecoin network +{% @chainlove-widget/chainlove-compare url="https://widget.docs.chain.love/?network=filecoin&category=indexing" %} \ No newline at end of file diff --git a/smart-contracts/advanced/multicall.md b/smart-contracts/advanced/multicall.md index d3a4b5abf..de7f46a3e 100644 --- a/smart-contracts/advanced/multicall.md +++ b/smart-contracts/advanced/multicall.md @@ -58,7 +58,7 @@ Many libraries and tools such as [ethers-rs](https://docs.rs/ethers/latest/ether Batching contract reads, one of the most common use cases, allows a single `eth_call` JSON RPC request to return the results of multiple contract function calls. It has many benefits: -1. **Reduced JSON RPC Requests**: Multicall reduces the number of separate JSON RPC requests that need to be sent. This is particularly useful when using remote nodes, such as GLIF. By aggregating multiple contract reads into a single JSON-RPC request, Multicall (1) reduces RPC usage and therefore costs, and (2) reduces the number of round trips between the client and the node, which can significantly improve performance +1. **Reduced JSON RPC Requests**: Multicall reduces the number of separate JSON RPC requests that need to be sent. This is particularly useful when using remote nodes, such as Chain.Love. By aggregating multiple contract reads into a single JSON-RPC request, Multicall (1) reduces RPC usage and therefore costs, and (2) reduces the number of round trips between the client and the node, which can significantly improve performance 2. **Consistent Data from the Same Block**: Multicall guarantees that all values returned are from the same block. This ensures data consistency and reliability, as all the read operations are performed on the same state of the blockchain. 3. **Detection of Stale Data**: Multicall enables the block number or timestamp to be returned with the read data. This feature helps in detecting stale data, as developers can compare the block number or timestamp with the current state of the blockchain to ensure the data is up-to-date. @@ -87,7 +87,7 @@ When directly interacting with the Multicall3 contract to batch calls, you'll ty ```javascript const { ethers } = require("ethers"); - const provider = new ethers.providers.JsonRpcProvider("https://api.node.glif.io/rpc/v1"); + const provider = new ethers.providers.JsonRpcProvider("https://filecoin.chain.love/rpc/v1"); const multicallAddress = "0xcA11bde05977b3631167028862bE2a173976CA11"; const multicallAbi = [/* Multicall3 ABI */]; const multicall = new ethers.Contract(multicallAddress, multicallAbi, provider); diff --git a/smart-contracts/developing-contracts/foundry.md b/smart-contracts/developing-contracts/foundry.md index 91c5ad3b8..b0d98e585 100644 --- a/smart-contracts/developing-contracts/foundry.md +++ b/smart-contracts/developing-contracts/foundry.md @@ -45,14 +45,14 @@ cp .env.example .env ```bash PRIVATE_KEY=eed8e9d727a647f7302bab440d405ea87d36726e7d9f233ab3ff88036cfbce9c -CALIBRATIONNET_RPC_URL=https://api.calibration.node.glif.io/rpc/v1 +CALIBRATIONNET_RPC_URL=https://calibration.filecoin.chain.love/rpc/v1 ``` 6. Inside the `src` folder in a contract called `SimpleCoin.sol`. Deploy this contract using Foundry: ```shell forge build -forge create --rpc-url https://api.calibration.node.glif.io/rpc/v1 --private-key $PRIVATE_KEY src/SimpleCoin.sol:SimpleCoin --broadcast +forge create --rpc-url https://calibration.filecoin.chain.love/rpc/v1 --private-key $PRIVATE_KEY src/SimpleCoin.sol:SimpleCoin --broadcast ``` 7. You can now interact with your contract using the contract address given by Foundry. diff --git a/smart-contracts/filecoin-evm-runtime/how-gas-works.md b/smart-contracts/filecoin-evm-runtime/how-gas-works.md index aec55d0c4..2088def04 100644 --- a/smart-contracts/filecoin-evm-runtime/how-gas-works.md +++ b/smart-contracts/filecoin-evm-runtime/how-gas-works.md @@ -77,7 +77,7 @@ Since Filecoin is fully EVM-compatible, Filecoin nodes also provide Ethereum-com To request the current max priority fee in the network, you can send a request to a public Filecoin endpoint: ```shell -curl --location --request POST 'https://api.calibration.node.glif.io/rpc/v1' \ +curl --location --request POST 'https://calibration.filecoin.chain.love/rpc/v1' \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", diff --git a/smart-contracts/fundamentals/faqs.md b/smart-contracts/fundamentals/faqs.md index f8e1b0595..3a7651cf2 100644 --- a/smart-contracts/fundamentals/faqs.md +++ b/smart-contracts/fundamentals/faqs.md @@ -70,9 +70,6 @@ Yes. Not necessarily. You can use any of the public RPC nodes on either [mainnet](../../networks/mainnet/) or the \[Calibration testnet]\(/networks/calibration/details/ -* `api.hyperspace.node.glif.io/rpc/v1` -* `api.zondax.ch/fil/node/hyperspace/rpc/v1` - ## **What is the difference between the FVM and Bacalhau** They are synergistic. Compute over data solutions such as [Bacalhau](https://github.com/filecoin-project/bacalhau) can use the FVM.