polkadot兼容以太坊Ethereum项目Moonbeam

简介

使用Substrate构建的与Ethereum 兼容的平行链。它引用了frontier的代码。
Moonbeam 是一个面向开发者的区块链,致力于提供与现有以太坊开发者工具链和网络的兼容性。它通过提供完整的 EVM 实现、与 Web3 兼容的 API 以及将 Moonbeam 连接到现有以太坊网络的桥梁来实现这一点。这允许开发人员以最少的更改将现有的 Solidity 智能合约和 DApp 前端部署到 Moonbeam。
Moonbeam 也将成为 Polkadot 网络上的平行链。这意味着它将从 Polkadot 中继链获得共享安全性,并且能够与连接到 Polkadot 的其他链集成。

部署

  1. clone源码
git clone -b v0.13.2 https://github.com/PureStake/moonbeam
cd moonbeam
  1. 编译
cargo build --release

3.运行

./target/release/moonbeam --dev

您应该会看到如下所示的输出,显示等待生成块的空闲状态:

2021-10-20 15:33:19 Running in --dev mode, RPC CORS has been disabled.    
2021-10-20 15:33:19 Moonbeam Parachain Collator    
2021-10-20 15:33:19 ✌️  version 0.13.2-aa753d26d-x86_64-macos    
2021-10-20 15:33:19 ❤️  by PureStake, 2019-2021    
2021-10-20 15:33:19 📋 Chain specification: Moonbase Development Testnet    
2021-10-20 15:33:19 🏷 Node name: sedate-monkey-5935    
2021-10-20 15:33:19 👤 Role: AUTHORITY    
2021-10-20 15:33:19 💾 Database: RocksDb at /Users/kuangqiling/Library/Application Support/moonbeam/chains/moonbase_dev/db    
2021-10-20 15:33:19 ⛓  Native runtime: moonbase-800 (moonbase-0.tx2.au3)    
2021-10-20 15:33:19 Using default protocol ID "sup" because none is configured in the chain specs    
2021-10-20 15:33:19 🏷 Local node identity is: 12D3KooWH1WRAm4QNKfDEjRWNnqP7Uma95FrCrX4sZy7ncJc3XoR    
2021-10-20 15:33:21 📦 Highest known block at #11    
2021-10-20 15:33:21 〽️ Prometheus exporter started at 127.0.0.1:9615    
2021-10-20 15:33:21 Listening for new connections on 127.0.0.1:9944.    
2021-10-20 15:33:21 Development Service Ready    
2021-10-20 15:33:26 💤 Idle (0 peers), best: #11 (0xb9a4…0629), finalized #0 (0x2b22…a518),

连接polkadot-js

开发节点是基于 Substrate 的节点,因此您可以使用标准 Substrate 工具与其交互。提供的两个 RPC 端点是:

  • HTTP: http://127.0.0.1:9933
  • WS: ws://127.0.0.1:9944
    首先使用 Polkadot.js 应用程序连接到它。打开浏览器:https://polkadot.js.org/apps/#/explorer。这将打开 Polkadot.js Apps,它会自动连接到 Polkadot MainNet。
    在这里插入图片描述
    单击左上角打开菜单以配置网络,然后向下导航以打开开发子菜单。在那里,您需要切换“本地节点”选项,该选项将 Polkadot.js 应用程序指向ws://127.0.0.1:9944. 接下来,选择 Switch 按钮,站点应该连接到您的 Moonbeam 开发节点。
    https://docs.moonbeam.network/images/builders/get-started/moonbeam-dev/moonbeam-dev-6.png
    连接 Polkadot.js 应用程序后,您将看到 Moonbeam 开发节点等待交易到达以开始生成块。
    在这里插入图片描述

使用metamask查看账户状态

  1. 配置网络
    在这里插入图片描述
  2. 导入密钥
    开发节点带有 10 个有资金的开发帐户
    助记词:
bottom drive obey lake curtain smoke basket hold race lonely fit walk
Alith:

Public Address: 0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
Private Key: 0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
Baltathar:

Public Address: 0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
Private Key: 0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
Charleth:

Public Address: 0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
Private Key: 0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
Dorothy:

Public Address: 0x773539d4Ac0e786233D90A233654ccEE26a613D9
Private Key: 0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
Ethan:

Public Address: 0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
Private Key: 0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
Faith:

Public Address: 0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
Private Key: 0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
Goliath:

Public Address: 0x7BF369283338E12C90514468aa3868A551AB2929
Private Key: 0x96b8a38e12e1a31dee1eab2fffdf9d9990045f5b37e44d8cc27766ef294acf18
Heath:

Public Address: 0x931f3600a299fd9B24cEfB3BfF79388D19804BeA
Private Key: 0x0d6dcaaef49272a5411896be8ad16c01c35d6f8c18873387b71fbc734759b0ab
Ida:

Public Address: 0xC41C5F1123ECCd5ce233578B2e7ebd5693869d73
Private Key: 0x4c42532034540267bf568198ccec4cb822a025da542861fcb146a5fab6433ff8
Judith:

Public Address: 0x2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423
Private Key: 0x94c49300a58d576011096bcb006aa06f5a91b34b4383891e8029c21dc39fbb8b

导入其中某个Private Key到metamask
在这里插入图片描述
在这里插入图片描述

  1. 我们可以看到 余额能正常显示
    在这里插入图片描述

使用remix部署智能合约

  1. 打开https://remix.ethereum.org/,并打开示例Owner.sol
    在这里插入图片描述
  2. 编译
    在这里插入图片描述
  3. 却换到部署tab
    填写rpc 接口地址
    在这里插入图片描述
  4. 打开metamsk 选择连接账户,即可在deploy界面看到账户及余额
    在这里插入图片描述
    5.填写 gas limit 点击部署
    在这里插入图片描述
  5. metamask界面会自动打开,点击确认
    在这里插入图片描述
  6. console会显示部署状态
    在这里插入图片描述
  7. 在polkadot.js打开区块12 查看交易
    在这里插入图片描述
  8. evm log会显示合约地址
    在这里插入图片描述
  9. 在deploy界面 输入合约地址 并点击 At address
    在这里插入图片描述
  10. 点击展开,下面会出来合约的方法,
    在这里插入图片描述
  11. 点击getOwner,获取当前Owner
    在这里插入图片描述
  12. 在 address newOwner里输入另外一个账户地址,并点击changeOwner
    在这里插入图片描述
  13. 这时会打开metamask 再点击确认,即完成了一次合约调用
    在这里插入图片描述
  14. 再点击getOwner,此时已经能显示新的地址,说明合约方法调用成功
    在这里插入图片描述

使用truffle发布一个token

Truffle v5.4.15 (core: 5.4.15)
Solidity - ^0.7.0 (solc-js)
Node v15.12.0
Web3.js v1.5.3

  1. clone 项目
git clone https://github.com/PureStake/moonbeam-truffle-box
cd moonbeam-truffle-box
  1. 安装依赖
yarn install
  1. 修改配置文件truffle-config.js
    替换你的私钥
const HDWalletProvider = require('@truffle/hdwallet-provider');
// Moonbeam Development Node Private Key
const privateKeyDev =
   '0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133';
//...
module.exports = {
   networks: {
      dev: {
         provider: () => {
            ...
            return new HDWalletProvider(privateKeyDev, 'http://127.0.0.1:9933')
         },
         network_id: 1281,  // 0x501 in hex,
      },
      //...
   },
   plugins: ['moonbeam-truffle-plugin']
};
  1. truffle box里有一个erc-20代币合约
    contracts/MyToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.5;

// Import OpenZeppelin Contract
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

// This ERC-20 contract mints the specified amount of tokens to the contract creator.
contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MYTOK") 
    {
        _mint(msg.sender, initialSupply);
    }
}
  1. 编译
    在这里插入图片描述
  2. 部署
truffle migrate --network dev

Compiling your contracts...
===========================
✔ Fetching solc version list from solc-bin. Attempt #1
> Everything is up to date, there is nothing to compile.



Starting migrations...
======================
> Network name:    'dev'
> Network id:      1281
> Block gas limit: 15000000 (0xe4e1c0)


1_initial_migration.js
======================

   Deploying 'Migrations'
   ----------------------
   > transaction hash:    0xeb0b1dca071fa9293a3000a98d2ab54587d00888cc0818c9d21c078e8acd2f7b
   > Blocks: 0            Seconds: 0
   > contract address:    0xc01Ee7f10EA4aF4673cFff62710E1D7792aBa8f3
   > block number:        1
   > block timestamp:     1634730056
   > account:             0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
   > balance:             1207825.819455434174706176
   > gas used:            159195 (0x26ddb)
   > gas price:           1 gwei
   > value sent:          0 ETH
   > total cost:          0.000159195 ETH


   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:         0.000159195 ETH


2_deploy_contracts.js
=====================

   Deploying 'MyToken'
   -------------------
   > transaction hash:    0x0b42ece0d7c1cbbba5d55e77ffa2b520b6092e1ec2e9f0f09c9d461b7a4fc1e7
   > Blocks: 0            Seconds: 0
   > contract address:    0x3ed62137c5DB927cb137c26455969116BF0c23Cb
   > block number:        3
   > block timestamp:     1634730057
   > account:             0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
   > balance:             1207825.818306403174706176
   > gas used:            1106693 (0x10e305)
   > gas price:           1 gwei
   > value sent:          0 ETH
   > total cost:          0.001106693 ETH


   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:         0.001106693 ETH


Summary
=======
> Total deployments:   2
> Final cost:          0.001265888 ETH
  1. 打开polkadot-js,查看合约交易
    在这里插入图片描述

  2. 在metamask导入合约0x3ed62137c5DB927cb137c26455969116BF0c23Cb,即可查看到余额
    在这里插入图片描述

  3. 转账测试 (不支持?)
    转到下面的地址
    Public Address: 0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
    Private Key: 0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
    在这里插入图片描述
    在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值