主页 > imtoken手机钱包app下载 > 以太坊坚固性简介
以太坊坚固性简介
以太坊简介
以太坊是一个基于区块链技术的去中心化应用平台。 它允许任何人在平台中构建和使用运行在区块链技术上的去中心化应用程序。
坚固性
智能合约可以用以太坊中的任何高级语言编写。 智能合约默认的编程语言是Solidity以太坊平台可以运载智能合约,文件扩展名以.sol结尾。 Solidity 是一种语法类似于 JavaScript 的高级语言。 它旨在以编译方式生成 EVM 代码。 使用 Solidity 可以轻松创建用于投票、众筹、封闭式拍卖、多重签名钱包等的智能合约。
Solidity智能合约文件结构
//版本声明
pragma solidity ^0.4.18;
//引用
导入“文件名”;
//合同
合同合同名称{
...
}
Solidity 中的合约类似于面向对象语言中的类定义。 每个合约包括状态变量、函数、函数修饰符、事件、结构类型和枚举类型。 此外,合约还可以继承自其他合约。
关于Solidity的语法教程推荐一篇博客:
1个
类型介绍
2个
地址类型介绍
3个
函数类型
4个
数据存储位置分析
5个
数组简介
6个
结构和地图
7
以太单位和时间单位
8个
可靠API
9
错误处理
10
完全理解函数修饰符
混音
Remix是一个开源的Solidity智能合约开发环境,提供编译、部署到本地或测试网络、执行合约等基本功能。 Solidity 是以太坊官方设计并支持的一种开发语言,专门用于编写智能合约。
Remix 适合编程经验不多的初学者。 但是以太坊平台可以运载智能合约,版本控制、测试和与其他开发工具一起使用是不可能的。 其实开发DApp,使用Truffle、Ganache、web3.js编译部署合约更方便、更专业,更适合开发者。
开发环境
Remix是一个开发者可以直接在线使用的网站:
如果编译报错mock compiler: source not found,可以换个地址:
#optimize=false&version=soljson-v0.4.23+commit.124ca40d.js
编译
点击Remix左上角的加号按钮新建合约文件MyToken.sol
pragma solidity ^0.4.0;
合约 MyToken {
/* 这将创建一个包含所有余额的数组 */
映射(地址=> uint256)公共平衡;
/* 使用初始供应令牌初始化合约给合约的创建者 */
函数 MyToken(uint256 initialSupply) public {
balanceOf[msg.sender] = initialSupply;
// 给创建者所有的初始代币
}
/* 发送硬币 */
函数传输(地址_to,uint256_value)公共{
要求(balanceOf[msg.sender] >= _value);
// 检查发送者是否有足够的
要求(balanceOf[_to] + _value >= balanceOf[_to]);
// 检查溢出
balanceOf[msg.sender] -= _value;
// 从发送者中减去
balanceOf[_to] += _value;
// 将相同的添加到收件人
}
}
这是以太坊官网提供的最小可执行代币合约。 MyToken 合约实际上只能做两件事
合约文件创建完成后,点击Remix右上角的编译按钮。 如果忽略该警告,则编译成功。
跑步
编译成功后,选择Remix页面右上角的Run选项卡,首先选择环境,选择JavaScript VM代表所有数据都存储在本地(功能类似testrpc)。 它将提供 5 个虚拟账户,每个账户 100 ETH:
然后选择MyToken合约,输入初始值(发行代币数量),创建并点击Create部署合约:
控制台可以看到运行日志:
合约部署成功后,可以看到合约的界面。 Remix会根据合约内容自动生成对应的合约用户界面。 可以看到合约有两个函数:balanceOf(查询余额)和transfer(转移代币)。
部署合约时初始化1000个代币,对应地址为环境中选择的账户,查看余额:
选择其他账户转账:
在输入框输入地址和代币号:“0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db”, 10
同时查看转账成功后的余额:
执行操作时可以在控制台看到日志:
因为合约的执行需要消耗Gas,可以看到账户中的以太币会减少:
参考