美文网首页
智能合约开发第三课 搭建一个运行的环境

智能合约开发第三课 搭建一个运行的环境

作者: 树哥区块链 | 来源:发表于2019-04-13 23:09 被阅读0次

智能合约就是在区块链上运行的程序吗,那么首先的问题就是:

如何把智能合约放在区块链上

本质上讲,智能合约就是一段代码,这段代码需要在区块链执行至少需要以下三个步骤

  • 编写好一段代码
  • 把它发送的区块链上
  • 打包放入到一个区块中

我们逐个步骤来描述:

编写好一段代码

我们编写的这个代码就叫做智能合约,这个智能合约需要被区块链上的虚拟机上来执行,

我之前说过,虚拟机的出现,是为了产生一个沙箱环境,让我们的智能合约执行环境和外界环境完全隔离,避免由于不同的操作系统、不同的运行环境而导致执行结果的不同。

既然程序需要虚拟机来执行,所以智能合约就必须要符合虚拟机来进行编
译,就需要符合虚拟机的要求。

不同的虚拟机要求的编译语言不同,例如以太坊的虚拟机要求的官方变易语言是solidity, 是以太坊专门定义的一种为以太坊开发智能合约的语言。

而在维基链中,虚拟机指定的官方语言叫做Lua。

LUA是一种用C语言编写的脚本语言,几乎可以在所有的平台中使用,并且有着短小精悍的特点。

其实Lua语言并没有强大的功能库,不适合作为开发独立应用程序的语言,而更加适合做嵌入式程序应用,为一些应用程序提供便利的扩展功能,可以进行灵活的功能定制。

我个人觉得,它的短小精悍的特点可能是维基链选择它的原因之一,因为区块链中的空间是极其宝贵,相当于传统的中心化服务模式也成本高昂,因为是需要同时所有节点中的区块都同时提供空间。在这样的情况下,短小精悍,就成了非常重要的一个优点了。

例如python的源码有54万行,而lua5.3的源码只有2.4万行,是python代码的22分之一。是目前所有使用变成语言最为短小精悍的代码了。

Lua软件的安装

如果想在电脑上进行lua的编程,就需要按照lua,这样才能对我们编写的代码进行编程。

lua可以安装在linux、mac、windows上,安装过程也比较简单。有如下几条命令(linux下)

curl -R -O “http://www.lua.org/ftp/lua-5.3.0.tar.gz”  --从固定网址下载lua软件
tar zxf lua-5.3.0.tar.gz --把下载的文件进行解压
cd lua-5.3.0  --进入lua5.3.0文件夹,并安装
make linux test 
make install 

如果,我们使用lua编写好了一段代码,那么下面需要做的事情就是:

把智能合约发布到区块链上

把智能合约发布到区块链上!

这虽然是简简单单的一句话,但却包含着诸多的内容。例如:

  • 如何连接区块链之中?
  • 凭什么区块链会接受我们的智能合约?
  • 谁帮我们把智能合约放在区块之中?

上面的三个问题是比较核心关键的问题,我们还是逐个问题进行剖析:

1.如何连接的区块上

这点其实比较容易理解,你让区块链执行程序,你总得和它有连接才可以吧?

连接到区块链的方法很简单:

成为区块链的一个节点。

成为区块链的一个节点,自然就可以在上面发布智能合约了,因为节点就是区块链中的一员。

如何成为区块链的节点呢?每个区块链要求不同,具体到我们讲的维基链之中呢?

需要一些条件:

系统软件需求:
原生部署:support Linux-like 64bit systems, such as Ubuntu 14.x/Ubuntu 16.x/Ubuntu 18.x/Cent OS 7.x only.
Docker部署:任意主流Linux版本

硬件需求
CPU: >= 1 Core
RAM: >= 2GB
硬盘: >= 100G (目前同步所有区块后需要约5GB硬盘空间,从长远考虑建议准备100G硬盘空间)
出口带宽: >= 1Mbps
入口带宽:>= 1 Mbps

通过上文中,我们可以看到可以有原生部署和docker部署的方式。

这里我们建议使用docker部署的方式。

什么是docker呢?

docker是一种容器,可以让开发者方便的打包应用,来发布在依赖于linux机器上。这种容器采用沙箱机制,对外完全隔离,且开销极低。
(略)

相关文章

网友评论

      本文标题:智能合约开发第三课 搭建一个运行的环境

      本文链接:https://www.haomeiwen.com/subject/prydwqtx.html