主页 > imtoken官网下载2.0安卓钱包 > 如何在以太坊上发布自己的智能合约

如何在以太坊上发布自己的智能合约

我们现在基本知道以太坊是一个区块链应用开发平台。 基于以太坊构建的网络和智能合约语言,我们可以实现各种贴近现实世界的分布式应用程序(DApps)。 很多人痴迷于数字货币的炒作和一些ICO项目的疯狂投资,但实际上,很多项目利用大家对区块链尤其是智能合约不了解的“信息不对称”,来实现让大家乖乖交出了他们的 ETH。

今天通过下面的实战告诉大家,智能合约的开发并没有那么难。 不要相信ICO白皮书中花言巧语的内容。 我们应该在理解某些原则的基础上分析其价值是否真实。 今天我演示如何实现最简单的众筹合约。

1. 智能合约的演变

先铺垫一下,我们来看看智能合约是如何从比特币进化到以太坊的。 注意下方智能合约的位置,表示上层应用(APP)必须通过智能合约实现对应区块链网络的功能。

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

区块链架构

那么,我们来看一个简单的例子,即A在比特币和以太坊中如何向B转账:

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

比特币脚本语言

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

智能合约(伪代码)

上面的例子可能有些人比较难理解,但大家应该也有一个大概的感受,那就是:以太坊智能合约的实现似乎是通俗易懂,比较通俗易懂。

事实是一样的。 智能合约使区块链更具可扩展性和更易于实施,使以太坊成为目前最大的区块链开发平台。 为了方便理解,我对智能合约的定义是:

智能合约是区块链环境中的可执行代码。

2.搭建以太坊私有链(Private-Net)

为了在以太坊上发布智能合约,必须安装以太坊 Mist 钱包。 注意不能是imToken、Myehterwallet等轻钱包。 Mist钱包不仅包含了钱包的所有功能在以太坊上的应用,还包含了智能合约部署功能,目前是其他钱包不支持的。

另外,这里有一些背景需要解释:

区块链分为公有链、联盟链和私有链三种类型。 比特币和以太坊是目前最大的公链,联盟链更多被企业使用,以IBM hyperledger fabric为代表,私有链是为内部或个人需求构建的网络。

默认情况下,启动Mist钱包会同步所有以太坊区块信息,即公链连接,这会耗时非常长,占用硬盘空间大,所以除非你真的需要发布智能合约,尽量避免公链。 本次演示是在私有链中进行的,下面是基本的配置方法:

1、安装以太坊钱包(即Mist钱包);

2、安装Geth(以太坊挖矿程序);

3.创建私有链:

参考

私链搭建成功后,每次先启动geth,使用命令"geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir "D:\Program Files\Geth\geth\chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 95518 console",然后打开以太坊钱包程序,这样连接的就是私链,可以看到“Private-Net”的话。

3.开发自己最简单的“众筹”合约

假设我是个骗子,我写了一个漂亮的白皮书,然后我需要开发一个众筹的智能合约,让大家把ETH放到这个智能合约上,当众筹时间到了,不管资金是否募足,我会把资金转入你自己的账户。

现在有一个基本的前提逻辑可以理解:

当发送 ETH 到以太坊智能合约时,ETH 被智能合约锁定。

所以在开发合约的时候,一方面要支持大家发币,另一方面要支持从这个合约中提取锁定的ETH。

打开钱包,进入Private-Net,点击界面“Contracts”,选择“Deploy New Contract”(部署一个新的智能合约):

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

部署合约接口

点击后可以进入合约编辑界面在以太坊上的应用,可以通过“SOLIDITY CONTRACT SOUCE CODE”找到。 关键时刻,我的骗人契约怎么可能实现?

合同 NBICO {

向公共组织者致辞;

event FundTransfer(address backer, uint amount, bool isContribution);

函数 NBICO() {

组织者 = 消息。 发件人;

}

函数销毁(){

if(msg.sender == organizer) {

自杀(组织者);

}

}

}

上面的代码已经通过实际运行成功了,你不妨按事实来。 看看下面的截图:

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

合同概览

如上图所示,上面有三份合约。 BIGONE 是合约收到转账后锁定 100 ETH 的情况。 SMALL ONE是我调用合约中的“destory”方法实现“自杀”的情况,即合约失效。 ,资金转入合约创建者的账户,所以是灰色的,余额为0。

对上述代码的解释如下:

1)定义一个名为“Nubi ICO”的合约:NBICO

2)定义组织者地址(organizer)和转账方式(FundTransfer)

3)在初始方法(NBICO)中设置组织者的地址;

4)在销毁方法(destory)中,判断当前操作是否由组织者发起,如果是则执行“自杀”。 自杀后,智能合约不可用,所有锁定在智能合约上的资金都转移到组织者名下。

四。 后记

上面代码的具体含义你可能不理解,也可能实际操作起来比较困难,但是通过这样的演示,你应该明白了:

几行代码,就可以实现一个简单的“众筹”,如果你相信我在白皮书中说的话。 其实最简单的众筹就是:直接转钱给我,如果没有白皮书,就看你信不信我这个人了。

因此,ICO的可信度可以描述如下:

1)白皮书具有一定的可信度,主要目的是为了信息透明,以后做这个可以看看,但是不能完全相信白皮书;

2)团队的可信度更高。 说白了,投资ICO更多的是看团队,有的项目看某个人是可能的;

3)众筹智能合约的代码可信度最高,因为通过阅读代码,我们可以知道发起人是否可以随意提取代码。 比如上面的智能合约,懂行的人一眼就知道出了问题。

因此,众筹智能合约必须开源! ! !

好了,以上就是昨天课程的基本内容了。 如果你对我的课程感兴趣,甚至是我的整个系列,你都可以点进来看看。 我相信你会不虚此行。

》》》》点此进入。

以太坊智能合约应用_以太坊现实应用_在以太坊上的应用

扫入