主页 > 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)众筹智能合约的代码可信度最高,因为通过阅读代码,我们可以知道发起人是否可以随意提取代码。 比如上面的智能合约,懂行的人一眼就知道出了问题。
因此,众筹智能合约必须开源! ! !
好了,以上就是昨天课程的基本内容了。 如果你对我的课程感兴趣,甚至是我的整个系列,你都可以点进来看看。 我相信你会不虚此行。
》》》》点此进入。
扫入