虚拟币钱包开发

新闻资讯

产品分类

热门产品

区块链公司和企业业务来实现
区块链公司和企业业务来实现
Brian Halligan 和 Dharmesh Shah在麻省理工学院学习时都决定进入商业领域,做决定的那

智能合约初探
智能合约初探
区块链技术发展到现在,一般认为经历了三个阶段,即以比特币为代表的第一阶段,以太坊为代

掌握钱包私钥掌握一切吗?
掌握钱包私钥掌握一切吗?
一般而言,如果一笔区块链交易的交易费设置的很低,它是不会被网络纳入的,但在某些情况下,零

杭州软件开发公司
杭州软件开发公司
杭州区块链软件开发公司哪里比较靠谱,区块链软件开发钱包,区块链商城系统开发,区块

GO开发者:如何成为区块链开发者?
GO开发者:如何成为区块链开发者?
可以这样说,2018年是区块链应用元年,区块链相关概念被炒得沸沸扬扬,作为一项新生技术,虽

稳定币之争
稳定币之争
毫无疑问,在加密货币市场有一个占主导地位的稳定币。 从理论上来说,Tether的代币USDT价

河南省首家区块链技术研究院成立
河南省首家区块链技术研究院成立
10 月 30 日消息据凤凰网商业消息,10 月 10 日,河南省未来区块链技术研究院在中国郑州正

软件开发-钱包开发
软件开发-钱包开发
沧州区块链软件开发钱包,区块链商城系统开发,区块链应用技术开发,区块链钱包开发,区块

您的当前位置:首页 > 区块链开发

智能合约初探


时间:2018-12-04 11:00:14  来源:原创  作者:admin  点击次数:


  区块链技术发展到现在,一般认为经历了三个阶段,即以比特币为代表的第一阶段,以太坊为代表的第二阶段和以EOS为发展方向的第三阶段。

一、 智能合约

  从以太坊开始,智能合约开始登上历史舞台,然后各种可执行智能合约的区块链纷纷出现,从最初的以太坊实现了智能合约的功能,到INT中的智能合约有扩展区块链智能合同TX的能力 (称作INT Contract)。进而小蚁的NeoContract从开发的方便易用下手,支持多种语言,如C#,C++等。还有的比如Asch,拆分开不同的合约叫做令牌系统或者仲裁合约。等等,不一而足。

  以太坊的智能合约在区块链中的位置如下图:

  其实也就是说,智能合约已经在区块链中占有了重要的一席之地。

  要很好的理解智能合约,其实是要了解虚拟机的,比如以太坊的EVM,EOS的WASM等。这些类似于JAVA虚拟机(这个不恰当,但容易理解,事实上前者要简单的多)把一些代码运行起来,不管是解释的还是编译的,亦或者二者兼而有之的。

  虚拟机从最初的只执行一些简单的指令到后来的执行二进制数据,逐渐走向成熟。相伴随的,智能合约也就越来越强大,易用。

二、智能合约的例子

  1、比特币的脚本(类智能合约)

  为什么叫类智能合约呢,其实比特币是没有智能合约的,只有脚本,它只是使用一些简单的指令来完成特定的功能,下面是比特币一个脚本的说明:

  2、以太坊智能合约

  以太坊的智能合约就比较接近于流行的编程语言了,而且它也有自己的IDE,browser-solidity,可以轻松的编写和调试智能合约:

contract TestStore {
uint sData;
function setData(uint d) {
sData = d;
}
function getData() constant returns (uint) {
return sData;
}
}

这个合约只是存储并读取一个数据,但是却比比特币的脚本前进了一大步。

  3、EOS智能合约

  首先看一个入门的智能合约hello world.

class hello :public eosio::contract
{
public:using contract::contract;
/// @abi action
void helloworld( account_name user )
{
print( "Hello world, ", name{user} );
}
};
EOSIO_ABI( hello, (helloworld) )

你会发现EOS的智能合约已经完全是和主流的开发语言保持一致了。

三、智能合约的编译

  智能合约的编译在不同的时期有不同的处理方式,相信在以后也还会有更大的进步。

  早期的比特币中只是将脚本按字符串拆分即可,没有什么独特的地方,更谈不上编译步骤。而到了以太坊就出现了独立的编程语言Solidity和编译器,只有使用编译器编译好以后才可以运行在EVM虚拟机中。

  而到了EOS,就更是强大到了使用CLANG+LLVM生成Webassembly字节码格式。这就意味着可以使用非常强大的主流的编译器和通用的编译方法。使得EOS的编译器可以编译出更安全健壮的可执行的智能合约。

四、智能合约的执行

  比特币的脚本执行非常之简单,只不过是调用函数来进行字符串的分析即可,依据不同的标记来解析出相应的指令,再依据相应的指令进行功能的验证和执行,这样最终达到脚本运行的目的。

  以太坊的智能合约的执行,则需要先利用SOLC智能合约编译器将代码编译成EVM字节码,然后将EVM字节码通过Geth的RPC接口发送到以太坊网络,验证执行。

  EOS的智能合约则需要通过JIT将.wast转成.wasm文件,并且辅助一个abi的文件。二者共同将智能合约布署到虚拟机上,由虚拟机执行。


本文来自区块链开发官网 转载请注明

上一篇 下一篇


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
网站首页| 关于沙僧科技| 区块链开发| 产品案例| 新闻中心| 售后服务| 联系我们