教练,我“只”想学`solidity`

简介: 教练,我“只”想学solidity Smart Contract(智能合约)才是Dapp(去中心化应用)的核心,不是nodejs。 如果你想要研究Solidity,但沒碰过nodejs,那么本篇是专门为你而写的。

Smart Contract(智能合约)才是Dapp(去中心化应用)的核心,不是nodejs

如果你想要研究Solidity,但沒碰过nodejs,那么本篇是专门为你而写的。只需要使用网页面的Solidity编辑器(https://ethereum.github.io/browser-solidity),以及安装MetaMask就可以开心的编写、部署、测试智能合约。

想写这篇文章的原因是这样的,当初我想学如何写Solidity,作为一个初学者大概就是直接安装Ethereum官网提供的Wallet,使用它内建的编辑器来开发,但是部署的时候会经常失败,也找不到原因,区块同步又非常缓慢,实在是不太好用。

耗费一番功夫google之后,发现testrpc+truffle也是不错的开发工具组合,然而我就是这个时候开始被nodejs绑架的XD,写完contract之后要再花费很多力气写nodejs才能测试啊。不管你的Solidity学习路径如何,总是会碰到nodejs,实在是一件非常奇怪的事情。

1. 安装MetaMask

这是一个Chrome的套件,所以你要先安装Chrome,再安装MetaMask,裝完之后Chrome右上角就会有只狐狸跑出來,如下图所示。

点击红色箭头指向的图片,一步一步注册账号。

  • 第一步,Accept
  • 第二步,输入密码
  • 第三步,拷贝恢复账号的安全码,一共是12个单词,切记,这一步很重要,一定要把这个安全码记录下来方便恢复账号。

  • 下面是安装完后的界面效果图

    • 可以很方便的查看钱包地址
    • 将地址转换为二维码
    • 买入以太币
    • 发送以太币

2. 配置MetaMask的Test Net

  • 从Main Ethereum Network切换到Ropsten Test Network

  • 购买以太币

3. 使用网页版的Solidity编辑器

step 1. 打开browser-solidity网页https://ethereum.github.io/browser-solidity

第一次打开网页会默认载入一个案例,如下入所示:

step 2. 为了容易示范首先换个简单的案例,然后确认有选择Injected Web3选项,之后按下Create就会自动通过MetaMask发送部署Contract的交易。

拷贝如下代码,替换掉原代码:

pragma solidity ^0.4.11;

contract SimpleStorage {
    uint data;
    
    function setData(uint x) {
        
        data = x;
    }
    
    function getData() constant returns (uint) {
        
        return data;
    }
}

点击Create按钮后会弹出MetaMask界面,如下图所示:

接下来点击SUBMIT按钮,在下图中,本次部署失败,如下图所示:

重新运行程序,点击Create,重新部署,下图是合约部署成功:

step 3. 回到browser-solidity,就可以看到多了两个contract定义的function可以使用,constant function可以直接使用,就像下面的图中的get,其他的function一样会通过MetaMask发出交易,如下面图的set。






补充:在browser-solidity下入中的value位置可以设定要转发多少ether給contract,这可以用来测试payable function。

技术交流

  • 区块链技术交流QQ群:348924182
  • 「区块链部落」官方公众号

相关文章
|
缓存 应用服务中间件 网络安全
Linux 配置 Nginx 服务完整详细版
Linux 配置 Nginx 服务完整详细版
1086 1
|
Ubuntu Linux
Centos 7、Debian、Ubuntu中tree指令的检查与下载
Centos 7、Debian、Ubuntu中tree指令的检查与下载
|
Java 应用服务中间件 Maven
Maven简介及配置使用
Maven简介及配置使用
983 0
|
C++ Docker Python
M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例
M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例
465 0
|
弹性计算 Cloud Native 数据可视化
建站选择云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站有何区别?
在阿里云的各种云产品中,云虚拟主机、轻量应用服务器、云服务器、云·原生建站、云·速成美站等产品都可用来建站使用,每种产品都有自己的优势和适用场景,例如我们是自己写的代码,可以选择云虚拟主机或者云服务器和轻量应用服务器来搭建网站,如果是自己不会写代码,想快速完成建站,一般选择云·速成美站就可以。本文为大家比较下这几个阿里云的产品在建站时各自的优势和适合的用户,以供参考。
建站选择云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站有何区别?
|
Web App开发 缓存 Windows
Windows / Visual Studio / Qt 实用快捷键 (持续更新)
Windows 平台,集成开发环境 Visual Studio 和 Qt 的一些使用键盘的便捷操作
500 0
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
399 3
|
测试技术 Swift 数据安全/隐私保护
【Swift开发专栏】Swift中的代码重构与模块化
【4月更文挑战第30天】本文探讨了Swift中代码重构和模块化的重要性,旨在提升项目质量。重构改善代码内部结构,提高可读性与可维护性,而模块化降低系统复杂性,增强代码复用。文章围绕代码重构的基本概念、模块化设计原则及Swift特性在两者中的应用展开,强调协议扩展、泛型、SPM和访问控制在实现重构和模块化中的作用。掌握这些技巧对构建高效、可扩展的Swift软件至关重要。
220 2
|
前端开发
【Web 前端】什么是浮动?
【4月更文挑战第22天】【Web 前端】什么是浮动?
|
存储 人工智能 算法
向量数据库:使用体验、大模型关注与AI时代的航道灯塔
随着人工智能的快速发展,作为开发者的我们,见证了AI在技术圈掀起的技术变革,向量数据库作为一种专门处理高维数据的数据库,近年来在AI领域备受开发者们的关注。向量数据库的特点是能够快速匹配相似内容,对于图像搜索、推荐算法等领域具有重要意义。但是我们需要认真思考一下,向量数据库是一时的浪花,还是能够成为AI时代的未来航标?那么本文就来简单聊聊向量数据库在AI时代的崛起和应用,并分析其前景是否仅限于当前的热潮,还是能够成为开发者不可或缺的工具,引领AI时代的新潮流。从实际应用的角度出发,通过结合实际项目经验,将对向量数据库的前景进行深入思考和讨论,深入剖析向量数据库的优势、挑战和前景,以期为读者提供
638 1
向量数据库:使用体验、大模型关注与AI时代的航道灯塔