
区块链技术&智能合约Solidity 学习笔记
通过对智能合约Solidity的学习,以及对比特币BIP标准等的学习,达到了解区块链相关技术的目的。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
小雨青年
2025年和我一起做属于自己的独立开发项目!CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。
展开
-
【区块链】DAICO ,更好的ICO
什么是DAO “分布式自治组织”(Distributed Autonomous Organization)的缩写,这是一种基于区块链的组织结构形式。 从某种角度来看,DAO就像一个全自动的机器人,当它全部的程序设定完成后,它就会按照既定的规则开始运作。值得一提的是,在运作的过程中,它还可以根据实际情况不断的自我维护和升级,通过不断的自我完善来适合它周围的环境。事实上,DAO的形态...原创 2018-02-27 14:14:25 · 1964 阅读 · 0 评论 -
【智能合约】客户端和web端对智能合约的事件Event进行调用的代码示例
客户端和web端对智能合约的事件Event进行调用的代码示例web truffle按官网的例子 http://truffleframework.com/boxes/pet-shoptruffle作为一个运行测试框架,用的也是web3对智能合约进行调用。文件所在的位置src/js/app.js initWeb3: function() { // web3入口 if (type原创 2017-11-07 09:24:15 · 7319 阅读 · 0 评论 -
【区块链】Truffle 部署 编译 测试 智能合约 的 完整实践操作
Truffle 部署 编译 测试 智能合约 的 完整实践操作目标搭建开发环境创建一个Truffle项目编写智能合约编译转移智能合约测试智能合约创建用户界面连接智能合约在浏览器中访问Dapp搭建开发环境Node.js v6+ LTS and npm (comes with Node)Git这里配置脚本略过。。。。xiaoyu@LIXIAOYUdeMacBook-Pro.com➤原创 2017-10-27 10:05:20 · 13796 阅读 · 10 评论 -
【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境
ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境前言为了保证环境稳定,我从头开了一个虚拟机。环境如下xiaoyu@xiaoyu-Parallels-Virtual-Platform:~$ uname -aLinux xiaoyu-Parallels-Virtual-Platform 4.10.0-28-generic #32~16.原创 2017-10-24 14:51:08 · 5106 阅读 · 0 评论 -
【以太坊】什么是雷电网络 Raiden network
什么是雷电网络Raiden网络是一种脱机扩展解决方案,可实现近即时,低费用和可扩展的支付。 它与Ethereum块链互补,并与任何ERC20兼容的令牌一起使用。 Raiden项目正在进行中。 其目标是研究状态通道技术,定义协议并开发参考实现。特点可扩展的参与者的数量成线性比例快速的传输可以在一秒内进行确认私密的个人转账不会显示在全球分类帐中可互操作的符合Ethereum标准化标记API(ERC20)原创 2017-10-20 10:12:56 · 5838 阅读 · 0 评论 -
【区块链】DOCKER部署量子链私有网络环境以及部署智能合约实践
DOCKER部署量子链私有网络环境以及部署智能合约实践安装环境安装Dockerhttps://store.docker.com/editions/community/docker-ce-desktop-mac这里安装的是CE的稳定版xiaoyu@LIXIAOYUdeMacBook-Pro.com➤ docker versionClient: Version: 17.09.0-ce A原创 2017-10-16 16:33:51 · 7210 阅读 · 3 评论 -
【区块链】量子链命令行qtum-cli全命令详解
量子链命令行qtum-cli全命令详解== Blockchain ==callcontract “address” “data” ( address )调用智能合约getaccountinfo “address”获取账户信息getbestblockhash获取最长链的hashgetblock “blockhash” ( verbose )获取块的信息getblockchaininfo获取区块的信息{原创 2017-10-11 09:53:28 · 18008 阅读 · 1 评论 -
【QTUM】MacOS部署量子链环境
什么是量子链量子链是一个基于比特币核心和集成Ethereum的智能合约的新的区块链。他实现了一种可扩展的设计,能添加更多的虚拟机,允许账户的虚拟机在UTXO的区块链上执行。安装需要有OS X的命令行工具xcode-select --install需要环境安装Homebrew.安装依赖brew install cmake automake berkeley-db4 libtool boost --c+原创 2017-09-27 11:05:20 · 4146 阅读 · 0 评论 -
【Ethereum】以太坊ERC20与ERC233的区别
什么是ERC223ERC223是继ERC20后推出的新标准,解决了ERC20中的一些问题相关说明ERC223开发的主要目标1.合约中意外丢失token: 有两种不同的方式来转移ERC20 token: 1) 合约地址 2) 钱包地址 ,你需要调用transfer发送给钱包地址 或者 调用approve在token合约然后调用transferFrom在接收的合约来发送到合约。意外地,对合同地址调用原创 2017-09-26 11:16:45 · 18381 阅读 · 0 评论 -
【Ethereum】ERC20 Token标准完整说明
什么是ERC20 token市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议。概述token代表数字资产,具有价值,但是并不是都符合特定的规范。基于ERC20的货币更容易互换,并且能够在Dapps上相同的工作。新的标准可以让token更兼容,允许其他功能,包括投票标记化。操作更像一个投票操作Token的持有人可以完全控制资产,遵守ERC20的toke原创 2017-09-25 10:26:25 · 78859 阅读 · 9 评论 -
【以太坊】本地搭建Ethereum私有网络
环境xiaoyu@xiaoyu-VirtualBox:~$ uname -a Linux xiaoyu-VirtualBox 4.10.0-19-generic #21-Ubuntu SMP Thu Apr 6 17:04:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux安装访问官方网站https://www.ethereum.org/ 找到Get our c原创 2017-09-22 10:29:56 · 8335 阅读 · 0 评论 -
【Solidity】Solidity概述
Solidity是一种面向合同的高级语言,其语法类似于JavaScript,它旨在将目标设定为Ethereum Virtual Machine(EVM)。Solidity是静态类型的,支持继承,库和复杂的用户定义类型等功能。正如你所看到的,它可以创建投票,群众集资,盲目拍卖,多重签名钱包和更多的合同。现在试用Solidity的最好方法是使用Remix(加载需要一些时间,请耐心等待)。有用的链接Eth原创 2017-09-21 10:27:43 · 3167 阅读 · 0 评论 -
【Solidity】使用编译器
使用编译器使用命令行编译器Solidity库的构建目标之一是solc,即solidity命令行编译器。 使用solc --help可以为您提供所有选项的解释。 编译器可以生成各种输出,从简单的二进制文件和通过抽象语法树(解析树)的汇编到气体使用的估计。 如果你只想编译一个文件,你可以运行它作为solc -bin sourceFile.sol,它将打印二进制文件。 在部署合同之前,请先使用solc -原创 2017-09-20 10:34:46 · 4057 阅读 · 0 评论 -
【Solidity】注意事项
安全注意事项虽然通常很容易构建按预期工作的软件,但是更难检查没有人可以以预期的方式使用它。在Solidity中,这更重要,因为您可以使用智能合同来处理令牌,或者甚至更有价值的东西。 此外,每次执行智能合同都会在公共场合发生,除此之外,源代码通常是可用的。当然,你总是必须考虑到多少问题:您可以将智能合同与对公众开放的网络服务进行比较(因此也可以与恶意角色进行比较),甚至可以开源。 如果您仅将该杂货清单原创 2017-09-19 09:44:14 · 3352 阅读 · 0 评论 -
【Solidity】8. 杂项 - 深入理解Solidity
索引【Solidity】1.一个Solidity源文件的布局【Solidity】2.合约的结构体 【Solidity】3.类型 【Solidity】4.单位和全局可变量 【Solidity】5.表达式和控制结构 【Solidity】6. 合约 【Solidity】7. 部件 【Solidity】8. 杂项 杂项存储中状态变量的布局静态大小变量(除映射和动态大小的数组类型的所有内原创 2017-09-18 10:14:05 · 5713 阅读 · 0 评论 -
【Solidity】7. 部件 - 深入理解Solidity
Solidity 部件Solidity定义了一种也可以在没有Solidity的情况下使用的汇编语言。 此汇编语言也可以用作Solidity源代码中的“内联汇编”。 我们从描述如何使用内联汇编以及它与独立程序集的区别开始,然后指定程序集本身。TODO:编写内联汇编的范围规则有点不一样,例如使用库的内部函数时出现的复杂情况。 此外,请编写由编译器定义的符号。内联汇编为了更精细的控制,特别是为了通过编写库原创 2017-09-15 11:03:15 · 15721 阅读 · 0 评论 -
【Solidity】6. 合约 - 深入理解Solidity
合约Solidity的合约类似于面向对象语言的类。 它们包含可以修改这些变量的状态变量和函数中的持久性数据。 在不同的合同(实例)上调用函数将执行EVM函数调用,从而切换上下文以使状态变量无法访问。创建合约合同可以从“外部”或“固定”合同中创建。 当创建合同时,其构造函数(与合同名称相同的函数)将被执行一次。构造函数是可选的。 只允许一个构造函数,这意味着不支持重载。从web3.js,即JavaSc原创 2017-09-14 15:42:01 · 9773 阅读 · 0 评论 -
【Solidity】5.表达式和控制结构 - 深入理解Solidity
表达式和控制结构输入参数和输出参数与Javascript一样,函数可以将参数作为输入; 与Javascript和C不同,它们也可以返回任意数量的参数作为输出。输入参数输入参数的声明方式与变量相同。 作为例外,未使用的参数可以省略变量名称。 例如,假设我们希望我们的合约接受一种具有两个整数的外部调用,我们会写下如下:pragma solidity ^0.4.0;contract Simple {原创 2017-09-13 12:54:11 · 8050 阅读 · 0 评论 -
【Solidity】4.单位和全局可变量 - 深入理解Solidity
单位和全局可变量Ether单元一个字面上的数字可以带有wei,finney,szabo或者以太网的后缀,可以在以太网的子目录之间进行转换,其中没有后缀的以太网货币号被假定为魏。 2 ether == 2000 finney评估为true。时间单位可以使用文字数字后的秒,分,小时,天,周和年份进行后缀转换,其中以秒为单位,以下列方式将单位视为天真的时间单位:1 == 1 seconds1 minu原创 2017-09-12 10:42:55 · 8267 阅读 · 0 评论 -
【Solidity】3.类型 - 深入理解Solidity
类型Solidity是一种静态类型的语言,这意味着每个变量(州和地方)的类型需要被指定的(或至少已知的 - 见下文型扣)在编译时。 Solidity提供了几种可以组合形成复杂类型的基本类型。另外,类型可以在含有运算符的表达式与彼此交互。 对于操作的快速参考,请参阅运算符的优先顺序。值类型以下类型也称为值类型,因为这些类型的变量将始终按值传递,即当它们用作函数参数或分配时,它们始终被复制。布尔bool原创 2017-09-11 10:52:19 · 8500 阅读 · 0 评论 -
【Solidity】2.合约的结构体 - 深入理解Solidity
2 合约的结构体Solidity的合约类似于面向对象语言的类。 每个合同都可以包含State Variables, Functions, Function Modifiers, Events, Structs Types 和 Enum Types的声明。 此外,合约可以继承其他合约。状态变量状态变量是永久存储在合约存储中的值。pragma solidity ^0.4.0;contract Simpl原创 2017-09-08 10:54:40 · 4957 阅读 · 0 评论 -
【Solidity】1.一个Solidity源文件的布局 - 深入理解Solidity
一个Solidity源文件的布局源文件可以包含任意数量的合约定义,include指令和pragma伪指令。Pragma 版本源文件可以(并且应该)使用所谓的版本编译指示进行注释,以拒绝随后可能引入不兼容更改的编译器版本进行编译。 我们尝试将这些更改保持在绝对最小值,尤其是在语义变化也需要更改语法的情况下引入更改,但这并不总是可能的。 因此,至少对于包含突破性更改的版本,读取更改日志总是一个好主意,这原创 2017-09-07 10:12:51 · 14720 阅读 · 0 评论 -
【Solidity】Solidity by Example
投票以下合同相当复杂,但展示了很多Solidity的功能。 实行投票合同。 当然,电子投票的主要问题是如何将投票权分配给正确的人,以及如何防止操纵。 我们不会在这里解决所有问题,但至少我们将会展示如何进行委托投票,以便计票同时自动完全透明。这个想法是每次投票创建一个合同,为每个选项提供一个简短的名称。 然后担任主席的合同的创建者将有权单独投票给每个地址。地址后面的人可以选择投票自己或将他们的投票委托原创 2017-09-06 11:01:26 · 2697 阅读 · 2 评论 -
【Solidity】本地安装Solidity并运行开发环境
本地环境xiaoyu@LIXIAOYUdeMBP.com➤ npm -v5.3.0❖ ~ [17:45:03]xiaoyu@LIXIAOYUdeMBP.com➤ node -vv8.4.0安装我们选择最简单的npm安装的方式,在这里加上-g进行全局安装。xiaoyu@LIXIAOYUdeMBP.com➤ npm install -g solcnpm ERR! code EINTEGRI原创 2017-09-05 10:33:37 · 9669 阅读 · 1 评论 -
【IPFS】IPFS部署分布式项目到应用服务器的实践
前言上一篇文章主要做了本地开发机的环境安装和demo运行,算是对IPFS有了一些认识,具体查看http://blog.csdn.net/diandianxiyu_geek/article/details/77171820,这次部署在对外网开放的服务器上,解决遇到的小问题和体会分布式部署到节点。服务器环境//查看nginx版本[root@xxxxxxxxxxxx ~]# nginx -vngin原创 2017-08-16 09:17:21 · 3851 阅读 · 0 评论 -
【IPFS】IPFS部署分布式项目到开发机的基础实践
什么是IPFS IPFS 是一个点对点的分布式文件系统,它希望将所有的计算设备都连接到同一个文件系统中。IPFS能做到去中心化的分布式部署 IPFS旨在替代HTTP和为我们所有人建立更好的网络。安装以下地址进行下载 https://dist.ipfs.io/go-ipfs/v0.4.10/go-ipfs_v0.4.10_darwin-amd64.tar.gz wget https:原创 2017-08-14 23:37:42 · 11594 阅读 · 4 评论