创建并部署自己的第一个区块链智能合约
注册metaMask钱包
下载并安装浏览器插件
最好是找个梯子🪜,网速要求不高,能看文档和google就行。接下来要搞区块链和web3的话,难免要看一些国外的文献,逛一些技术社区,为节省时间所以科学地上网是必要的。
从chrome浏览器里找到应用商店,一键安装metaMask扩展
注册metamask账号
第一次使用metamask (小狐狸)钱包,需要先注册一个账号,并获得钱包地址。
助记词很重要,后期忘记密码时,可凭助记词找回。
配置solidity开发环境
安装nodejs环境
brew install node
brew link --overwrite --force node
安装完之后验证一下
~
➜ node -v
v17.4.0
~
➜ npm -v
8.3.1
安装Solidity编译器solc
~
➜ npm install -g solc
added 9 packages in 2s
npm notice
npm notice New minor version of npm available! 8.3.1 -> 8.19.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2
npm notice Run npm install -g npm@8.19.2 to update!
npm notice
~ took 2s
➜
上面的命令将会安装 solcjs 程序,并且能够在整个系统中都可用。
验证 solc 安装是否正确
➜ solcjs --version
0.8.17+commit.8df45f5f.Emscripten.clang
~ took 7s
➜
使用remix在线编写智能合约
在浏览器中打开remix编辑器 remix
为了方便使用,可以在左下角[设置] -> [语言] 处切换中文简体,在主题处选一个令人心情愉悦的主题
编写Hello World 智能合约
在左上角点文件系统,选择默认workspace ,然后在contract 目录下新建HelloWorld.sol文件
基于以太坊的智能合约 用到的语言是 solidity ,智能合约需要声明为 contract ,然后写一个函数 sayHello() ,函数以public标记,有一个string类型的返回值,注意是首字母小写,区别于java的String。
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract HelloWorld {
function sayHello() public pure returns(string memory) {
return "Hello World";
}
}
编译
在remix编辑中点击 Solidity compiler 切换到编译界面
选择和代码中指定的 solidity版本相匹配的编译器。比如代码中是 '^0.8.0' 代表这个solidity程序可以被 大于或等于0.8.0版本 的编译器所编译,这里我选择0.8.17进行编译。
部署并运行
点击以太坊的标记(Deploy & run transactions) 切换到部署运行界面
环境、账户和GAS 都可以默认,选择刚才编写的合约,点击部署
这时就可以看到已部署的合约,控制台也会输出部署成功的日志
点击刚才部署成功的合约运行,就可以从日志中看到从我们的账户成功发起一笔交易到对方账户
虽然这笔交易没有账目往来,但是按照我们的预期发送了一个字符串 "Hello Word" !
恭喜,现在你的第一个智能合约已完美实现并部署运行!
后记
在本地vscode编辑器中编写智能合约
在vscode中安装扩展插件 ⌈Ethereum Remix⌋和⌈solidity⌋
开启本地remix
开启本地连接,原理其实就是本地连接远程remix进行开发,值得一提⌈Ethereum Remix⌋也可以本地编译,但要注意编译器版本与sol文件中的匹配。
同时web端remix也要连接到本地。步骤:打开remix主页,⌈File explorer⌋-⌈Workspace⌋-⌈connect to localhost⌋
不出意外的话,web端remix这时就能看到本地vscode中的智能合约项目和文件了, 而本地vscode控制台则会输出连接成功的日志
[19:31:50]: Connecting to Remix ... please go to https://remix.ethereum.org/ to connect to localhost in the File Explorer.
[19:32:28]: Connected to Remix
[19:32:28]: Getting accounts
[19:32:28]: Get accounts...
[19:32:29]: Account changed to 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
[19:55:55]: Compiling with version latest
[19:55:56]: Compiling with local or cached version: 0.8.6+commit.11564f7e.Emscripten.clang... step:1
[19:55:56]: Compilation finished for helloWorld/HelloWorld.sol with solidity version 0.8.6+commit.11564f7e.Emscripten.clang.
[19:57:01]: Compiling with version soljson-v0.8.17+commit.8df45f5f.js
[19:57:02]: Loading remote version v0.8.17+commit.8df45f5f... please wait
[19:57:10]: Remote version v0.8.17+commit.8df45f5f loaded.
[19:57:10]: Compilation finished for helloWorld/HelloWorld.sol with solidity version 0.8.17+commit.8df45f5f.Emscripten.clang.
[22:08:50]: Connected to Remix
这样做的好处是我们可以使用熟悉的编辑器,在本地方便地编写智能合约代码,等到编写好之后,则直接可以到web端的remix中点击编译,点击部署和运行,而不需要在本地运行钱包和配置复杂的以太坊EVM运行环境,
在线的remix还为我们提供了供测试用的账户和虚拟币,直接一站式服务,我们只需要在vscode中专注于代码即可。
本文作者:元宇宙的元
本文链接:https://www.cnblogs.com/ludg/p/16729443.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤