简介:区块链技术由来已久。2008年,神秘的日裔美国人中本聪天才设计出来的电子货币系统:比特币,为人类打开了区块链的大门。2009年,他发布了首个比特币软件,并正式启动了比特币金融系统。依靠POW算法的比特币随着人们认知,2016年以后区块链也为人们所追捧。而以太坊的快速发展,区块链已经进化出智能合约、DApp等新的技术,区块链2.0、3.0时代也正在来临。本文将详细介绍智能合约是什么。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。这套理论由中本聪在2008年提出,并在2009年发布了首...

  r5u89Y2tdVrY   2023年11月13日   32   0   0 区块链智能合约

简介:本文将介绍Solidity语言的调用数据的布局和ABI详解。其中调用数据的布局将主要介绍以太坊合约间调用时的消息格式ABI。 好久时间没有更新文章,前文中我们介绍了Solidity的特性与内部机制,本文我们将Solidity的调用数据的布局和ABI详解。 调用数据的布局(LayoutofCallData) 当Solidity合约被部署后,从某个帐户调用这个合约,需要输入的数据是需要符合theABIspecification,ABI是以太坊的一种合约间调用时的一个消息格式。类似Webservice里的SOAP协议一样;也就是定义操作函数签名,参数编码,返回结果编码等。 ABI详解函数基本设...

  r5u89Y2tdVrY   2023年11月13日   53   0   0 区块链智能合约

简介:在前面我们已经讲过Solidity语言的一些语法内容,在矩阵元JUICE开放平台的JIDE开发时,一定要注意LayoutinMemory和LayoutofStateVariablesinStorage,即内存变量的布局和状态变量的存储模型。内存变量的布局(LayoutinMemory) Solidity预留了3个32字节大小的槽位: 0-64:哈希方法的暂存空间(scratchspace) 64-96:当前已分配内存大小(也称空闲内存指针(freememorypointer))暂存空间可在语句之间使用(如在内联编译时使用)Solidity总是在空闲内存指针所在位置创建一个新对象,且对应...

  r5u89Y2tdVrY   2023年11月13日   47   0   0 Solidity布局变量内存

简介:上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用。实际上,它是被计划用来作为编译器的一种中间语言。本文我们将介绍开发智能合约过程中Solidity语言的开发规范和开发流程。 Solidity作为编译器的一种中间语言。在开发智能合约时需要遵守相应的开发规范和开发流程。 开发规范命名规范目录和文件 目录使用小写,请勿使用特殊符号; 库文件和合约文件统一以.sol为后缀; 合约文件名保持与合约名一致; 文件名采用驼峰命名(首字母大写); 合约、库文件命名 合约名采用驼峰命名(首字符大写),例如:UserManager、ActionManager; 方法的命名使用驼峰法(首字...

简介:上一节,我们讲过在JUICE平台开发智能合约的开发规范,本节我们将继续就Solidity定义的汇编语言进行更加深入的讨论。Solidity定义的汇编语言可以达到下述的目标:1.使用它编写的代码要可读,即使代码是从Solidity编译得到的。2.从汇编语言转为字节码应该尽可能的少坑。3.控制流应该容易检测来帮助进行形式验证与优化。为了达到第一条和最后一条的目标,Solidity汇编语言提供了高层级的组件比如,for循环,switch语句和函数调用。这样的话,可以不直接使用SWAP,DUP,JUMP,JUMPI语句,因为前两个有混淆的数据流,后两个有混淆的控制流。此外,函数形式的语句如mul...

  r5u89Y2tdVrY   2023年11月13日   30   0   0 Solidity智能合约

简介:上一节,我们讲过Solidity汇编语言,这个汇编语言,可以不同Solidity一起使用。这个汇编语言还可以嵌入到Solidity源码中,以内联汇编的方式使用。下面我们将从内联汇编如何使用着手,介绍其与独立使用的汇编语言的不同,最后再介绍这门汇编语言。SolidityAssembly内联汇编通常我们通过库代码,来增强语言我,实现一些精细化的控制,Solidity为我们提供了一种接近于EVM底层的语言,内联汇编,允许与Solidity结合使用。由于EVM是栈式的,所以有时定位栈比较麻烦,Solidty的内联汇编为我们提供了下述的特性,来解决手写底层代码带来的各种问题: 允许函数风格的操作...

  r5u89Y2tdVrY   2023年11月13日   34   0   0 Solidity智能合约Assembly

简介:前几篇文章我们一直在讨论Solidity语言的相关语法,从本文开始,我们将介绍智能合约开发。今天我们将介绍一个完整范例。此章节将介绍一个完整案例来帮助开发者快速了解合约的开发规范及流程。注意:在进行案例编写前,请先前往JUICE开放服务平台,完成用户注册,JUICE区块链账户创建;并下载、安装、配置好JUICE客户端。场景描述在案例实践前请确保已拥有可用的JUICE区块链平台环境!!!现假设一个场景,编写一个顾客管理合约。主要实现以下功能: 提供增加顾客信息功能,手机号作为唯一KEY; 提供根据手机号删除顾客信息的功能; 提供输出所有顾客信息的功能; 接口定义说明:此接口定义了顾客管...

  r5u89Y2tdVrY   2023年11月13日   32   0   0 完整案例智能合约

简介:上一章中我们聊到了智能合约的应用场景,在了解区块链技术目前的发展情况、智能合约的概念以及其应用场景之后,我们将在后续的文章中共同学习智能合约的编成语言。今天,我们就来简单地谈一谈用于编写智能合约的语言——Solidity语言。 那么,什么是Solidity语言呢?在前面的文章中我们反复提到过以太坊,以太坊做区块链2.0的典型代表,Solidity在以太坊中是撰写智能合约最受欢迎的语言,因此今天我们就和大家介绍一下这个作为智能合约开发中最主流的语言。 Solidity是运行于Ethereum虚拟机(EVM)上的一种智能合约高级语言。它的语法与Javascript相似,是一种面向对象的语言。...

  r5u89Y2tdVrY   2023年11月02日   60   0   0 区块链智能合约

上一章我们已经简单介绍了Solidity语言的基本概念及特点,在了解Solidity的基础知识及用法后,我们可以尝试在Remix、JIDE等编译器上尝试编写一些简单的智能合约,以此来更好地熟悉开发智能合约所需的环境及基础。那么今天,我们将在这里更详细地讲解一些Solidity语言的语法。首先来讲解一下Solidity语言中的源文件映射。它作为AST输出的一部分,各个编译器会提供AST中节点对应的源代码范围。可用于检测AST静态代码,分析错误,也可用于高亮本地变量以及对应的调试工具。编译器也能生成从字节码到指令源代码之间的范围映射,这在静态分析工具中占据着重要地位,在字节码级别中的分析,可在调试...

  r5u89Y2tdVrY   2023年11月02日   62   0   0 区块链智能合约

简介:上一节,我们介绍了智能合约的开发范例,本节我们将详解智能合约开发中常用的Lib工具库。由于内容较长,工具库我们将分两部分介绍,本文将介绍LibInt和LibString。 常用库简介 在合约开发规范中,我们看到contracts目录下有个子目录utillib,此子目录下,是JUICE开放服务平台提供的一些常用工具库。这些工具库提供的方法,和具体的业务没有关系。它的作用,和JAVA中的各种util工具类似。常用的有:1.LibInt封装对整数的操作(支持直接调用、using调用)2.LibString封装对字符串的操作(支持直接调用、using调用)3.LibJson封装对JSON格式...

  r5u89Y2tdVrY   2023年11月02日   76   0   0 Lib工具库智能合约LibIntLibString

简介:上一节,我们介绍智能合约开发中常用的Lib工具库的第一部分。由于内容较长,工具库我们将分两部分介绍,本文将介绍Lib工具库的第二部分:LibJson、LibStack和LibLog。LibJsonLibJson主要封装了对JSON格式的字符串一些操作;支持直接调用、usingfor;调用注意:正如在Lib工具库说明中提到的,LibJson库的使用稍微有点特殊:不管是直接调用,还是usingfor;方式调用,在合约方法中,如果要使用一次、或者多次LibJson库中的方法,则在第一次使用LibJsos库方法前,需要对被操作的json字符串进行如下操作: //字符串入栈 LibJson.pus...

  r5u89Y2tdVrY   2023年11月02日   46   0   0 Lib工具库智能合约LibJson

简介:前面两节,我们介绍了JIDE的工具库,本节我们将介绍智能合约开发最后一段内容,JIDE集成开发工具。除了JIDE的安装,我们还将介绍智能合约的编写、编译、部署、运行以及查看日志等。您看过所有的内容之后,将可以完整的开发出一个智能合约。JIDE简介JIDE是JUICE开放服务平台提供用来编写智能合约及DApp的免费开发工具,JIDE集成了JUICE底层测试链、编辑器和Solidity运行时环境,用户无需搭建任何环境就可以快速地编写、编译、部署、运行智能合约与发布DApp。目前JIDE支持Solidity语言编写智能合约,这是以太坊的官方推荐语言,也是最流行的智能合约编写语言。运行环境及安装...

  r5u89Y2tdVrY   2023年11月02日   46   0   0 JIDE智能合约集成开发工具
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~