简介 上一篇我们介绍了EOS的专用IDE工具EOS Studio,该工具的优势是简单,易上手,但是灵活性低,且对系统资源开销大,依赖多,容易出现功能异常.那么我们开发人员最容易使用的,可能还是深度定制化的IDE,今天我们介绍如果用强大的VSCode来配置一个EOS的开发环境. 准备 最简配置: eosio.cdt VSCode C++插件 豪华配置: eosio.cdt VSCode C++插件 docker docker的eosio.cdt镜像 eosio.cdt源码及Intellisence…
简介 通过上一期的学习,大家应该能写一些简单的功能了,但是在实际生产中的功能需求往往要复杂很多,今天我就继续和大家分享下智能合约中的一些高级用法和功能. 使用docker编译 如果你需要使用不同版本的CDT来编译不同的合约,那么这个方法是目前最有效的,使用虚拟机也是类似的原理,但是却没有docker更便利.如果你要通过安装卸载在不同的CDT版本间切换,你这是最低效且难以维护的方式了. 之前我就介绍过了使用使用EOS Studio上传的docker镜像,我们打开docker官方的Hub页面,然后搜…
简介 本篇我们开始来为后续合约开发做准备了,先来说说EOS内置的系统合约的功能吧,本篇将侧重于合约表数据的查询,这将有利于我们理解EOS的功能,并可以进行必要的数据查询. EOS基础全家桶(七)合约表操作 简介 系统合约介绍 查询合约表 eosio.token eosio abihash userres voters producers refunds 其他表 系统合约介绍 系统合约的代码也是开源的,我们可以在https://github.com/EOSIO/eosio.contracts获得.…
简介 本篇我们会学习最基本的账号相关的操作,包括了创建账号和查询,关于账号资源的操作因为必须先部署系统合约,所以我们会留到后面单独写一篇来讲解. 6-EOS基础全家桶(六)账号管理 简介 账号介绍 账号名介绍 资源介绍 补充说明genesis.json 创建账号 创建系统级账号 创建普通账号 查询账号 查询账号基本信息 查询余额 账号介绍 EOS的设计与以往的其他区块链有很大的不同,传统区块链上使用的账号都是直接使用公钥,而EOS使用了最多13位长的简短账号名,并以此扩展出了账号权限的功能. 账…
简介 区块链上的所有操作都是通过交易(Transaction)上链的,无论你是转账交易还是发起的智能合约的调用,而EOS和传统区块链不同的是EOS在一个交易里可以发起多个行为(Action),这使得EOS的操作可以支持更原子化的事务控制,也同时为上链增加了便捷性和可操作性.而今天我们就要学习下EOS中的交易的结构和交易的操作. EOS基础全家桶(十)交易Action操作 简介 交易结构 发起交易的流程 action打包数据 获取区块信息 签名 广播 发起转账交易 调用合约Action 交易结构…
简介 前面我们已经学习了一些EOS的基础知识了,但是在EOS主网上的很多操作(比如:抵押.赎回.买卖内存)都是需要EOS链被正式激活后才可使用,而激活EOS链还需要很多的准备操作,我打算在单独的一篇文章中介绍,为了大家可以先上手使用EOS主网或者模拟测试,我们今天就先学习下如何使用EOS的jungle测试网. EOS基础全家桶(八)jungle测试网的使用 简介 EOS测试网介绍 创建账号 水龙头领取EOS 启动测试网节点 获取测试网的P2P节点地址 获取测试网的RPC API接口地址 钱包中配…
简介 本篇我们将会学习EOS自带的命令行钱包的使用方法,我们将会使用cleos来控制keosd服务对本地钱包进行管理. 虽然现在市面上已经有很多支持EOS的钱包了,有Web钱包,有app钱包,还有浏览器插件钱包,著名有scatter钱包.TokenPocket钱包还有MeetOne钱包等.但是基于服务器上的钱包管理我们还是必须要学会使用keosd的功能,而且,从安全性来说,三方的终究没有官方的更让人放心吧,我的同事就遇到过被三方sdk盗号的情况,所以作为开发人员,熟练使用keosd的功能,对我们…
简介 智能合约是现在区块链的一大特色,而不同的链使用的智能合约的虚拟机各不相同,编码语言也有很大差异.而今天我们开始学习EOS的智能合约,我也是从EOS初期一直开发合约至今,期间踩过无数坑,也在Stack Overflow上提过问(最后自己解决了),在实际生产中也积累了很多经验,所以我会连续几周分多次分享合约开发的经验,今天先来点基础的. 一些C++的编程基础 EOS就是使用C++开发的,这也为它带来了诸多好处,而合约也沿用C++作为开发语言,虽然合约中无法直接使用Boost等框架(你可以自己引…
简介 我们马上要进入智能合约的开发了,以太坊最初提供了智能合约的功能,并宣告区块链进入2.0时代,而EOS的智能合约更进一步,提供了更多的便利性和可能性.为了进一步了解智能合约,并进行开发,我们需要先准备好智能合约的开发环境,工欲善其事必先利其器,有了好的开发环境,可以加快我们的开发速度,降低bug率. EOS的IDE介绍 EOS的智能合约是使用C++编写的,而编译是使用EOSIO官方出品的eosio.cdt来完成,所以最简单又最复杂的IDE就是一个编辑器+cdt工具. 简单是因为你只需要一个记…
简介 今天我们继续补充智能合约的进阶使用技巧,这次的主题是交易,合约内我们除了可以发起内联action的调用,很多使用还需要直接调用其他的合约action或者以交易的形式调用自身的action. 发起交易/延时交易 在合约内可以非常方便的发起一个交易,无论是调用外部的合约action还是调用自身的,都很容易. 这里可能你会有疑问,为何调用自身的action要通过发起交易的方式呢?一个最主要的原因是需要有交易记录,如果直接作为内联方法调用了,链上是看不到直观的记录的,而我们通过区块链浏览器查看交易…
简介 从今天开始我会在FishoPark上与大家分享EOS的一些技术经验和基础,如果大家在看文章的过程中有任何问题,欢迎在网站下方的评论里留言,我会尽力为大家解答,如果发现我内容中所写有错,欢迎指正,谢谢. 那么首先我们在开始学习EOS之前,需要先了解一下EOS开发所需的预备知识和环境. EOS开发准备 EOSIO的开发,你最好具有以下经验: C/C++的开发经验 Linux/Mac的使用经验 命令行的使用经验,最好是bash命令的 在开始前,我们需要准备运行环境,目前EOSIO还不支持Wind…
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core token init,onblock,更新已入选生产节点 eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. 本文分析的源码来自于…
EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set contract eosio build/contracts/eosio.bios -p eosio 其中,eosio是要部署的账号,就是你用哪个账号去部署智能合约: build/contracts/eosio.bios表示的是路径: eos.bios是生成一个智能合约的目录. 运行Token合约…
现实世界中的合约,简单地说,是一个参与活动的所有人都需要遵循的协议.合约可以是正式的法律合同(例如,金融交易),或者是简单的游戏规则.典型的活动可以是诸如资金转移(在金融合约的情况下)或游戏动作(在游戏合约的情况下). EOSIO智能合约是在区块链上注册,并在EOSIO节点上执行的软件,它实现了一个“契约”的语义,其动作请求的总帐被存储在块链上.智能合约定义接口(动作.参数.数据结构)和实现接口的代码.代码被编译成一个规范的字节码格式,以便节点可以检索和执行,而合约执行的交易记录都会被存储在区块…
上一节我们搞了老半天,也没整明白Exchange这个合约到底干啥用的.就它官方提供的说法,是用于货币的创造和交易.我没整明白,所以去看了下代码,发现代码头文件里面有下面这段话: This contract enables users to create an exchange between any pair of standard currency types. A new exchange is created by funding it with an equal value of bot…
前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆,摸不着头脑. 那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个 IP 基础知识全家桶. 吃完这个 IP 基础知识全家桶全家桶,包你撑着肚子喊出:“真香!” 不多说,直接上菜,共分为三道菜: 首先是前菜 「 IP 基本认识 」 其次是主菜 「IP 地址的基础知识」 最后是点心 「IP 协议相关技术」 IP 基础知识全家桶 为啥要比喻成菜?因为小林是菜狗(押韵不?) 正文 前菜 —— I…
全家桶:Vue本身.状态管理.路由.   异步组件:     …
EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过程中出现的问题也会及时研究并入我们自己的知识体系.本文会主要跟随EOS官方Wiki的智能合约部分进行研究学习,主要分为 开启一个私有链 创建钱包 载入基础IO的智能合约支持 创建账户 智能合约学习: token 交易所 智能合约实战: Helloworld 准备 EOS的智能合约采用C++ 编写,因…
链接:https://www.jianshu.com/p/90dea623ffdf 简介 本篇文章,将跟大家介绍eos私链的激活.基础智能合约的安装,以及为大家演示转账等基础操作.还没有安装eos私链的同学,可以参考我上篇文章,先搭建好私链. 智能合约 承接上篇文章,我们启动私链 —> 创建公私钥对 —> 创建钱包 —> 将公私钥对导入钱包 —> 创建user账户.有同学会问,我们什么时候能发交易.做一些转账等基本操作?那我们就不得不提出一个新概念—智能合约.简单来说,智能合约是条…
EOS智能合约存储实例 智能合约中的基础功能之一是token在某种规则下转移.以EOS提供的token.cpp为例,定义了eos token的数据结构:typedef eos::token<uint_t,N(eos)>Tokens; 以Currency合约为例.该合约中,也用类token模板类生成了代币currency:typedef eos::token<uint_t,N(currency)>CurrencyTokens; 有了 eos token和我们发行的子代币,我们就能编写…
目前EOS已经迎来了1.5.x时代,很多内容都有了较大的改变.其中智能合约的工作流程发生了改变,EOSIO为智能合约提供了独立且功能完整的工具集eosio.cdt.该工具集基于WASM平台,可解耦于eos系统,更便携地完成智能合约的开发编译.此外eosio.cdt在底层优化上已经超脱于eos系统,使用了更新的对LLVM有了更佳地支持,未来在性能方面会有较大提升.本章讲重点介绍eosio.cdt工具集,在该工具集的基础上,分析研究eos现有的官方智能合约例子. 关键字:eos,eosio.cdt,…
1.简介 随着EOS Dawn 3.0发布,智能合约的坑又要重新踩了o(╥﹏╥)o:3.0不仅将原来本身就在链里的基础合约独立出来,简单的介绍见3.0合约改变,合约的书写方式也有巨大变化,相比之前更加“面向对象”:这边文章就从最简单的hello合约,讲解下,详细的例子会在之后文章介绍: 2.2.0的合约格式 先来看看2.0的最基础的智能合约如何编写: #include <eoslib/eos.hpp> namespace hello { /** * @abi action * @abi tab…
传送门: 柏链项目学院   EOS的智能合约与以太坊区别很大, EOS 的智能合约基于 WebAssembly(WASM) 技术执行用户生成的应用程序和代码.WASM是一项新兴的网络标准,得到了谷歌,微软,苹果等公司的广泛支持.目前,用于构建编译为WASM的应用程序的最成熟工具链是使用C / C ++编译器的clang / llvm.目前EOS的智能合约仅支持C和C ++编写.我个人认为,EOS的智能合约相较于以太坊的智能合约上手难度要更大一些.一个简单的EOS智能合约都要由多种种文件构成,而以…
EOS记事本智能合约 本次分享的内容是一个记事本合约,调用合约中的写入动作可以将文本和作者保存到数据库中,通过记事本合约来学习EOS智能合约数据存储当中的主键自增. 合约动作 写入动作 记事本合约必须要有的写入文本action,用来存储记录文本和记录作者. 删除动作 记事本中同样需要有删除记录的action,用来删除记录信息. 合约代码 note.cpp #include <eosiolib/eosio.hpp> #include <string> using namespace…
EOS智能合约授权限制和数据存储 在EOS合约中,调用合约需要来自账户的授权,同时还要指定需要调用的动作.当然,有的合约并不是所有账户都可以调用的,这就需要用到授权限制.接下来我们就来看看如何限制合约的授权账户. 合约案例 为了更好的演示,写了一个下课和吃饭的智能合约小例子.这个合约有两个动作,下课和吃饭.教师账户可以调用下课动作,学生账户可以调用吃饭动作.教师调用下课动作后,学生才能调用吃饭动作.接下来我们来看代码: teacher.hpp 头文件teacher.hpp定义了两个动作,over…
没有看前面文章的小伙伴可以看一下 EOS智能合约开发(一):EOS环境搭建和启动节点 EOS智能合约开发(二):EOS创建和管理钱包 创建好钱包.密钥之后,接下来你就可以创建账号了,账号是什么?账号保存在区块链上的人类可读的标志符. 创建账号的命令: $ cleos createaccount eosio ${new_account} ${owner_key} ${active_key} 其中eosio是超级用户,需要靠超级用户来创建其它的新用户,eosio后面就是你的新用户的用户名. 除了新的…
上节介绍了EOS智能合约开发之EOS环境搭建及启动节点 那么,节点启动后我们要做的第一件事儿是什么呢?就是我们首先要有账号,但是有账号的前提是什么呢?倒不是先创建账号,而是先要有自己的一组私钥,有了私钥才能有账号,有账号的前提还是要有钱包.所以,最开始我们是创建钱包,钱包是用来管理我们的密钥的. 第一步:创建钱包 使用命令:Cleos wallet create,就可以创建一个钱包.像以太坊.比特币这些已经比较成熟了,使用一些客户端可以去创建钱包. 如果你想用不同的参数,可以在命令后边加上-N,…
EOS和以太坊很像,EOS很明确的说明它就是一个区块链的操作系统,BM在博客中也是说过的. 可以这样比喻,EOS就相当于内置激励系统的Windows/Linux/MacOS,这是它的一个定位. 包括以太坊也有自己的定位,Vitalik在2014年第一次说以太坊想法的时候,他就很明确的说了,以太坊就是一个全球计算机,这些都是创始人本人提出的一个想法. 下面从EOS入门的环境搭建.编译运行一个智能合约.发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获. 下载EOS环境搭建和启动…
MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =================================================================================================================================== 批量新增:方式2(数据大于1万) xml文件.接口 没有变化 . MybatisUtil工具类 测试类: 如…
libsnark 是实现了 zkSNARK 模式的 C++ 库.zkSNARK 是一个证明/验证计算完整性的加密方法,也即零知识验证的算法, https://github.com/scipr-lab/libsnark.       作者:ebit堡主链接:https://www.zhihu.com/question/59968824/answer/171779341来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 我觉得,最实用的有两个功能:比特币搬砖:生产bitc…