智能合约开发

智能合约开发以太坊DApp应用程序示例

你离开我真会死。 提交于 2021-02-11 06:17:35
智能合约开发是以太坊开发的核心,学习编写智能合约主要是搭建以太坊开发环境和solidity开发智能合约。不使用任何以太坊Dapp框架,直接使用solidity在ganache下开发智能合约。 让我们构建一个简单的"Hello World!" 应用程序, 这是一个投票应用程序。 该应用程序非常简单,它所做的只是初始化一组候选人,让任何人投票给候选人,并显示每个候选人收到的总票数。 我有意避免使用任何DAPP框架构建这个应用程序,因为框架抽象掉很多细节,你不了解系统的内部。此外,当你使用框架时,将对框架所做的繁重工作有更多的体会! 我们的目标是: 建立开发环境。 学习编写智能合约 1. 设置开发环境 我们使用一个模拟的内存区块链(ganache)代替真实的区块链在进行开发。在本教程的2章,我们将与真实的区块链交互。下面是安装ganache、web3js的步骤,然后在linux上启动一个测试链。在macOS上安装过程也是一样的。 你可以看到ganache-cli自动创建了10个测试账号,每个账号预分配了100(虚构的)ethers 如果需要更详细的开发环境安装教程,可以参考如下文章: windows以太坊开发环境搭建 linux/ubuntu以太坊开发环境搭建 2.简单的投票合约 我们将使用solidity编程语言来编写我们的合约。如果您熟悉面向对象编程

智能合约开发之众筹合约

假装没事ソ 提交于 2020-10-28 08:21:21
实现一个好的idea需要付出巨大努力,并需要大量资金。可以寻求用户捐赠,或投资机构投资,但往往很难。 区块链提供了一种众筹的新形式——众筹 智能合约开发 。募资人通过众筹合约设定好众筹目标,以及完成时间,设定不同众筹结果所对应的操作(例如目标失败退回全款、目标成功时受益人获得加密代币或ETH)。由于区块链不可篡改的特性,开发众筹智能合约会是一个非常吻合的应用场景。在本文中,我们将使用以太坊solidity来实现一个用于众筹的 智能合约开发 ,并给出最终实现的solidity全部代码。 代币和分布自治组织 这个例子中我们将通过解决两个重要的问题进行更好的众筹: 如何管理资金,保证流动性; 筹集资金后如何花钱。 区块链出现之前的众筹项目一般缺少流动性,投资人一旦错过众筹截止时间将无法参与众筹;一旦参与众筹,投资人也不能中途退出。智能合约通过发行代币的形式来记录投资额,并提供了类似股票市场的流动性。投资人可以选择交易或者继续持有。项目成功后投资者可以使用代币交换实物或者产品服务。项目失败的话投资者可以按照原先的约定退出,并且继续持有代币以表纪念。 同样,当前众筹项目也存在资金去向不明的问题。在这个项目中,我们使用DAO(分布式自治组织)记录每一笔资金去向。 智能合约开发代码 先放上代码,然后再一步步解读。 pragma solidity ^ 0.4 .16 ; interface

用solidity语言开发代币智能合约

南楼画角 提交于 2020-02-28 15:22:29
智能合约开发是以太坊编程的核心之一,而代币是区块链应用的关键环节,下面我们来用solidity语言开发一个代币合约的实例,希望对大家有帮助。 以太坊的应用被称为去中心化应用(DApp),DApp的开发主要包括两大部分: 智能合约的开发 用户界面的开发 在本文中,我们将介绍智能合约的开发语言solidity。 让我们先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节。 contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint retVal) { return storedData; } } 在Solidity中,一个合约由一组代码(合约的函数)和数据(合约的状态)组成。合约位于以太坊区块链上的一个特殊地址。 uint storedData ; 这行代码声明了一个状态变量,变量名为storedData,类型为 uint (256bits无符号整数)。你可以认为它就像数据库里面的一个存储单元,跟管理数据库一样,可以通过调用函数查询和修改它。在以太坊中,通常只有合约的拥有者才能这样做。在这个例子中,函数 set 和 get 分别用于修改和查询变量的值。 跟很多其他语言一样