自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JIYILANZHOU的专栏

书山有路勤为径,学海无涯苦作舟。

  • 博客(69)
  • 资源 (10)
  • 问答 (2)
  • 收藏
  • 关注

原创 P::ACCURACY.saturated_into() Error

error[E0282]: type annotations needed --> /Users/lanzhou/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9 |541 | let accuracy = P::ACCURACY.saturated_into(); |

2021-02-23 17:55:00 308

原创 去中心化跨链之双层网络

目前跨链的方案较多,哈希锁定和见证人跨链的去中心化程度不够,很少被人采纳。越来越多的人开始研究中继的跨链,目前不管是波卡的XCMP还是IBC都在开发当中,经过我们将近一年的学习,也设计了一种中继的跨链方案,不需要中继程序和RPC,所有的跨链消息经过P2P的Gossip广播。跨链的原理都是差不多的,可以反复对比学习,希望对你有所帮助。文章将从3个方面讲解中继跨链的实现双层网络的交互轻节点校验和交易证明合约的锁定和铸币两个链用了相同的启动程序, 是在以太坊最新代码的基础上修改的,每个节点都会连.

2020-12-03 16:05:32 373 1

原创 MAP开源协议的网络部分

通用的区块链节点通讯协议  现有的区块链底层节点发现以及数据传输算法是不互通的,比特币的节点是无法直接和以太坊的节点通过p2p节点发现算法找到彼此并建立TCP连接的。但是,我们的MAP协议需要所有的区块链P2P网络可以相互沟通,因此,我们需要一个统一的标准化的p2p通讯协议。而ProtocolLab提出的libp2p协议正好可以满足我们的需求,libp2p是一个以p2p网络构建的基础模块。它高度抽象了主流的传输协议,使得应用层构建时完全不必关心底层的具体实现最终实现跨环境,跨协议的p2p节点互联。目前

2020-09-09 14:51:39 546

原创 V神支持truechain拥抱Layer 2,为DeFi生态提供计算

目前DeFi生态很热,以太坊GAS费长期高居不下,动辄上百元的转账费让人生畏。这边风景独好,那边在18年公链竞赛中的以太坊杀手纷纷落莫。号称高TPS却无人问津就如同现实生活中都知道宝马而知道宝来的却很少。truechain经过了一系列迭代后充分认识到了这个问题,只有立足于解决以太坊上存在的问题才能发展。 在经过长时间的调研推出了新的路线图,将全新设计Optimistic RollUP,在服务true主网正常业务的同时全面拥抱以太坊Layer 2,为2层带来基于混合共识的安全保证和超高...

2020-09-03 15:25:14 549 1

原创 go实现Uniswap本地部署和节点部署

go实现Uniswap本地测试和节点部署前段时段用remix部署uniswap,步骤挺繁琐而且remix占用内存较大,很容易崩溃,并且不能自动化部署,网上js调用合约的很多,go的却很少,自己动手写了一个当练手了。Go的优势本地可构造链,不需要找水龙头获取测试币无需找RPC节点debug测试方便,其实也很挺麻烦的编译sol生成Go文件可能麻烦点部署流程总共需要发起6笔合约交易。部署WETH合约代币合约Uniswap工厂合约Uniswap RouterV2合约代币合约授予A

2020-08-31 10:10:57 1241

翻译 Ethereum 2.0阶段0 -- 信标链官方文档

介绍本文档描述了Ethereum 2.0第0阶段——信标链的规范。以太坊2.0的核心是一个被称为“信标链”的系统链,信标链存储和管理验证人的注册。在Ethereum 2.0的初始部署阶段,成为验证人的唯一机制是在Ethereum 1.0上发起单向ETH交易到质押合约里面。当信标链处理Ethereum 1.0存款收据,达到激活余额,并完成排队处理时,验证人将会激活。自愿退出或是对不当行为的惩罚而强制退出,信标链上的主要负载来源是证明(attestations)信息,证明(attestations)对于

2020-08-10 00:16:47 497

原创 基于以太坊的秘钥管理服务

之前做了一个秘钥管理工具,整理下方便以后查询功能点服务端RPC API 5种方法注册派生更新dapp更新账户查看账户信息Ecsda加密临时会话HD派生账户多Root管理员Root管理多DappDapp管理多账户访问日志管理LevelDb存储私钥管理客户端RPC 签名交易临时Ecsda公钥加密多次签名AES加密服务端注册./main --key key --rpcport 8985 --root "0x0EB4d5C43e894B42aaE58D.

2020-08-07 11:20:30 532 1

原创 以太坊网络爬虫,让区块链不在神秘

之前一直听说黑客RPC盗币,觉得挺有意思的,最近也体验了一下。这个Bug最新版的geth客户端已经没有,Http调用解锁账户早已被禁掉,以太坊Holder不需要担心。写这篇文章是想让区块链充满趣味性,不再是核心开发者中晦涩的代码,给区块链培训机构提供些建议,不要整天讲demo。目前以太坊网络中夹杂着很多其他链的节点信息,由于很多公链基于以太坊二次开发,没有修改p2p参数,导致节点信息污染了真实的以太坊节点。通过devp2p节点发现拿到的节点数据,通过查询network ID,有很大一部分不属于以太坊网.

2020-08-03 18:51:14 1158

原创 在以太坊P2P网络中寻找Dapp服务节点

Dapp服务节点即开启了RPC的以太坊节点,对于钱包来说,只需要能把用户签名的交易发送出来,自己搭建节点和使用别人的节点发送数据是一样的,目前不管是快速同步还是轻节点都需要好长时间才可以达到可用的要求,为此很有必要通过P2P网络查找可用的RPC节点。此文主要介绍如何从分布式网络中获取节点,然后尝试RPC连接,连接上后做chainId和networkId判断,尝试获取多个和以太坊主网一致的节点做备用服务节点。P2P这两个模块最先接触到的是P2P,记的那时候对区块链只是了解皮毛,有个面试官问了我什么是.

2020-07-28 21:59:49 450

原创 如何成为以太坊2.0 Witti测试网上的验证节点

如何成为以太坊2.0 Witti测试网上的验证节点如果你熟悉命令行,那么在Witti多客户端测试网上运行一个lighthouse验证节点将非常容易。Lighthouse可在Linux,MacOS和Windows上运行,也拥有Docker工作流,使部署变得非常简单。获取Goerli测试币Görli Testnet 是首个权威证明的跨客户端测试网络,由社区建立,其诞生于 2018 年 9 月的 ETHBerlin 期间,于 2019 年 1 月 31 日在柏林的 GörliCon 上发布在安装L

2020-07-25 16:10:07 849 2

原创 Rust基本语法整理(三)

通道的发送端有一个 send 方法用来获取需要放入通道的值。send 方法返回一个 Result<T, E> 类型,所以如果接收端已经被丢弃了,将没有发送值的目标,所以发送操作会返回错误。在这个例子中,出错的时候调用 unwrap 产生 panicrecv,它是 receive 的缩写。这个方法会阻塞主线程执行直到从通道中接收一个值。一旦发送了一个值,recv 会在一个 Result<T, E> 中返回它。当通道发送端关闭,recv 会返回一个错误表明不会再有新的值到来了try_

2020-07-25 16:07:57 783

原创 在以太坊上如何实现联盟链

搞了两三个月联盟链,基本上算是告一段落,大概梳理下所做的东西,希望能对要做联盟链的人有所帮助。在写这篇文章前,简单介绍下联盟链的功能。国密和国际算法切换参数toml配置有币无币支持gmsslp2p的证书准入委员会成员更新solc编译器tendermint共识权限准入交易校验rpc api状态存储系统合约加密算法国密和S256,P256支持国密sm2,sm3,sm4,国际的支持p256,比特币和以太坊都使用的s256.刚开始做的时候计算支持p256和国密,因为go .

2020-07-23 23:04:02 1884 2

原创 波卡发币的一些想法

由于波卡中继链不支持部署合约,部署合约只有2中可能。在波卡合约平行链上部署智能合约搭建平行链接入波卡在波卡合约平行链发布合约较简单,只需合约平行链上线后即可部署,不需要竞拍插槽。搭建平行链会慢一点,需要竞拍插槽,较繁琐。在波卡平行链部署合约Ink合约安装 cargo contract 插件$ cargo install cargo-contract --vers 0.6.1 --force合约编译metadata 生成上传 WASM部署合约ERC20 合约执行查询发行总量

2020-07-20 16:59:50 644 3

原创 FileCoin启动Lotus本地测试网

启动本地Devnet测试本地环境为mac在调试模式下构建Lotus二进制程序,这可以使用2048个字节的扇区大小来启动本地网络。make 2k执行结果如下rm -f lotusgo build -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.c4de2373.dirty" -tags=2k -o lotus ./cmd/lotusgo run github.com/GeertJohan/go

2020-07-19 22:00:14 2440 1

原创 区块链的几大模块

共识的分类POWPOW的一般理解根据难度做SHA256哈希运算, 不停寻找Nonce特定的HASH 前导0的个数越多,代表难度越大优点是难于计算,一旦收到网络上的区块,能快速验证难度算法按高度动态调整,维持出块时间不变POW规范链POW易分叉,本地存储所有分叉区块CanonicalChain维护HASH和Number对应关系,标记最长链当收到区块难度比本地高时,会发生区块回退reorg,执行块的交易,状态更新POSPOS权益证明POW耗费电力,提高出块时

2020-07-11 11:59:13 939

原创 白话区块链技术-区块链工程师大讲堂

本次大讲堂为清华大学互联网产业研究院制作的公益课程,内容分为八期,每月一期 , 分别从区块链基础,区块链实践,区块链底层主网开发,区块链 android/iOS 开发,前端基于 web3taijs 开发实践,服务端与链交互与安全,如何构造企业级区块链应用,区块链应用实战–存证等区块链的定义 区块链是借由密码学串接并保护的串联文字记录又称区块,每一个区块又包含前一个区块的加密散列,时间戳以及交易数据(通常是默克尔树Merkle tree),区块链技术所串接的分布式账本,记录两方有效交易,且可永久查验此.

2020-07-07 11:56:42 405 1

原创 泰岳链使用rust-libp2p实现节点同步(二)

在阅读本篇之前, 请先查看泰岳链使用rust-libp2p实现节点同步(一)新区块缓存同步的启动策略一般是当本地高度和对方节点上链高度相差一定高度常量,才会启动。想象一下,握手时对方高度是100,当你同步完这些区块时,对方节点已经到120了,对方发送的区块121,收到后是无法上链的,而同步高度常量是50,只能等到150才能再次启动同步。解决这个问题需要引入区块缓存。新区块gossip通知每产生一个区块,区块生产者都会通过gossip发送到订阅这个topic的节点,gossip为libp2p.

2020-06-19 20:02:40 508

原创 以太坊2.0客户端(Prysm,lighthouse)安装体验

以太坊2.0最新的测试网里面,这两个客户端的受众最多,下面是我的一些安装和代码体验。Lighthouse安装首先体验了Lighthouse的安装,Lighthouse是基于Rust开发的,可查看下面官方提供的文档LightHouse官方安装指南Windows上安装Rust在win上面安装比在Linux下面麻烦很多,经历了如下操作。Download and install “Build Tools for Visual Studio:”You can get it at this link.

2020-06-17 18:58:17 1273 2

原创 基于泰岳链实现Tendermint POS的细节 (二):换届

对于公有区块链来说,由于委员会成员会更迭,自然会有成员的退出和更新,本文介绍的是一种POS的实现,委员会之间的通信使用Tendermint,普通节点使用devp2p会存在两个p2p连接。这是基于上一篇基于以太坊实现Tendermint POS的细节 (一):选举写的,没看的可以了解下。PBFT Server初始化初始化本地配置端口IP私钥agent为Tendermint和应用协议的桥梁。func (s *Taiyuechain) startPbftServer() error { .

2020-06-12 16:44:25 233

原创 基于泰岳链实现Tendermint POS的细节 (一):选举

对于公有区块链来说,由于委员会成员会更迭,自然会有成员的退出和更新,本文介绍的是一种POS的实现选举成员的产生可以通过随机数生成如ETH2.0通过从POW矿工中寻找满足一定算力的成员 混合共识通过Balance质押量选择排行前20的成员获取委员会信息选举出了委员会成员后,一般只知道它的公钥,并不知道它的IP和端口,如何实现委员会成员之间的互联呢。//CommitteeNode contains main info of committee nodetype CommitteeNod.

2020-06-12 12:23:34 313

原创 p2p节点连接中的秘钥交换RLPX (代码篇)

不了解RLPX的可以查看上篇博客。p2p节点连接中的秘钥交换RLPX (理论篇)秘钥共享第一阶段发起方发消息:发起方(initiator)使用自己的私钥Prv和对方的公钥remotePub(这个公钥从enode中获取)生成一个静态共享私密(token)。token是由本地私钥和对方公钥扩展而成的椭圆曲线上的点做有限域标量乘积得到(与私钥产生公钥的过程类似). _, err := rand.Read(h.initNonce) // Generate random keypair t.

2020-06-05 14:12:49 571

原创 p2p节点连接中的秘钥交换RLPX (理论篇)

p2p秘钥交换中使用了ECDHE,下面我将介绍一些概念,并配上代码实现。Diffie-Hellman`秘钥交换协议迪菲-赫尔曼密钥交换(英语:Diffie–Hellman key exchange,缩写为D-H) 是一种安全协议,是Whitefield Diffie和Martin Hellman在1976年公布的一种在公共信道中安全交换秘钥的密钥协商算法,,不是加解密算法,目的在于使两个用户安全的交换一个共享秘钥,用于两边通讯报文的加密. 双方在没有对方任何预先信息的情况下,能够在不安全的信道上建立.

2020-06-05 13:13:10 677

原创 国密算法合约EVM debug之旅

项目中用到了国密算法,改了hash的成功方法,用solc编译器编译合约代码,执行失败,找了好长时间发现了原因。首先部署合约是没问题的,合约执行方法的时候不成功,后面发现是交易input中的add方法签名和用以太坊solc编译出来的方法签名不一致,合约执行过程中找不到方法,交易执行失败solidity源码如下pragma solidity ^0.6.4;contract C { uint256 a; constructor() public { a = 1; .

2020-05-29 19:30:37 775

原创 Rust基本语法整理(二)

整理来自Rust中文 . 通用集合类型,到构建命令行程序.已经看了第二遍,知识点还是容易忘记,整理记录一下,方便查阅.Rust中文vector 是用泛型实现的,实例化时必须制定类型,一个类型注解,如果在编写程序时不能确切无遗地知道运行时会储存进 vector 的所有类型枚举技术就行不通了。相反,你可以使用 trait 对象match v.get(2) { Some(thir...

2020-03-26 15:08:45 924

原创 Rust基本语法整理一

整理来自Rust中文前几章节,到包、Crates与模块.已经看了第二遍,知识点还是容易忘记,整理记录一下,方便查阅.Rust中文x.0;元祖let a: [i32; 5] = [1, 2, 3, 4, 5];fn关键字表达式和语句 表达式用于返回值,无冒号因为 if 是一个表达式,我们可以在 let 语句的右侧使用它栈中的所有数据都必须占用已知且固定的大小已实现COPY字符串字...

2020-03-22 15:55:41 538

原创 以太坊源码解析-(1) 公钥私钥地址字符串公钥推导

做了2年公链开发,分享一些项目经验,希望对你有帮助.私钥账户是以太坊基础.生成私钥//生成私钥    key, err := crypto.GenerateKey()    if err != nil {        t.Fatalf("failed Genera...

2020-03-20 21:45:15 1332

原创 Go调用以太坊合约和在测试用例中调用合约

首先使用npm下载solcnpm install -g solc这个主要是编译solidity文件生成对应的ABI和ABI BIN。如果使用这个需要到remix上面生成。pragma solidity ^0.6.0; library SafeMath { function sub(uint256 a, uint256 b) internal pure returns (...

2020-01-16 11:29:45 1703 2

翻译 ETH2.0 Serenity中网络的详细介绍

以太坊第四阶段Serenity中网络的概述特别感谢Hsaio-Wei Wang、Kevin Mai-Hsuan Chia、John Adler的编辑和有价值的反馈。在分片区块链中网络是一个难题,我们如何把分片区块链设计和构建成可扩展的安全点对点网络?截至本文撰写之时,尚未有分片区块链系统部署在生产中,因此,我们在如何设计此类P2P网络方面没有先例。这是目前以太坊2.0面临的一个设计问题。这...

2019-11-21 17:33:13 446

翻译 以太坊节点发现协议 DEVP2P V5

节点发现协议v5欢迎使用节点发现协议v5规范!请注意,本规范正在进行中,可能会在未事先通知的情况下发生不兼容的更改。节点发现是在对等网络中查找其他参与者的系统。该系统可以被任何节点使用,用于任何目的,除了运行网络协议和存储有限数量的其他节点的记录外,无需任何费用。任何节点都可以用作网络的入口点。该系统的设计灵感来源于Kademlia DHT,但与大多数dht不同,它不存储任...

2019-09-28 19:29:45 1152

原创 以太坊p2p和轻节点light

https://github.com/fjl  以太坊p2p核心开发者Felix Langehttps://github.com/fjl/p2p-drafts   p2p设计草稿discv4.md      Node Discovery Protocol v4discv4-enr-extension.md   enr为了实现DNS服务,和兼容libp2psharding-works...

2019-01-05 15:29:42 1125

原创 EIP155Block 防重放攻击

// ChainConfig is the core config which determines the blockchain settings.//// ChainConfig is stored in the database on a per block basis. This means// that any network, identified by its genesis...

2018-08-28 11:52:13 2121

原创 golang timer使用

package mainimport ( "time" "fmt")func main() { //创建3s的 timer timer := time.NewTimer(3 * time.Second) earliest := time.Now() go func() { //2s超时后打印时间 select { case &lt;-timer...

2018-08-01 17:04:37 405

原创 以太坊源码解读 资料整理

github上面最全的以太坊源码解读https://github.com/ZtesoftCS/go-ethereum-code-analysis写的比较专业,p2p相关的有点少https://blog.csdn.net/teaspring https://blog.csdn.net/turkeycock写network中fetcher写的不错,download有点含糊h...

2018-08-01 10:45:57 286

原创 读 数据的呈现和组织,缓存和更新 笔记

能理解的简单记了一下若以Block作切割,那么Transaction和Contract就是更小的粒度;所有交易或操作的结果,将以各个个体账户的状态(state)存在,账户的呈现形式是stateObject,所有账户的集合受StateDB管理Root:StateDB中的“state Trie”的根节点的RLP哈希值。Block中,每个账户以stateObject对象表示,账户以Address...

2018-07-26 16:04:21 384

原创 读区块和交易,合约和虚拟机 笔记

读文章第二遍大致笔记, [以太坊源代码分析] I.区块和交易,合约和虚拟机tx 的转帐转出方地址确实没有如转入方一样被显式的声明出来,而是被加密隐藏起来了,在Ethereum里这个转出方地址是机密,不能直接暴露。这个对tx加密的环节,在Ethereum里被称为签名(signEthereum 里用stateObject来表示一个账户Account,这个账户可转帐(transfer value...

2018-07-26 11:14:21 255

原创 go语言实现链表

声明结构体//声明全局变量,保存头结点var head *Nodevar curr *Node//声明节点类型type Node struct { //数据域 Data string //地址域 NextNode *Node}//创建头结点func CreateHeadNode(data string) *Node { var node *Node = new(Node)...

2018-05-18 11:34:40 524

原创 geth搭建私有链,remix连接出现的问题

首先使用单引号geth --datadir ./data/00 --networkid 314590  --port 61910 --rpc --rpcapi 'web3,eth,debug' --rpccorsdomain '* --rpcport 8200 console使用remix无法连接然后换成双引号geth --datadir ./data/00 --networkid 314590 ...

2018-03-17 19:25:13 2252

原创 truffle出体验

第一次使用,按照网上教程出现出现错误.Error: `truffle init` no longer accepts a project template name as an argument.- For an empty project, use `truffle init` with no arguments- Or, browse the Truffle Boxes at &amp;lt;...

2018-03-08 23:27:32 1240 1

原创 Android RenderScript高斯模糊

今天看代码的时候,看到了其中有.rs结尾的文件,不是很明白,还有RenderScript类,看的一脸蒙蔽,不知所云,然后百度了一下,收货还真不少,这东西在图形处理这块用处挺大的。             今天先说说ScriptIntrinsicBlur,这个类不需要定义rs文件,从这个Intrinsic单词可以看的出来,它是API17以后内置的类,专门用来处理图像的,让图片变模糊。

2016-11-19 00:45:36 745

原创 android框架揭秘之Java服务学习笔记

Java应用程序服务 由Activity Manager Service进行管理FooManager 是包装类,用来获取FooService的IFooService.aidl会自动生成IFooService.Stub和IFooService.Stub.ProxyBinderProxy相当于BpBinder 通过JNI到BpBinder  Binder相当于BBinder通过JavaBB

2016-07-30 23:34:41 762

深入理解Android 卷I

深入理解Android 卷I.pdf.

2016-04-13

Android技术内幕.系统卷杨丰盛

Android技术内幕.系统卷,这个挺不错的

2016-04-12

Android内核剖析》柯元旦

Android内核剖析》柯元旦,这本书很不错

2016-04-12

ANDROID的设计与实现(卷1)

ANDROID的设计与实现(卷1),绝对真实,无私奉献给大家

2016-04-12

Android框架揭秘

Android框架揭秘,这本书还是挺不错的,虽然有点旧了

2016-04-12

Android权威编程指南源码

Android权威编程指南源码下载

2016-04-10

Android编程权威指南高清

Android编程权威指南高清,听说很不错

2016-04-09

xutils资源包jar包和例子

xutils httputils bitmaputils dbutils viewinject

2015-06-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除