EOS基础
EOS基础
FLy_鹏程万里
国内网络安全研究员,专注于Web渗透、移动安全、代码审计、应急响应、内网渗透、区块链安全、云安全等研究方向,擅长渗透测试、红蓝对抗、内网渗透、云安全、区块链安全。
展开
-
EOS 智能合约
1. EOS智能合约的介绍1.1. 所需背景知识C / C++ 经验基于EOS.IO的区块链使用Web Assembly(WASM)执行开发者提供的应用代码。WASM是一个已崭露头角的web标准,受到Google, Microsoft, Apple及其他大公司的广泛支持。目前为止,最成熟的用于构建应用及WASM代码编译的工具链是clang/llvm及其C/C++编译器。其他由第三方...转载 2018-12-17 18:04:40 · 542 阅读 · 0 评论 -
EOS 细说Action
action: create/*** 对比下本action的触发命令:cleos push action eosio.token create '[ "user", "1000000000.0000 EOS"]' \ -p eosio.token@active** 看下参数部分:** account_name实际就是uint64_t。** 在eos的代码中,很多具...转载 2018-12-18 08:56:18 · 652 阅读 · 0 评论 -
EOS之发币eosio.token智能合约解析
一、eosio.token.hpp文件结构#pragma once// 引入 资产(asset) 类型#include <eosiolib/asset.hpp>// 引入其他基础文件定义文件,包括一些其他类型,譬如account_name#include <eosiolib/eosio.hpp>#include <string>names...转载 2018-12-18 08:55:49 · 624 阅读 · 2 评论 -
Ubuntu 18.04搭建EOS环境
一、最新代码编译构建1、从GitHub上克隆代码仓库到本地(需要安装git)git clone https://github.com/EOS-Mainnet/eos 2、进入到EOS目录下面,之后更新代码仓库子模块git submodule update --init --recursive 3、小提醒在编译源码生成可执行文件之前,请确保你有8G的运行内存...原创 2018-11-19 09:18:31 · 897 阅读 · 0 评论 -
解读EOS骰子游戏随机数比较原理
随机数发生器随机数发生器作为一种极其重要的甲骨文公司(预言机),是很多区块链应用必须的一个工具,EOS提供了一种方便的随机数生成方案。游戏目的本篇通过一个小游戏,双方比较谁的随机数大,来解释如何使用区块链随机数发生器。操作步骤第一步:产生密钥在终端执行命令$ openssl rand 32 -hex$ 28349b1d4bcdc9905e4ef9719019e557...转载 2018-11-18 20:05:54 · 417 阅读 · 0 评论 -
玩eos上的掷骰子游戏---dice智能合约
dice智能合约的操作步骤,在eos的github上有,这里不再赘述,这里主要讲dice智能合约的实现。dice在中文中是骰子。聪明的你已经猜到了,这可能是一个掷骰子游戏,没错,这就是一个双人掷骰子游戏。现在我们沿着操作步骤看它的实现:第一步:充值(如同进赌场要换筹码):cleos push action dice deposit '[ "wang", "100.0000 EOS" ...转载 2018-11-18 20:06:00 · 697 阅读 · 0 评论 -
解析|累计造成千万损失的EOS智能合约漏洞,该如何避免?
自六月份EOS主网之后,Joe老师亲身经历和见证过EOS DApp一路走来的艰辛。被黑客以各种各样方式攻击过的DAPP,总的损失规模至少上千万了。一直以来,都想对所有被攻击过的DAPP,以及攻击方式做一个汇总。因为前人花大的代价踩的坑,得到的教训,应该总结好,避免后人再犯。因此上周日,一块链习·区块链技术100讲—第3讲由资深全栈工程师,区块链DApp开发老司机Joe老师向大家倾心分享——如何避免...转载 2018-11-20 09:33:30 · 1133 阅读 · 0 评论 -
EOS智能合约案例解析(上)
为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo —— eosio.token。eosio.token 智能合约目前还不是特别完善,个别功能还没有完成。但这个示例合约给出了 EOS 官方智能合约开发的标准结构和开发方法,并且真正的 EOS 代币也会借鉴这个示例合约的逻辑,是 EOS 智能合约入门的经典案例。照例,eosio.token 合约由三个文件(c...转载 2019-01-17 16:14:37 · 290 阅读 · 0 评论 -
EOS智能合约案例解析(中)
之前的文章介绍了 eosio.token 智能合约的 hpp 文件,这次向大家介绍 eosio.token.cpp 文件,cpp 文件即 C++ 代码文件,智能合约所有的业务逻辑内容都是在 cpp 文件中实现的。eosio.token.cpp 文件地址: https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.to...转载 2019-01-17 16:23:37 · 415 阅读 · 0 评论 -
EOS智能合约案例解析(下)
这次向大家介绍 eosio.token 智能合约的最后一个文件 —— abi文件。ABI 全称 Application Binary Interface,中文名“应用程序二进制接口”,顾名思义是一个接口文件,描述了智能合约与上层应用之间的数据交换格式。abi 文件格式类似 JSON,具备很好的可读性,有利于智能合约工程师与上层应用工程师之间的工作衔接。eosio.token.abi 文件地址: ...转载 2019-01-17 16:45:13 · 308 阅读 · 0 评论 -
Multi_index详解
Multi-Index API 简介1、Multi-Index API 是EOS提供的访问数据库的C++接口,使智能合约能够读取和修改EOS数据库中的数据;2、Multi-Index源文件位置在:eos/contracts/eosiolib/multi_index.hpp;3、Multi-Index来源于boost库的boost::multi_index,但又有一些重要不同,eos中使用e...转载 2019-01-16 15:52:18 · 2463 阅读 · 0 评论 -
区块链EOS到底是什么?
EOS是什么?首先,我们把这个问题分为以下两点来看:EOS的概念首先,EOS从概念上可以理解为Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。那么什么又是分布式应用呢?分布式应用是指应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式,而EOS可以理解为承载这些分布式应用的平台EOS为了解决什么问题而产生那么EOS的产...转载 2018-07-11 22:31:07 · 844 阅读 · 0 评论 -
EOS官方token.cpp
EOS官方曾给出标准的token.cpp文件作为参考,在这里面有代币的创建、发币、交易、增加代币、减少代币等功能/** * @file * @copyright defined in eos/LICENSE.txt */#include "eosio.token.hpp"namespace eosio {void token::create( account_name ...原创 2018-12-18 08:56:12 · 503 阅读 · 0 评论 -
浅析EOS系统资源
EOS系统中的资源类型在EOS资源分配的核心思想中,token代表系统资源的使用权。EOS用户或者DAPP开发者需要购买token,并将其抵押到EOS的系统账户,用以获取网络带宽资源和CPU计算资源的使用权。EOS系统中有5类重要的资源:1、 网络带宽资源2、 CPU计算资源3、 内存资源4、 存储资源5、 投票资源网络带宽资源1、什么是带宽资源用户发...转载 2018-12-18 08:55:34 · 323 阅读 · 0 评论 -
走进EOS的存储系统
海量数据在一个完全去中心化的区块链系统中,每个节点如果想验证某一笔交易是否正确,则必须下载完整的区块链数据,随着时间的推移,区块链的数据量呈线性递增,以比特币为例,每10分钟产生一个区块,区块大小为1MB,每年的区块增长速度为24 * 60 / 10 * 365 = 51.3GB,10年后,大概需要5T空间。EOS理论上可以达到百万TPS,按照一个交易数据100字节计算,1天的区块数据量为10...转载 2018-12-18 08:55:27 · 657 阅读 · 0 评论 -
EOS文档
Wiki导航术语表 公测: Dawn 2.0 概览 节点 公测端点 链接EOSD和公测网络 链接本地EOSC和公测网络 公测账户 程序和工具 eosd eosc eos钱包 launcher 快照 eoscpp 本地环境 获取代码 编译EOS Docker 创建并启动一个测试链 常见问题 账户及权限 钱包 ...原创 2018-12-17 18:05:01 · 401 阅读 · 0 评论 -
EOS 测试公网 Dawn 2.0
概览测试公网是用来给已有本地(私有的)测试私网的开发者和测试者们在公网上进行测试的,但并没有主网(mainnet)的问题和限制。测试公网允许开发者使用注册即可获得的免费测试token。进入注册页请点这里。主网和私有测试公网的区别主网和测试网有一些区别,至写此文档时,包括:存在. 主网目前尚未上线,但是测试网可运行。 创世区块. 主网的创世区块不同于测试公网的创世区块。测试公网...转载 2018-12-18 08:53:49 · 284 阅读 · 0 评论 -
EOS 术语表
Taxonomy Term Synonym Block.one Definition Account An on-chain identifier made up of native and/or custom permissions that are assigned one or more keys or accounts. Authority ...原创 2018-12-18 08:53:57 · 398 阅读 · 0 评论 -
EOS 程序及工具
程序eosdEOS的核心守护进程,配置插件并运行后即可启动一个EOS节点。可用于例如区块生产、提供专用的API端点或本地开发。eosceosc是一个和eosd暴露的REST API交互的命令行工具。在使用eosc时,您需要知道某eosd instance的端点(IP地址及端口号),并且配置好eosc以读取'eosio::chain_api_plugin'。eosc中有关于其所有命令...转载 2018-12-18 08:54:05 · 1741 阅读 · 0 评论 -
EOS 本地环境
1. 获取代码下载EOS源代码及其两个子模块以完整下载整个项目。通过递归克隆是最快的方式:$ git clone https://github.com/eosio/eos --recursive如果克隆时不添加--recursive 选项,则子模块可通过在此仓库中运行如下命令再获取:$ git submodule update --init --recursive2. 构建...转载 2018-12-18 08:54:15 · 444 阅读 · 0 评论 -
EOS 命令行钱包
1. 概要程序: eos-walletd路径: eos/build/programs/eos-walletd2. 目的保存私钥,私钥可用于签名transactions并将其发到区块链上。请注意钱包是一个运行在您的本地机器的本地进程,您的私钥也保存在本地。3. 如何运行钱包在您的本地机器用如下命令启动eos-walletd进程:$ eos-walletd 您会发现它创...转载 2018-12-18 08:54:30 · 473 阅读 · 0 评论 -
EOS资源汇总
EOS 主网超级节点https://eos.live,EOS 竞选节点列表,by SuperONE https://www.imeos.one/block-producer,EOS 竞选节点列表,by IMEOS https://eosnodes.privex.io,privex.io 出品GitHubhttps://github.com/EOSIO,官方源码 https:...原创 2018-12-18 08:54:45 · 2064 阅读 · 0 评论 -
EOS代码架构及分析(一)
EOS简介EOS(Enterprise Operation System),企业操作系统,是为企业级分布式应用设计的一款区块链操作系统。相比于目前区块链平台性能低、开发难度大以及手续费高等问题,EOS拥有高性能处理能力、易于开发以及用户免费等优势,极大的满足企业级的应用需求,被誉为继比特币、以太坊之后区块链3.0技术。EOS优秀基因的背后是其底层的石墨烯软件架构所决定的。其实EOS不是最早...转载 2018-12-18 08:54:51 · 436 阅读 · 0 评论 -
EOS代码架构及分析(二)
EOS通信机制分析客户端和服务器端的通信采用RESTful软件架构风格,服务器端的每个资源对应一个唯一的URL地址,客户端将URL地址封装成http请求发送到服务器端,请求对应的资源或者执行相应操作。客户端发送消息流程以转账为例,说明EOS消息处理流程。通过cleos客户端发起转账命令,在main函数中,解析transfer命令,通过create_transfer函数将交易发送者、...转载 2018-12-18 08:54:58 · 295 阅读 · 0 评论 -
EOS代码架构及分析(三)
EOS采用DPoS算法和块内分片技术,实现了百万级别TPS的超高性能,可以媲美中心化服务器的处理能力,同时保持去中心化的属性,成为了区块链3.0的代表。那么为什么EOS有如此出色的性能表现?本文将从EOS的核心设计原理以及主要数据结构进行分析。EOS VS Bitcoin我们知道,比特币采用POW共识算法确认区块:1)Bob向Alice发出一笔转账消息;2)客户端将消息广播给所有矿...转载 2018-12-18 08:55:04 · 533 阅读 · 0 评论 -
EOS代码架构及分析(四)
什么是智能合约在解释智能合约前,我们先来看看传统合约的形态。合约的本质是由一系列条款组成,每个条款由若干条规则组成,通过向条款中输入固定的参数,会输出固定的结果。传统合约需要由双方共同参与签署确认,同时需要第三方见证人公证后,才具有法律效应,确保合约按照既定的规则执行。这里的第三方通常是具有法律效力的公证方,同时必须是能够精准理解合约条款的专业机构,可以避免双方产生纠纷。比如,在租赁合同中,需...转载 2018-12-18 08:55:19 · 310 阅读 · 0 评论 -
EOS系统架构图解
相信关心 EOS 系统的人肯定见过下面这张蓝图。对,目前只是一个蓝图,而且以 BM 的尿性,肯定在心理已经把这张图改的面目全非了(比如图中的 eosd 早就改名了)。所以这张图只能作为未来 EOS 发展方向的参考而已,目前的 EOS 还远没有这么复杂和完善。了解系统架构之前我们先看看目前 EOS 系统的主要组成部分:nodeos: EOS 系统的核心进程,也就是所谓的“节点”。运行时可...转载 2019-04-07 17:18:59 · 1350 阅读 · 0 评论