- 博客(35)
- 资源 (11)
- 收藏
- 关注
原创 Go Routine原理分析与探讨
协程什么是协程协程(coroutine)通常也叫用户态线程,关于coroutine术语的解释最初发表在论文http://melconway.com/Home/pdf/compiler.pdf。在wiki上,可以找到各种语言实现的协程库程序。这篇文章主要讲明白为什么会有协程,协程工作原理以及关于协程问题的探讨。首先大家需要明白用户态和内核态以及其工作原理,这是理解这篇文章的基础,在这里不...
2020-05-01 11:04:28
544
原创 EOS主网公开可用节点(动态更新)
以下是EOS主网可用节点,我会保持动态更新,如果大家使用过程出现不可用节点请留言,我做更新。https://mainnet.meet.one:443 可用https://openapi.eos.ren:443 ...
2018-12-23 22:35:38
2568
转载 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
3867
翻译 基于cosmos由浅入深开发区块链
Cosmos SDK开发一、TendermintTendermint是一个应用程序软件,用于在多机器环境下进行安全且一致的复制应用程序。安全体现在即使多达1/3的机器在任意方式下发生故障,Tendermint仍然可以正常工作。一致体现在每个无故障的机器看到相同的事务日志并计算出相同的状态。安全一致的复制是分布式系统中的一个基本问题,它在应用的容错性方面发挥着关键作用,从货币、选举到基础...
2018-10-17 16:05:18
4303
1
原创 Cosmos链通信技术规范
Cosmos链通信技术规范摘要本文给出了Cosmos链通信(CosmosIBC)协议的技术规范,这个协议在2016年6月Cosmos白皮书中有过首次描述。 除该技术外其它一些技术也可以在一个原子操作中涵盖两个链,比如“哈希时间锁定”,不过很多此类技术都仅限于保证两个交易同时成功或失败。但CosmosIBC则创建了完整的双向“侧链”,真正地允许跨链传递价值,并充分利用Tendermi...
2018-10-17 15:27:36
546
原创 EOS合约开发第十八章-合约通信编程(2)
合约通信编程一、通信模型和执行流程 EOSIO智能合约可以相互通信,例如让另一个合约执行某些与当前action相关的操作,或触发当前action范围之外的未来交易。EOSIO支持Inline和Deferred两种基本通信模式。Inline通信可以理解为在当前action中执行操作,可视为同步通信,Deferred通信可以理解为触发未来事务操作,可视为异步通信。 1. Inl...
2018-08-07 10:07:59
1155
1
原创 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
440
原创 EOS合约开发第十五章-数据表设计
数据表设计一、概述eos在执行一个action之前,会为该action设置一个干净的运行环境,也就是说每个action是完全独立的环境中运行的,目前在action之间传输数据的唯一方式是持久化数据到eos数据库和从eos数据库读取数据。eos标准库中multi_index api提供了一个访问eos数据库的C++接口,这个API提供了一个对象存储的模型,支持多种检索方式、支持不同排序方...
2018-08-07 10:07:16
754
原创 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
1219
原创 EOS合约开发第八章-EOS本地合约入门
EOS本地合约入门一、智能合约入门本教程的目的是演示如何设置可用于实验智能合约的本地区块链。本教程的第一部分将着重于讲述:启动私有区块链 创建一个钱包 加载Bios合约 创建帐户本教程的第二部分将引导您创建和部署自己的合约:eosio.token 合约 Exchange 合约 Hello World 合约本教程假设您已经安装了EOSIO,并且nodeos和cleos...
2018-08-07 10:06:56
722
原创 EOS合约开发第十三章-序列化
EOS对象序列化一、对象的序列化支持EOS需要对外部可访问对象进行序列化和反序列化,在合约调用发起时,需要将请求action的参数(json格式描述)根据abi进行序列化,发送到eos的action请求的参数是序列化的对象,eos收到请求后需要将其反序列化。在eos请求表数据时,需要对表数据进行反序列化并输出到请求的应答中。对象的序列化和反序列化主要应用在请求的解析和请求应答的格式化中...
2018-08-07 10:06:53
1343
原创 EOS合约开发第十二章-合约输出
合约输出合约部署运行在eos节点上,合约的调用是由客户端发起的,合约的调用请求将触发eos节点上部署的合约运行且产生输出,合约的输出作为该请求的应答并返回给合约调用客户端。在hello world合约程序中,我们在客户端调用了合约,合约调用请求在eos节点执行且打印输出作为请求的应答返回给合约调用客户端。eos标准库C打印函数:1. 指定字符串及长度void prints_l(...
2018-08-07 10:06:49
651
原创 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
1001
原创 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
1028
原创 EOS合约开发第七章-EOS合约简介
EOS合约简介一、语言 基于EOSIO的块链使用的是WebAssembly (WASM)来执行用户编写的智能合约。WASM是一种新兴的Web标准,广泛支持于谷歌、微软、苹果等。对编写WASM标准的智能合约来说使用clang/llvm和它的C/C++编译器是目前最为成熟的编译工具链。其他的第三方工具链在开发中,包括:Rust, Python, and Solidity。虽然这些语言可...
2018-08-07 10:05:27
697
原创 EOS合约开发第四张-账户和权限
账户和权限一、概述一个账户是一个人可读的,存在区块链上的id。每笔transaction都需要在某个账户所配置的authority下评估permissions。每个被命名的permission都有一个阈值,只有满足后, 签名的transaction才能在authority下被认为有效。Transactions是通过一个加载了已解锁的钱包客户端签名的。钱包是一个保护并使用您的keys的软件。...
2018-08-07 10:05:26
748
原创 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
707
原创 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
724
转载 EOS合约开发第一章-EOS介绍
EOS介绍一、区块链应用的里程碑比特币是目前为止最成功的区块链应用,它通过自己的成功也证明了区块链技术(数字总账)可以被运用在互联网上,来进行不通过任何第三方的安全交易。以太坊在此基础上增加上了智能合约的概念,使得区块链不光可以被应用于发行加密货币及其转账,还可以在此基础之上开发各种应用程序,满足各种不同行业、不同应用场景的需求。二、当前区块链应用的瓶颈虽然比特币网络已经成功运...
2018-08-07 10:04:53
592
原创 EOS合约开发第十九章-集中博彩游戏合约设计
集中博彩游戏合约设计一、功能接口1. 质押deposit由用户发起,用户将个人账户中token质押给平台,从而可以进入平台去参与平台活动。2. 赎回withdraw由用户发起,在用户结束平台活动需要离开时,发起赎回曾质押给平台的token到个人账户。3. 开启一期下注openbet由平台发起,平台启动一期下注,玩家可以参与下注。4. 结束一期下注 closurebe...
2018-08-03 18:16:18
2803
原创 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
1484
原创 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
3696
1
原创 跨链系统构建-basecoin的IBC
basecoin的IBC一、概述cosmos网络中最重要的功能实现是InterBlockchainCommunication(IBC),IBC协议支持不同区块链之间的互操作性。cosmos网络将IBC作为一个basecoin插件实现,我们将使用cosmos来跨区块链发送token。IBC插件定义了一组交易集合作为AppTx的子类型,要使用这个插件,需要设置AppTx.Name为“IBC“,同时需要...
2018-05-28 20:55:51
1700
转载 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
418
原创 K-Means聚类分析
K-Means聚类分析概述聚类分析是在数据中发现数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好。聚类旨在发现有用的对象簇,在现实中我们用到很多的簇的类型,使用不同的簇类型划分数据的结果是不同的,关于更多的簇介绍参考《数据挖掘导论》。K-Means是基于原型的、划分的距离技术,它试图发现用户指定个数的簇。K-Means算法算法思想较为简单:选择K个点作为初始质心...
2018-04-09 13:46:08
2258
1
转载 以太坊的本质
以太坊的本质就是一个基于交易的状态机:1. 状态数据实际上也是保存在block上的状态树中的。2. 创世状态里面记录了创世文件初始化的账户数据及其他状态数据,每次生成一个block,执行其中的交易,修改状态数据,并以增量修改的方式记录在最新的block的状态树中。3. 被最终确认后的block(包括状态)保证永久无法被篡改(符合拜占庭容错的条件下)。4. 上图中最新的以太坊状态是执行blockN+...
2018-04-04 16:25:40
420
转载 机器学习:基本概念、五大流派与九种常见算法
简介机器学习正在进步,我们似乎正在不断接近我们心中的人工智能目标。语音识别、图像检测、机器翻译、风格迁移等技术已经在我们的实际生活中开始得到了应用,但机器学习的发展仍还在继续,甚至被认为有可能彻底改变人类文明的发展方向乃至人类自身。四大会计师事务所之一的普华永道(PwC)发布的多份解读机器学习基础的图表,其中介绍了机器学习的基本概念、原理、历史、未来趋势和一些常见的算法。机器学习概览什么是机器学习...
2018-03-29 10:07:47
705
1
转载 专为电子商务设计的CyberMiles公链
以太坊已成为加密货币企业家的首选平台。开源、易于开发,这些特性让加密货币初创公司能够建立智能合约,创建去中心化的应用(DApps),并且发行新的加密货币也十分容易。像大多数新技术一样,以太坊区块链也存在一些问题。早期人们对以太坊的技术革新表示赞许,但最近有人提出了有关以太坊安全性和可扩展性的问题。去年11月28日,CryptoKitties区块链游戏发行后,以太坊经历了迄今为止最大的网络拥塞。Cr...
2018-03-29 08:37:19
183
转载 让消费者成为最大赢家——我们应该如何正视加密代币?
当加密代币被正确设计时,消费者可能是最大的赢家。上面这句话是由来自于麻省理工学院的Christian Catalini和多伦多大学的Joshua Gans所写的一篇论文,该论文描述了一个简化的模型,这个模型说明了代币、或者具有比特币和以太坊精神的商品可以充当具有价值的价格发现角色。不仅如此,这篇名为“初始硬币发行和加密代币价值”的论文甚至预测了一个代币可以让消费者对服务选择最优价格。从这篇论文的简...
2018-03-28 09:08:59
242
原创 机器学习-线性回归-最小二乘法
线性回归-最小二乘法概述给定包含正确答案的样本数据集,选择一个概念函数H,并为H找到适应样本数据集的最优参数,从而建立预测模型为新查询数据预测答案。线性最小二乘法原理对于已知的样本数据集,可以用线性方程组表示为:m表示有m个线性方程,n表示有n个未知数,也就是样本数据集是n维,矩阵表示为:,,该方程组一般而言没有解,只能选取最合适的让等式尽量成立,引入残差平方和函数:取得最小值时的解记为:对使用求...
2018-03-19 18:03:23
677
原创 机器学习-最近邻(KNN,RNN)
最近邻概述基于最近邻的监督学习方法分两类:分类,针对的是具有离散标签的数据;回归,针对的是具有连续标签的数据基于最近邻的无监督学习方法用于聚类分析。最近邻方法原理是从训练样本中找到与查询点在距离上最近的预定数量或范围的多个点,然后依据这些点来预测查询点的标签。从训练样本中找出点的数量可以是用户定义的常量,这叫ķ最近邻学习即KNN,也可以通过用户定义的查询点的距离半径范围得出,这叫基于半径的最近邻学...
2018-03-18 00:49:51
9730
原创 数据结构算法与应用第九章-优先队列
第六章讲述了FIFO队列,第八章讲述了二叉树,在本章讲述优先队列。内容包括优先队列的线性表描述(公式描述线性表和链表)、堆、左高树、堆排序问题、机器调度问题和霍夫曼编码问题。 优先队列定义:优先队列是0个或者多个元素的集合,每个元素都有一个优先权,优先队列的操作要基于优先权进行。优先队列的分类:最小优先队列和最大优先队列。最大优先队列的操作:1) 插入,根据元素优先权插入
2012-05-17 10:20:53
1018
原创 数据结构算法与应用第二章-程序性能
在第二章中,作者介绍了程序性能相关知识,主要介绍了程序性能的研究方法和程序性能分析的应用分析。首先介绍了程序的空间复杂性和时间复杂性的概念和分析意义,从这里我们可以理解程序空间复杂性和时间复杂性分析的必要性,在这里作者提出了程序分析员,这个角色通常是在程序员中产生或者程序员就兼职了该角色。既然分析有必要,那么程序空间复杂性和时间复杂性的分析就是程序员的职责之一,那么如何去做程序性能分析呢?接着作者
2012-05-17 10:20:05
530
Blockstream改良版侧链白皮书-解除三方操作风险
2018-08-29
MIT计算机图形学课程6.837课件
2018-05-03
MIT人工智能课程6.034课件
2018-05-03
EOS白皮书 一个区块链操作系统
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人