连接 EOS 公共测试网络
本文介绍如何将自己的本地测试网络连接到 EOS 公共测试网络 (Public Testnet) 上。
官方文档:https://github.com/EOSIO/eos/wiki/Testnet%3A%20Public
准备本地已经能够正常运行起了 EOS 的测试网络。如有问题,可参考这篇文档:运行 EOS 源代码(一)
公共测试网络端点 (Public Testnet Endpoints)现在可以通过以下几种方式去访问 EOS Public Testnet Endpoints
HTTP Endpoint: testnet1.eos.io
P2P Endpoint: p2p-testnet1.eos.io:9876
Web Wallet Endpoint: t1wallet.eos.io, t1api.eos.io, t1readonly.eos.io
通过浏览器或者终端命令行 crul 访问 testnet1.eos.io/v1/chain/get_info, 获得测试链信息
1$ curl testnet1.eos.io/v1/chain/get_info
...
EOS 学习 (2) | EOS Glossary
本文介绍和 EOS 相关的一些术语
官方文档:https://github.com/eosio/eos/wiki/Glossary
Account (账户)定义An on-chain identifier made up of native and/or custom permissions that are assigned one or more keys or accounts.
由本地和 / 或自定义权限组成的链上标识符,可以分配一个或多个密钥或者帐户。
Authority (权力)定义An abstract of permissions that represent how permissions are organized in reality that are bound to an individual or groups of individuals.
代表现实世界中一个个体或者一群个体的权限组织方式的抽象定义。
Block (区块)同义词
Blk
定义A confirmable unit of the Blockchain. Each bl ...
全球区块链顶级会议 Token Summit 2017 一手信息解读
以下内容均来自 xdite 老师的直播分享
Token Summit 介绍Token Summit
全球区块链的顶级会议,是区块链行业里最具公信力的会议
会议主题
Token Summit I:Explored in-depth the Token-Based Economy.
第一次会议主要深度探讨以代币为基础的数字经济。
Token Summit II:Discuss the economics, regulation and practices around blockchain-based tokens, protocols, and crypto-assets. Focus on Designing Token-Based Economies, a key theme for this conference.
第二次会议讨论基于区块链的代币,协议和加密资产的经济,法规和实践。重点关注设计令牌经济。
主要的参与者
企业家、投资者、金融专业人士、律师、基金经理、监管者或商业主管等
价值
发掘潜在的创新思想,新的商业模式以及尚未被实施的商业点子
创始人
...
c++ 学习笔记
今年对区块链技术产生了浓厚的兴趣,学习 c++ 编程主要的目的在于想去研究下 bitcoin、eos 等区块链的源代码,弄懂他们的运行机制及原理。
学习教程
GitHub: https://github.com/wangweiX/c-learning
基础
Step01 - Initialization project
Step02 - Variables, initialization, and assignment
Step03 - Creating a Basic Calculator
Step04 - If / else Statement
Step05 - Function
Step06 - Object-oriented programming(OOP)
Step07 - Placing Classes in Separate Files
Step08 - While、for、do while Loops
Step09 - Assignment and Increment Operators
Step10 - Making a Stock Market Simulat ...
EOS 学习 (1) | 安装部署
本篇文章教你如何本地安装 EOS。
EOSIO 版本
Beginning build version: 1.2
2018 年 4 月 9 日 星期一 06 时 13 分 18 秒 UTC
git head id: 124c62d0e1b3974bcd551b885518ff05301b39c9
Current branch: * master
ARCHITECTURE: Darwin
系统环境
OS name: Darwin
OS Version: 10.13.4
执行构建脚本123$ git clone https://github.com/eosio/eos --recursive$ cd eos$ ./eosio_build.sh
出现如下信息,表示构建成功:
验证1$ /usr/local/bin/mongod -f /usr/local/etc/mongod.conf & cd /Users/wangwei/eos/build; make test
测试结果:
1234567891011121314151617181920212223242526 ...
Netty 新连接接入与 NioSocketChannel 分析
前面的一些章节,我们分析了 Netty 的三大组件 —— Channel 、EventLoop、Pipeline ,对 Netty 的工作原理有了深入的了解。在此基础上,我们来分析一下当 Netty 服务端启动后,Netty 是如何处理新连接接入的。
Netty 版本:4.1.30
本文内容主要分为以下四部分:
新连接检测
NioSocketChannel 创建
NioSocketChannel 初始化与注册
NioSocketChannel 注册 READ 兴趣集
新连接检测前面,我们在讲 EventLoop 的启动过程源码分析 时,解读过下面这段代码:
1234567891011121314151617181920212223242526public final class NioEventLoop extends SingleThreadEventLoop { ... private void processSelectedKey(SelectionKey k, AbstractNioChannel ch) { ...
Netty Pipeline 源码分析 (2)
前面 ,我们分析了 Netty Pipeline 的初始化及节点添加与删除逻辑。接下来,我们将来分析 Pipeline 的事件传播机制。
Netty 版本:4.1.30
inBound 事件传播示例我们通过下面这个例子来演示 Netty Pipeline 的事件传播机制。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465public class NettyPipelineInboundExample { public static void main(String[] args) { EventLoopGroup group = new NioEventLoopGroup(1); ServerBootstrap strap = new ServerBootstrap(); strap.group(group) ...
Netty Pipeline 源码分析 (1)
前面,我们分析了 Netty EventLoop 的 创建 与 启动 原理,接下里我们来分析 Netty 中另外两个重要组件 —— ChannelHandler 与 **Pipeline**。Netty 中 I/O 事件的传播机制均由它负责,下面我们来看看它是如何实现的。
Netty 版本:4.1.30
我们前面在讲 Channel 创建 时,在 AbstractChannel 的构造函数中, 一笔带过地提到了 Pipeline,现在我们来深入分析一下它的原理。
概述Netty channel lifecycle前面,我们在分析 Netty channel 源码时,分析了 Channel 的创建、初始化、注册、绑定过程。在 Netty 中,channel 的生命周期如下所示:
ChannelRegistered:Channel 注册到了 EventLoop 上
ChannelActive:Channel 激活,连接到了远程某一个节点上,可以收发数据了
ChannelInactive:断开连接
ChannelUnregistered:Channel 从 Even ...
Netty NioEventLoop 启动过程源码分析
前面 ,我们分析了 NioEventLoop 的创建过程,接下来我们开始分析 NioEventLoop 的启动和执行逻辑。
Netty 版本:4.1.30
启动在之前分析 Channel 绑定 的文章中,提到过下面这段代码,先前只讲了 channel.bind () 绑定逻辑,跳过了 execute () 接口,现在我们以这个为例,开始分析 NioEventLoop 的 execute () 接口,主要逻辑如下:
添加任务队列
绑定当前线程到 EventLoop 上
调用 EventLoop 的 run () 方法
1234567891011121314151617private static void doBind0( final ChannelFuture regFuture, final Channel channel, final SocketAddress localAddress, final ChannelPromise promise) { // 通过eventLoop来执行channel绑定的Task ch ...
Netty NioEventLoop 创建过程源码分析
前面 ,我们分析了 Netty 中的 Channel 组件,本篇我们来介绍一下与 Channel 关联的另一个核心的组件 —— EventLoop。
Netty 版本:4.1.30
概述EventLoop 定义了 Netty 的核心抽象,用于处理网络连接生命周期中所有发生的事件。
我们先来从一个比较高的视角来了解一下 Channels、Thread、EventLoops、EventLoopGroups 之间的关系。
上图是表示了拥有 4 个 EventLoop 的 EventLoopGroup 处理 IO 的流程图。它们之间的关系如下:
一个 EventLoopGroup 包含一个或多个 EventLoop
一个 EventLoop 在它的生命周期内只和一个 Thread 绑定
所有由 EventLoop 处理的 I/O 事件都将在它专有的 Thread 上被处理
一个 Channel 在它的生命周期内只注册于一个 EventLoop
一个 EventLoop 可能会被分配给一个或多个 Channel
EventLoop 原理下图是 Netty EventLo ...