Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
52ef14c
translate: MRL docs
wuzhong-papermoon Oct 30, 2023
f410cb8
Merge branch 'cn-translate' of https://github.com/wuzhong-papermoon/m…
wuzhong-papermoon Oct 30, 2023
5c07eb8
tranlsate: Update note flags
wuzhong-papermoon Oct 30, 2023
b55f682
Update builders/interoperability/mrl.md
wuzhong-papermoon Nov 1, 2023
7f65553
Update builders/interoperability/mrl.md
wuzhong-papermoon Nov 1, 2023
58dfae4
Update builders/interoperability/mrl.md
wuzhong-papermoon Nov 1, 2023
7d911e2
Update builders/interoperability/mrl.md
wuzhong-papermoon Nov 1, 2023
58ce692
Update builders/interoperability/mrl.md
wuzhong-papermoon Nov 1, 2023
acf889d
Update builders/interoperability/protocols/wormhole.md
wuzhong-papermoon Nov 1, 2023
99d054c
Update gmp.md
wuzhong-papermoon Nov 9, 2023
fb113b9
translate: XCM SDK updates
wuzhong-papermoon Nov 28, 2023
8b4df53
Translate: Ethers.js and Web3.js Updates
wuzhong-papermoon Nov 28, 2023
fb438f2
translate: update api3 docs
wuzhong-papermoon Nov 28, 2023
f78c978
translate: update duplicated header attribute for api3
wuzhong-papermoon Nov 28, 2023
4aad65d
translate: Replace PureStake w/ Community for misc updates
wuzhong-papermoon Nov 28, 2023
2254adc
translate: Web3.py Updates
wuzhong-papermoon Nov 28, 2023
85ffb9c
translate: update docs for ws/rpc changes
wuzhong-papermoon Nov 28, 2023
c87417c
Update builders/pallets-precompiles/precompiles/gmp.md
wuzhong-papermoon Dec 7, 2023
2d43042
Update builders/interoperability/mrl.md
wuzhong-papermoon Dec 7, 2023
e782915
Update builders/interoperability/mrl.md
wuzhong-papermoon Dec 7, 2023
0f3f8c4
Apply suggestions from code review
eshaben Dec 7, 2023
6d98d9e
Update node-operators/networks/run-a-node/flags.md
eshaben Dec 7, 2023
346bb35
Apply suggestions from code review
eshaben Dec 7, 2023
db9b788
Apply suggestions from code review
eshaben Dec 7, 2023
6b86460
Apply suggestions from code review
eshaben Dec 8, 2023
93cd733
Update builders/interoperability/xcm/xcm-sdk/v1/reference.md
eshaben Dec 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion builders/build/eth-api/libraries/ethersjs.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ description: 通过本教程以学习如何使用以太坊EtherJS代码库在Moo

## 安装Ethers.js {: #install-ethersjs }

首先,您需要创建一个目录,以存储您在本教程中将要创建的所有文件
首先,您需要开始一个基本的JavaScript项目。第一步,创建一个目录来存储您在本教程中将要生成的所有文件,并使用以下命令来初始化该文件夹

```bash
mkdir ethers-examples && cd ethers-examples && npm init --y
Expand Down Expand Up @@ -141,6 +141,8 @@ mkdir ethers-examples && cd ethers-examples && npm init --y
});
```

将此代码片段保存起来,因为您将在以下部分使用的脚本中用到它。

## 发送交易 {: #send-a-transaction }

在这一部分,您将需要创建一些脚本。第一个脚本将用于发送交易前检查账户余额。第二个脚本将执行交易。
Expand Down
6 changes: 4 additions & 2 deletions builders/build/eth-api/libraries/web3js.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 使用Web3.js发送交易和部署合约
title: 如何使用Ethereum Web3.js代码库
description: 通过本教程学习如何使用以太坊web3.js JavaScript代码库在Moonbeam上发送交易和部署Solidity智能合约。
---

Expand All @@ -25,7 +25,7 @@ description: 通过本教程学习如何使用以太坊web3.js JavaScript代码

## 安装Web3.js {: #install-web3js }

首先,您需要创建一个目录,以存储您在本教程中将要创建的所有文件
首先,您需要开始一个基本的JavaScript项目。第一步,创建一个目录来存储您在本教程中将要生成的所有文件,并使用以下命令来初始化该文件夹

```bash
mkdir web3-examples && cd web3-examples && npm init --y
Expand Down Expand Up @@ -88,6 +88,8 @@ mkdir web3-examples && cd web3-examples && npm init --y
const web3 = new Web3('{{ networks.development.rpc_url }}');
```

将此代码片段保存起来,因为您将在以下部分使用的脚本中用到它。

## 发送交易 {: #send-a-transaction }

在这一部分,您将需要创建一些脚本。第一个脚本将用于发送交易前查看账户余额。第二个脚本将执行交易。
Expand Down
23 changes: 20 additions & 3 deletions builders/build/eth-api/libraries/web3py.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 使用Web3.py发送交易和部署合约
title: 如何使用Ethereum Web3.py代码库
description: 通过本教程学习如何使用以太坊Web3 Python代码库在Moonbeam上发送交易和部署Solidity智能合约。
---

Expand Down Expand Up @@ -39,43 +39,57 @@ pip3 install web3 py-solc-x

## 在Moonbeam上设置Web3.py {: #setup-web3-with-moonbeam }

您可以为任何Moonbeam网络配置Web3.py。
在这个文章中,您将会创建多个用来实现不同功能的脚本;比如发送交易,部署智能合约,与已部署的智能合约交互。在大部的脚本中您都需要创建一个[Web3.py provider](https://web3py.readthedocs.io/en/stable/providers.html)来与网路互动。

--8<-- 'text/_common/endpoint-setup.md'

每个网络最简单的设置方式如下所示:
您需要通过以下步骤来创建一个provider:

1. 导入`web3`代码库
2. 用`Web3(Web3.HTTPProvider())`方法创建一个`web3`provider并提供一个网络终端URL

=== "Moonbeam"

```python
# 1. 导入web3.py
from web3 import Web3

# 2. 创建web3.py provider
web3 = Web3(Web3.HTTPProvider("{{ networks.moonbeam.rpc_url }}")) # Insert your RPC URL here
```

=== "Moonriver"

```python
# 1. 导入web3.py
from web3 import Web3

# 2. 创建web3.py provider
web3 = Web3(Web3.HTTPProvider("{{ networks.moonriver.rpc_url }}")) # Insert your RPC URL here
```

=== "Moonbase Alpha"

```python
# 1. 导入web3.py
from web3 import Web3

# 2. 创建web3.py provider
web3 = Web3(Web3.HTTPProvider("{{ networks.moonbase.rpc_url }}"))
```

=== "Moonbeam开发节点"

```python
# 1. 导入web3.py
from web3 import Web3

# 2. 创建web3.py provider
web3 = Web3(Web3.HTTPProvider("{{ networks.development.rpc_url }}"))
```

您可以记下这个代码范例,您将在之后部分的脚本示例中使到它。

## 发送交易 {: #send-a-transaction }

在这一部分,您将需要创建一些脚本。第一个脚本将用于发送交易前查看账户余额。第二个脚本将执行交易。
Expand Down Expand Up @@ -164,6 +178,9 @@ touch compile.py
--8<-- 'code/builders/build/eth-api/libraries/web3-py/compile.py'
```

!!! 注意事项
如果您遇到`Solc is not installed`报错,反注释代码示例的第二步并运行它。

### 部署合约脚本 {: #deploy-contract-script }

有了用于编译`Incrementer.sol`合约的脚本,您就可以使用结果以发送部署的签名交易。首先,您可以为部署的脚本创建一个名为`deploy.py`的文件:
Expand Down
17 changes: 8 additions & 9 deletions builders/get-started/networks/moonbeam-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,23 @@ Moonbeam开发节点是您自己的个人开发环境,用于在Moonbeam上构
```bash
docker run --rm --name {{ networks.development.container_name }} --network host \
purestake/moonbeam:{{ networks.development.build_tag }} \
--dev
--dev --rpc-external
```

=== "MacOS"

```bash
docker run --rm --name {{ networks.development.container_name }} -p 9944:9944 \
purestake/moonbeam:{{ networks.development.build_tag }} \
--dev --ws-external --rpc-external
--dev --rpc-external
```

=== "Windows"

```bash
docker run --rm --name {{ networks.development.container_name }} -p 9944:9944 ^
purestake/moonbeam:{{ networks.development.build_tag }} ^
--dev --ws-external --rpc-external
--dev --rpc-external
```

!!! 注意事项
Expand Down Expand Up @@ -169,8 +169,7 @@ purestake/moonbeam \

- **`--dev`** - 指定开发链
- **`--tmp`** - 运行一个临时节点,该节点将在流程结束时删除所有配置
- **`--rpc-external`** - 监听所有RPC接口
- **`--ws-external`** - 监听所有Websocket接口
- **`--rpc-external`** - 监听所有RPC与Websocket接口

### 配置节点的常用选项 {: #node-options }

Expand All @@ -182,10 +181,10 @@ purestake/moonbeam \

- **`-l <log pattern>` or `--log <log pattern>`** - 设置自定义日志记录筛选器。日志模式的语法为`<target>=<level>`。例如,要打印所有JSON RPC日志,命令应如下所示:`-l json=trace`
- **`--sealing <interval>`** - 什么时候区块需要被封装在开发服务中。可接受的时间间隔参数为:`instant`、`manual`、或一个代表计时器间隔(以毫秒为单位)的数字(例如,`6000`是指节点每6秒产生一次区块)。默认设置是`instant`。请参阅下面的[配置区块生产](#configure-block-production)部分以获取更多信息
- **`--rpc-port <port>`** - *从[v0.30.0客户端版本](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.30.0){target=_blank}开始弃用,使用`--ws-port`进行HTTP和WS的连接* - 设置HTTP RPC服务器的TCP端口。接受端口作为参数
- **`--ws-port <port>`** - 设置WebSockets RPC服务器的TCP端口。从[v0.30.0客户端版本](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.30.0){target=_blank}开始,WS端口是用于HTTP和WS连接的统一端口。接受端口作为参数。默认值是{{ networks.parachain.ws }}
- **`--rpc-max-connections <connections>`** - *自[客户端v0.30.0](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.30.0){target=_blank}起已弃用,此值已硬编码为100。请使用`--ws-max-connections`以调整HTTP和WS连接的总限制* - 指定HTTP RPC服务器连接的最大数量
- **`--ws-max-connections <connections>`** - 指定WS RPC服务器连接的最大数量。自[客户端v0.30.0](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.30.0){target=_blank}起,此标志调整HTTP和WS连接的总限制。默认为100个连接。
- **`--rpc-port <port>`** - 用来配置HTTP与WS连接的统一端口。接收一个port作为参数,默认为{{ networks.parachain.rpc }}
- **`--ws-port <port>`** - *从[v0.33.0客户端版本](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.33.0){target=_blank}开始已弃用,HTTP与WS连接改为统一使用`--rpc-port`来配置* 设置WebSockets RPC服务器的TCP端口。从[v0.30.0客户端版本](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.30.0){target=_blank}开始使用,用来设置HTTP与WS连接的统一端口. 接收一个port作为参数
- **`--rpc-max-connections <connections>`** - 配置HTTP与WS连接的上限总和. 默认连接数为100
- **`--ws-max-connections <connections>`** - * *从[v0.33.0客户端版本](https://github.com/moonbeam-foundation/moonbeam/releases/tag/v0.33.0){target=_blank}开始已弃用, 改为使用`--rpc-max-connections`参数来限制 HTTP与WS连接数量上线* - 配置HTTP与WS连接的上限总和. 默认连接数为100
- **`--rpc-cors <origins>`** - 指定允许浏览器源头访问HTTP和WS RPC服务器。该源头可以是允许访问的以逗号分隔的来源列表,或者您也可以指定`null`。当运行一个开发节点时,预设为允许所有源头

如需命令行标志和选项的完整列表,请在命令末尾添加`--help`来启动Moonbeam开发节点。
Expand Down
54 changes: 47 additions & 7 deletions builders/integrations/oracles/api3.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ contract Requester is RrpRequesterV0 {
}
```

您也可以尝试在[Remix上部署范例合约](https://remix.ethereum.org/#url=https://github.com/vanshwassan/RemixContracts/blob/master/contracts/Requester.sol&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.9+commit.e5eed63a.js){target=_blank}。
您也可以尝试在[Remix上部署范例合约](https://remix.ethereum.org/#url=https://github.com/api3-ecosystem/remix-contracts/blob/master/contracts/Requester.sol&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.9+commit.e5eed63a.js){target=_blank}。

### 合约地址 {: #contract-addresses }

Expand Down Expand Up @@ -140,12 +140,27 @@ contract Requester is RrpRequesterV0 {

*要了解更多dAPI是如何运作的,您可以查看[API3的文档网站](https://docs.api3.org/explore/dapis/what-are-dapis.html){target=_blank}。*

### 访问自费的dAPI {: #self-funded-dapis}
### dAPI类型 {: #types-of-dapis }

自费的dAPI为开发者提供了以最少的前期付出体验数据源的机会,在使用托管dAPI之前提供了低风险的选择。
dAPI有两种类型: [自费](https://docs.api3.org/reference/dapis/understand/self-funded.html){target=_blank}与[托管](https://docs.api3.org/reference/dapis/understand/managed.html){target=_blank}. 托管DAPI仅部署在主网上, 自费dAPI在主网和测试网都有部署。利用dAPI代理来读取自费或托管dAPI数据流程是一样的.

#### 自费dAPIs {: #self-funded-dapis }

[自费dAPI](https://docs.api3.org/reference/dapis/understand/self-funded.html){target=_blank}是用户自己付费订阅的单源数据推送. 它们为开发者提供了以最少的前期付出体验数据源的机会,在使用托管dAPI之前提供了低风险的选择。

通过自费的dAPI,您可以用自己的资金为dAPI提供资金。您提供的Gas数量将决定您dAPI的可用时间。如果您的Gas耗尽,您可以再次为dAPI提供资金以使其可供使用。

您可以在[API3的自费dAPI文档](https://docs.api3.org/guides/dapis/subscribing-self-funded-dapis/){target=_blank}中获取更多关于它的知识。

#### 托管dAPIs {: #managed-dapis }

[托管dAPI](https://docs.api3.org/reference/dapis/understand/managed.html)的数据由多个不同[一手](https://docs.api3.org/explore/airnode/why-first-party-oracles.html){target=_blank}数据提供商通过Airnode提供。数据提供商的数据会经过Airnode的median函数集成并签名。Gas费用与dAPI的可靠性由[API3 DAO](https://docs.api3.org/explore/dao-members/){target=_blank}管理.

您可以在[API3的托管dAPI文档页面](https://docs.api3.org/reference/dapis/understand/managed.html){target=_blank}获取更多关于它的知识。

### 访问自费的dAPI {: #access-self-funded-dapis}


以下为访问自筹数据源的流程:

1. 探索API3 Market并选取一个dAPI
Expand All @@ -159,6 +174,10 @@ contract Requester is RrpRequesterV0 {

[API3 Market](https://market.api3.org/dapis){target=_blank}使用户能够连接到dAPI并访问相关的数据馈送服务。它提供了跨多个链(包括测试网)可用的所有dAPI的列表。您可以按链和数据提供商过滤列表。您还可以根据名称搜索特定的dAPI。点击dAPI进入详细信息页面,获取有关dAPI的更多信息。

根据以上信息,您可以自己决定使用自费或托管dAPI.

![API3 Dapi Page](/images/builders/integrations/oracles/api3/api3-5.png)

#### 资助一个赞助商钱包 {: #fund-sponsor-wallet }

选择中意的dAPI后,您可以使用[API3 Market](https://market.api3.org/){target=_blank}激活它,将资金(DEV、MOVR或GLMR)发送到`sponsorWallet `。确保您的:
Expand Down Expand Up @@ -189,9 +208,29 @@ contract Requester is RrpRequesterV0 {

当交易完成并在区块链上确认后,代理合约地址将会在界面中显示。

### 读取托管dAPIs {: #access-managed-dapis }

如果您想使用托管dAPI,在选择dAPI后,会有两个选项供您选择:**Managed**或**Self-funded**. 选择**Managed dAPIs**.

托管dAPI提供给用户配置dAPI参数的选项,其中包括[偏差临界](https://docs.api3.org/reference/dapis/understand/deviations.html){target=_blank}和[heartbeat](https://docs.api3.org/reference/dapis/understand/deviations.html#heartbeat){target=_blank}. 您会有以下选项来配置托管dAPI:

| 偏差 | Heartbeat |
| --------- | --------- |
| 0.25% | 2 分钟 |
| 0.25% | 24 小时 |
| 0.5% | 24 小时 |
| 1% | 24 小时 |

!!! 注意事项
根据资产和链的不同,并不是所有dAPI都支持全部配置选项。访问[API3市场](https://market.api3.org){target=_blank} 获取更多信息。

在选择偏差临界值和heartbeat之后,检查最后的价格,然后选择**Add to Cart**。您可以添加同一个网络上的多个dAPI进购物车。选择完成后点**Checkout**。请在付款页面确认最后的订单信息和价格。当您检查完后,连接您的钱包并付款。

在提交订单之后,您将需要等待dAPI的更新。dAPI团队通常需要五个工作日来根据提交的配置信息更新dAPI。当dAPI完成更新后,它就可以开始在您的dApp中使用了。

#### 读取自费的dAPI {: #read-dapis }

以下为一个读取自费dAPI的基础合约范例
以下为一个读取dAPI的基础合约范例

```solidity
// SPDX-License-Identifier: MIT
Expand Down Expand Up @@ -227,9 +266,9 @@ contract DataFeedReaderExample is Ownable {
- `setProxy()` - 用于设置dAPI代理合约的地址
- `readDataFeed()` - 返回设定dAPI最新价格的`view`函数

[您可以尝试在Remix上部署](https://remix.ethereum.org/#url=https://gist.githubusercontent.com/vanshwassan/1ec4230956a78c73a00768180cba3649/raw/176b4a3781d55d6fb2d2ad380be0c26f412a7e3c/DapiReader.sol){target=_blank}
[您可以尝试在Remix上部署](https://remix.ethereum.org/#url=https://github.com/api3-ecosystem/remix-contracts/blob/master/contracts/DataFeedReader.sol&lang=en&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.18+commit.87f61d96.js){target=_blank}

另外,您可以在[API3的官方文档网站](https://docs.api3.org/guides/dapis/subscribing-self-funded-dapis/)中获取更多资讯{target=_blank}。
另外,您可以在[API3的官方文档网站](https://docs.api3.org/guides/dapis/subscribing-managed-dapis/){target=_blank}中获取更多资讯

## API3 QRNG {: #api3-qrng }

Expand Down Expand Up @@ -319,7 +358,7 @@ contract RemixQrngExample is RrpRequesterV0 {
!!! 注意事项
您可以从下面的[QRNG提供商](#qrng-providers)部分获取`airnode`地址和`endpointIdUint256`。

[您可以尝试在Remix上部署](https://remix.ethereum.org/#url=https://github.com/vanshwassan/RemixContracts/blob/master/contracts/QrngRequester.sol&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.9+commit.e5eed63a.js){target=_blank}。
[您可以尝试在Remix上部署](https://remix.ethereum.org/#url=https://github.com/api3-ecosystem/remix-contracts/blob/master/contracts/QrngRequesterUpdated.sol&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.9+commit.e5eed63a.js&lang=en){target=_blank}。

### QRNG Airnode和端点提供者 {: #qrng-providers }

Expand Down Expand Up @@ -363,5 +402,6 @@ contract RemixQrngExample is RrpRequesterV0 {
- [QRNG Docs](https://docs.api3.org/explore/qrng/){target=_blank}
- [API3 DAO GitHub](https://github.com/api3dao/){target=_blank}
- [API3 Medium](https://medium.com/api3){target=_blank}
- [API3 YouTube](https://www.youtube.com/API3DAO){target=_blank}

--8<-- 'text/_disclaimers/third-party-content.md'
3 changes: 2 additions & 1 deletion builders/interoperability/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ hide: false
nav:
- index.md
- xcm
- protocols
- protocols
- mrl.md
Loading