-
『0021』- 单位(Units) 和 全局变量(Globally Available Variables)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.orgEther Units一个整数的后面可以跟一个单位,ether,finney,szabo或者wei。他们的单位换算如下: 1 ether = 1000 finney 1 ether = 1000000 szabo 1 ether = 10 ** 18 weipragma solidity ^0.4.4;...…
-
以太坊私网建立 (3) - 通过创世区块(genesis block)来初始化区块链
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 从零构建以太坊私链免费公开课视频 以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1) 以太坊私网建立 (2) - 同一台电脑/不同电脑运行多个节点 以太坊私网建立 (3) - 通过创世区块来初始化区块链genesis block file example{ "config": { ...…
-
以太坊私网建立 (2) - 同一台电脑/不同电脑运行多个节点
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 从零构建以太坊私链免费公开课视频 以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1) 以太坊私网建立 (2) - 同一台电脑/不同电脑运行多个节点 以太坊私网建立 (3) - 通过创世区块来初始化区块链接下来我们将在我们的私有网络连接两个节点。先思考两个问题 决定存储区块链数据的目...…
-
以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 从零构建以太坊私链免费公开课视频 以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1) 以太坊私网建立 (2) - 同一台电脑/不同电脑运行多个节点 以太坊私网建立 (3) - 通过创世区块来初始化区块链一、为什么用到私有链?在以太坊的共有链上部署智能合约、发起交易需要花费以太币。而通...…
-
如何编写智能合约(Smart Contract)- 从零构建和部署去中心化投票App,decentralization Voting Dapp
课程目标 了解区块链智能合约 学会搭建智能合约开发环境 学会如何编译智能合约 学会如何将智能合约部署到区块链 学会如何通过WebApp和智能合约尽心互动 掌握DApp(去中心化App)的整个开发部署流程 掌握去中心化在实战产品中应用的重大意义项目效果图编辑器选择理论上讲任何编辑器都可以编写Solidity合约代码,比如:WebStorm,VSCode,Sublime,等等。我选择的是Atom,没有任何理由,因为Atom轻量并且界面漂亮。 移步https://atom...…
-
『0020』- 集资(CrowdFunding)智能合约(Smart Contract)综合案例
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org结构体和字典综合案例下面的案例是一个集资合约的案例,里面有两个角色,一个是投资人Funder,也就是出资者。另一个角色是运动员Campaign,被赞助者。一个Funder可以给多个Campaign赞助,一个Campaign也可以被多个Funder赞助。完整合约:pragma solidity ^0.4.4;c...…
-
『0019』 - Solidity Types - Solidity 字典/映射(Mappings)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org语法mapping(_KeyType => _ValueType)字典/映射其实就是一个一对一键值存储关系。举个例子:{age: 28, height: 172, name: liyuechun, wx: liyc1215}这就是一个映射,满足_KeyType => _ValueType之间的映射...…
-
『0018』 - Solidity Types - Solidity 结构体(Structs)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org自定义结构体pragma solidity ^0.4.4;contract Students { struct Person { uint age; uint stuID; string name; }}Person就是我们自定义的一个新的结构体类...…
-
『0017』 - Solidity Types - Solidity 枚举(Enums)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org案例下面的代码是我对官方案例作了简单的修改而成。ActionChoices就是一个自定义的整型,当枚举数不够多时,它默认的类型为uint8,当枚举数足够多时,它会自动变成uint16,下面的GoLeft == 0,GoRight == 1, GoStraight == 2, SitStill == 3。在se...…
-
『0016』 - Solidity Types - 玩转 Solidity 数组 (Arrays)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org学习目标 掌握Arrays的可变不可变的创建 深度理解可变数组和不可变数组之间的区别 二位数组 memory arrays的创建 bytes0 ~ bytes32、bytes与byte[]对比固定长度的数组(Arrays)固定长度类型数组的声明pragma solidity ^0.4.4;contr...…
-
『0015』 - Solidity Types - 动态字节数组(Dynamically-sized byte array)、固定大小字节数组(Fixed-size byte arrays)、string之间的转换关系
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org固定大小字节数组(Fixed-size byte arrays)之间的转换固定大小字节我们可以通过bytes0 ~ bytes32来进行声明,固定大小字节数组的长度不可变,内容不可修改。接下来我们通过下面的代码看看固定大小字节之间的转换关系。pragma solidity ^0.4.4;contract C ...…
-
『0014』 - Solidity Types - 动态大小字节数组(Dynamically-sized byte array)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org一、Dynamically-sized byte array string 是一个动态尺寸的UTF-8编码字符串,它其实是一个特殊的可变字节数组,string是引用类型,而非值类型。 bytes 动态字节数组,引用类型。根据经验,在我们不确定字节数据大小的情况下,我们可以使用string或者bytes,而...…
-
『0013』 - Solidity Types - 固定大小字节数组(Fixed-size byte arrays)
孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链、高可用架构工程师微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org固定大小字节数组(Fixed-size byte arrays)固定大小字节数组可以通过 bytes1, bytes2, bytes3, …, bytes32来进行声明。PS:byte的别名就是 byte1。 bytes1只能存储一个字节,也就是二进制8位的内容。 bytes2只能存储两个字节,也就是二进...…
-
『0012』 - Solidity Types - 字符串(String Literals)
孔壹学院:国内区块链职业教育领先品牌 孔壹学院创办于2016年12月09日,专注于区块链产品底层研发和职业教育培训,致力于打造国内一流的集线上教育、线下周末班、脱产班、企业内训、区块链产品外包、区块链创新社区(技术/企业招聘) 和 高校区块链专业共建为一体的的综合性区块链商学院。案例字符串可以通过""或者''来表示字符串的值,Solidity中的string字符串不像C语言一样以\0结束,比如我的微信号liyc1215这个字符串的长度就为我们所看见的字母的个数,它的长度为8。prag...…
-
『0011』 - Solidity Types - 地址(Address)
孔壹学院:国内区块链职业教育领先品牌 孔壹学院创办于2016年12月09日,专注于区块链产品底层研发和职业教育培训,致力于打造国内一流的集线上教育、线下周末班、脱产班、企业内训、区块链产品外包、区块链创新社区(技术/企业招聘) 和 高校区块链专业共建为一体的的综合性区块链商学院。以太坊钱包地址位数验证以太坊中的地址的长度为20字节,一字节等于8位,一共160位,所以address其实亦可以用uint160来声明。我的以太坊钱包的地址为0xF055775eBD516e7419ae486...…
-
『0010』 - Solidity Types - 整型(Integer)
来源: 黎跃春区块链博客int/uint:变长的有符号或无符号整型。变量支持的步长以8递增,支持从uint8到uint256,以及int8到int256。需要注意的是,uint和int默认代表的是uint256和int256。什么是有符号整型,什么是无符号整型无符号整型(uint)是计算机编程中的一种数值资料型别。有符号整型(int)可以表示任何规定范围内的整数,无符号整型只能表示非负数(0及正数)。有符号整型能够表示负数的代价是其能够存储正数的范围的缩小,因为其约一半的数值范围要用来...…
-
『0009』 - Solidity Types - 布尔(Booleans)
来源: 黎跃春区块链博客布尔(Booleans)bool: 可能的取值为常量值true和false。支持的运算符: ! 逻辑非 && 逻辑与 || 逻辑或 == 等于 != 不等于 备注:运算符&&和||是短路运算符,如f(x)||g(y),当f(x)为真时,则不会继续执行g(y)在f(x)&&g(y)表达式中,当f(x)为false时,则不会执行g(y)。bool a ...…
-
『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidity智能合约继承、重写
来源: 黎跃春区块链博客在上一小节中我们在函数参数中使用storage这个关键字时,当前的函数必须是internal或者private类型。在本小节中,我(微信:liyc1215)将重点为大家介绍属性和函数的使用权限。状态变量、函数的权限一、public备注:为了演示方便,我直接通过https://remix.ethereum.org/来进行演示。public类型的状态变量和函数的权限最大,可供外部、子合约、合约内部访问。pragma solidity ^0.4.4;contract ...…
-
『0007』- Solidity状态变量、局部变量与memory 、storage之间的爱恨情仇
在上一节中,我们了解了Solidity类型中哪些是值类型,哪些是引用类型,以及值类型与引用类型的简单对比。本篇教程中,我们将全面讲解memory,storage在Solidity开发中的作用,以及值类型、引用类型在合约中memory/storage关键字的区别。一段代码清楚认识状态变量、局部变量pragma solidity ^0.4.4;contract Person { int public _age; string public _name; functio...…
-
『0006』- Solidity值类型与引用类型
在前几节中我们初步认识了简单的以太坊智能合约的结构,生命周期以及如何通过Ethereum Wallet进行合约部署。也许对于很多有开发经验的童鞋来说,大家会以为Solidity语法非常简单,其实不然,在我自己写合约的过程中,还是存在很多和其他语言不一样的坑,接下来我们将通过接下来的几篇文章为大家讲解Solidity的相关语法细节以及注意事项。由于Solidity是一个静态类型的语言,所以编译时需明确指定变量的类型(包括本地变量或状态变量),Solidity编程语言提供了一些基本类型(ele...…