区块链
文章平均质量分 73
原文学院
这个作者很懒,什么都没留下…
展开
-
EOS合约开发第八章-EOS本地合约入门
EOS本地合约入门一、智能合约入门本教程的目的是演示如何设置可用于实验智能合约的本地区块链。本教程的第一部分将着重于讲述:启动私有区块链 创建一个钱包 加载Bios合约 创建帐户本教程的第二部分将引导您创建和部署自己的合约:eosio.token 合约 Exchange 合约 Hello World 合约本教程假设您已经安装了EOSIO,并且nodeos和cleos...原创 2018-08-07 10:06:56 · 694 阅读 · 0 评论 -
EOS合约开发第十章-前端合约RPC
前端合约RPC原创 2018-08-07 10:06:25 · 865 阅读 · 0 评论 -
EOS合约开发第十一章-合约执行上下文
当前请求执行的上下文环境主要包含以下几类:1. action数据read_action_data获取了action调用的完整数据get_action获取action的方法名称action_data_size获取action调用完整数据的大小2. 上下文free dataget_context_free_data获取action执行请求时指定的free data3. tr...原创 2018-08-07 10:06:32 · 988 阅读 · 0 评论 -
EOS合约开发第十五章-数据表设计
数据表设计一、概述eos在执行一个action之前,会为该action设置一个干净的运行环境,也就是说每个action是完全独立的环境中运行的,目前在action之间传输数据的唯一方式是持久化数据到eos数据库和从eos数据库读取数据。eos标准库中multi_index api提供了一个访问eos数据库的C++接口,这个API提供了一个对象存储的模型,支持多种检索方式、支持不同排序方...原创 2018-08-07 10:07:16 · 740 阅读 · 0 评论 -
EOS合约开发第十六章-eos db C++ api
eos db C++ apieos db的C++ API在eos标准库中的multi_index实现,该api实际上是boost multi_index容器库的改编版本。在以下的描述中,使用了以下别名: 别名 描述 OBJECT_TYPE multi_index表中的对象类型 secondary_index 多索引表中相应的二级索引类型 构造函数 ...原创 2018-08-07 10:07:18 · 425 阅读 · 0 评论 -
EOS合约开发第十七章-合约通信编程
合约通信编程一、EOS通知概述我们首先看一看eosio.token合约中issue的通知。跳过基本的合约和账户配置,我们直接进入eosio.token合约,首先创建一个token:[kingnet@pdev1 nodeos1]$ cleos --wallet-url http://localhost:9800 --url http://localhost:9800 push action eosi...原创 2018-05-29 10:17:44 · 3635 阅读 · 1 评论 -
EOS合约开发第十八章-合约通信编程(2)
合约通信编程一、通信模型和执行流程 EOSIO智能合约可以相互通信,例如让另一个合约执行某些与当前action相关的操作,或触发当前action范围之外的未来交易。EOSIO支持Inline和Deferred两种基本通信模式。Inline通信可以理解为在当前action中执行操作,可视为同步通信,Deferred通信可以理解为触发未来事务操作,可视为异步通信。 1. Inl...原创 2018-08-07 10:07:59 · 1134 阅读 · 1 评论 -
EOS合约开发第十九章-集中博彩游戏合约设计
集中博彩游戏合约设计一、功能接口1. 质押deposit由用户发起,用户将个人账户中token质押给平台,从而可以进入平台去参与平台活动。2. 赎回withdraw由用户发起,在用户结束平台活动需要离开时,发起赎回曾质押给平台的token到个人账户。3. 开启一期下注openbet由平台发起,平台启动一期下注,玩家可以参与下注。4. 结束一期下注 closurebe...原创 2018-08-03 18:16:18 · 2788 阅读 · 0 评论 -
跨链系统构建-basecoin的IBC
basecoin的IBC一、概述cosmos网络中最重要的功能实现是InterBlockchainCommunication(IBC),IBC协议支持不同区块链之间的互操作性。cosmos网络将IBC作为一个basecoin插件实现,我们将使用cosmos来跨区块链发送token。IBC插件定义了一组交易集合作为AppTx的子类型,要使用这个插件,需要设置AppTx.Name为“IBC“,同时需要...原创 2018-05-28 20:55:51 · 1649 阅读 · 0 评论 -
Cosmos链通信技术规范
Cosmos链通信技术规范摘要本文给出了Cosmos链通信(CosmosIBC)协议的技术规范,这个协议在2016年6月Cosmos白皮书中有过首次描述。 除该技术外其它一些技术也可以在一个原子操作中涵盖两个链,比如“哈希时间锁定”,不过很多此类技术都仅限于保证两个交易同时成功或失败。但CosmosIBC则创建了完整的双向“侧链”,真正地允许跨链传递价值,并充分利用Tendermi...原创 2018-10-17 15:27:36 · 515 阅读 · 0 评论 -
基于cosmos由浅入深开发区块链
Cosmos SDK开发一、TendermintTendermint是一个应用程序软件,用于在多机器环境下进行安全且一致的复制应用程序。安全体现在即使多达1/3的机器在任意方式下发生故障,Tendermint仍然可以正常工作。一致体现在每个无故障的机器看到相同的事务日志并计算出相同的状态。安全一致的复制是分布式系统中的一个基本问题,它在应用的容错性方面发挥着关键作用,从货币、选举到基础...翻译 2018-10-17 16:05:18 · 4165 阅读 · 1 评论 -
Tendermint: Byzantine Fault Tolerance in the Age of Blockchains
Tendermint: Byzantine Fault Tolerance in the Age of Blockchainsby Ethan BuchmanA Thesis presented to The University of GuelphIn partial fulfilment of requirements for the degree of Master of Applie...转载 2018-10-17 16:06:50 · 3450 阅读 · 0 评论 -
EOS合约开发第七章-EOS合约简介
EOS合约简介一、语言 基于EOSIO的块链使用的是WebAssembly (WASM)来执行用户编写的智能合约。WASM是一种新兴的Web标准,广泛支持于谷歌、微软、苹果等。对编写WASM标准的智能合约来说使用clang/llvm和它的C/C++编译器是目前最为成熟的编译工具链。其他的第三方工具链在开发中,包括:Rust, Python, and Solidity。虽然这些语言可...原创 2018-08-07 10:05:27 · 674 阅读 · 0 评论 -
EOS合约开发第六章-构建多节点私链
构建多节点私链原创 2018-05-29 11:26:31 · 4146 阅读 · 0 评论 -
让消费者成为最大赢家——我们应该如何正视加密代币?
当加密代币被正确设计时,消费者可能是最大的赢家。上面这句话是由来自于麻省理工学院的Christian Catalini和多伦多大学的Joshua Gans所写的一篇论文,该论文描述了一个简化的模型,这个模型说明了代币、或者具有比特币和以太坊精神的商品可以充当具有价值的价格发现角色。不仅如此,这篇名为“初始硬币发行和加密代币价值”的论文甚至预测了一个代币可以让消费者对服务选择最优价格。从这篇论文的简...转载 2018-03-28 09:08:59 · 227 阅读 · 0 评论 -
专为电子商务设计的CyberMiles公链
以太坊已成为加密货币企业家的首选平台。开源、易于开发,这些特性让加密货币初创公司能够建立智能合约,创建去中心化的应用(DApps),并且发行新的加密货币也十分容易。像大多数新技术一样,以太坊区块链也存在一些问题。早期人们对以太坊的技术革新表示赞许,但最近有人提出了有关以太坊安全性和可扩展性的问题。去年11月28日,CryptoKitties区块链游戏发行后,以太坊经历了迄今为止最大的网络拥塞。Cr...转载 2018-03-29 08:37:19 · 172 阅读 · 0 评论 -
以太坊的本质
以太坊的本质就是一个基于交易的状态机:1. 状态数据实际上也是保存在block上的状态树中的。2. 创世状态里面记录了创世文件初始化的账户数据及其他状态数据,每次生成一个block,执行其中的交易,修改状态数据,并以增量修改的方式记录在最新的block的状态树中。3. 被最终确认后的block(包括状态)保证永久无法被篡改(符合拜占庭容错的条件下)。4. 上图中最新的以太坊状态是执行blockN+...转载 2018-04-04 16:25:40 · 405 阅读 · 0 评论 -
EOS Bible
The EOS Bible ContentsOfficialBlock.OneCommunity ProjectsCommunity ForumsEOS Telegram ChannelsMeetupsYouTube ChannelsSteemit Accounts to followWalletsPresentationsToken Registration Step by Step guide...转载 2018-05-10 14:49:34 · 381 阅读 · 0 评论 -
EOS合约开发第九章-hello world合约
hello合约我们编写一个简单的eos合约程序,这个程序只有基本的功能,即打印hello world。以下是程序的代码:#include <eosiolib/eosio.hpp>using namespace eosio;class hello : public eosio::contract { public: using contract::contract;...原创 2018-05-29 11:23:45 · 1367 阅读 · 0 评论 -
EOS合约开发第十二章-合约输出
合约输出合约部署运行在eos节点上,合约的调用是由客户端发起的,合约的调用请求将触发eos节点上部署的合约运行且产生输出,合约的输出作为该请求的应答并返回给合约调用客户端。在hello world合约程序中,我们在客户端调用了合约,合约调用请求在eos节点执行且打印输出作为请求的应答返回给合约调用客户端。eos标准库C打印函数:1. 指定字符串及长度void prints_l(...原创 2018-08-07 10:06:49 · 641 阅读 · 0 评论 -
EOS合约开发第十四章-基础数据类型
基础数据类型eos合约开发使用的c++14语言,c++14定义的基本数据类型eos都支持,但eos在c++14基本数据类型基础上定义了新的数据类型。eos宏N宏N就是将一个字符串编码为一个uint64_t整数,使用eos标准库中的string_to_name完成编码,string_to_name允许的编码字符串最大长度为13个字符,且字符串中字符限制为.12345abcdefghijk...原创 2018-08-07 10:07:10 · 1195 阅读 · 0 评论 -
EOS合约开发第十三章-序列化
EOS对象序列化一、对象的序列化支持EOS需要对外部可访问对象进行序列化和反序列化,在合约调用发起时,需要将请求action的参数(json格式描述)根据abi进行序列化,发送到eos的action请求的参数是序列化的对象,eos收到请求后需要将其反序列化。在eos请求表数据时,需要对表数据进行反序列化并输出到请求的应答中。对象的序列化和反序列化主要应用在请求的解析和请求应答的格式化中...原创 2018-08-07 10:06:53 · 1321 阅读 · 0 评论 -
EOS合约开发第一章-EOS介绍
EOS介绍一、区块链应用的里程碑比特币是目前为止最成功的区块链应用,它通过自己的成功也证明了区块链技术(数字总账)可以被运用在互联网上,来进行不通过任何第三方的安全交易。以太坊在此基础上增加上了智能合约的概念,使得区块链不光可以被应用于发行加密货币及其转账,还可以在此基础之上开发各种应用程序,满足各种不同行业、不同应用场景的需求。二、当前区块链应用的瓶颈虽然比特币网络已经成功运...转载 2018-08-07 10:04:53 · 569 阅读 · 0 评论 -
EOS合约开发第二章-EOS开发环境构建
EOS开发环境构建一、获取代码从git下载eos项目以及其依赖的子项目:git clone https://github.com/EOSIO/eos --recursive如果下载时没有添加--recursive,可以在下载的eos项目目录下运行以下命令来下载依赖的子项目:git submodule update --init --recursive因为我们需要一个稳定...原创 2018-08-07 10:04:54 · 682 阅读 · 0 评论 -
EOS合约开发第三章-程序和工具集
程序和工具集一、EOSIO包含以下程序和工具程序:nodeos cleos keosd launcher snapshot工具:Eosiocpp二、nodeosOSIO核心守护进程,可以配置插件来运行一个EOS节点。包含以下可配置项:1. 插件eosio::chain_api_plugin支持chain的RPC API2. 插件eosio::wallet_a...原创 2018-08-07 10:04:54 · 710 阅读 · 0 评论 -
EOS合约开发第四张-账户和权限
账户和权限一、概述一个账户是一个人可读的,存在区块链上的id。每笔transaction都需要在某个账户所配置的authority下评估permissions。每个被命名的permission都有一个阈值,只有满足后, 签名的transaction才能在authority下被认为有效。Transactions是通过一个加载了已解锁的钱包客户端签名的。钱包是一个保护并使用您的keys的软件。...原创 2018-08-07 10:05:26 · 733 阅读 · 0 评论 -
EOS合约开发第五章-钱包和账户手册
钱包和账户手册一、创建和启动单个节点使用以下命令来启动私有的单节点EOSIO:cd build/programs/nodeos./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugi...原创 2018-08-07 10:05:29 · 995 阅读 · 0 评论 -
EOS主网公开可用节点(动态更新)
以下是EOS主网可用节点,我会保持动态更新,如果大家使用过程出现不可用节点请留言,我做更新。https://mainnet.meet.one:443 可用https://openapi.eos.ren:443 ...原创 2018-12-23 22:35:38 · 2508 阅读 · 0 评论