5 hello2mao

尚未进行身份认证

https://hello2mao.github.io

等级
TA的排名 3w+

预言机(Oracle)

一、概述受限于区块链的共识模型,智能合约只能调用内部合约,无法直接与外部系统进行交互。将智能合约与外部系统打通,有助于区块链技术更进一步扩展应用场景。区块链预言机(Oracle)是区块链与外部世界交互的一种实现机制,它在区块链与外部世界间建立一种可信任的桥接机制,使得外部数据可以安全可靠地进入区块链。1.1、为什么需要区块链上的智能合约和去中心化应用(Dapp)对外界数据拥有交互需求当智...

2019-07-17 09:51:00

解析Solidity预编译合约的实现

在Solidity中存在很多预先编译好的合约(或者说是方法)可供调用,例如sha256、keccak256等,本文简单分析下其实现逻辑。例如有如下测试合约,在测试合约内调用sha256:pragmasolidity^0.4.24;contractSha256Test{uint256time=123;eventhashResult(bytes32);...

2019-02-14 10:06:40

解析Quorum -- 摩根大通的企业级区块链解决方案

概述架构隐私性方案概述案例一案例二实现细节Quorum组件Tessera组件共识算法RaftLifecycleofaTransactionBlockRaceSpeculativeMintingIBFT节点的许可管理更高的性能TPS测试参考概述Quorum是基于以太坊的Golang实现go-ethereum开发...

2019-02-13 14:38:35

Kubernetes:从Cloud Provider到Cloud Controller Mananger全解析

Kubernetes是一个云原生平台,但为了让Kubernetes能够更好的运行在公有云平台上,能够灵活的使用、管理云上其他的基础资源和基础服务,云厂商需要实现自己的适配器。本文详细解读了Kubernetes从CloudProvider到CloudControllerMananger的演变过程及其实现细节,希望有助于大家更好的在公有云平台上构建基于Kubernetes的容器服务。

2018-08-08 21:54:25

Android okhttp3 底层网络实现解析

一、概述okhttp3是Android应用层开发最常用的网络库之一,本文详细追踪解释okhttp3底层网络的实现,从DNS=>TCP=>SSL。二、总目录(Androidokhttp3DNS底层实现追踪(一))[https://blog.csdn.net/hello2mao/article/details/53158520](Androidokhttp3DNS...

2018-07-29 13:59:21

Ethereum-ERC721智能合约和Dapp实践--以太猫CryptoKitties的简单实现

一、概述二、设计目标三、游戏界面四、游戏系统设计4.1交易系统4.1.1帐号4.1.2产品4.1.3买卖交易4.2繁育系统4.3对战系统4.4喂养系统4.5升级系统五、合约设计5.1合约关键细节5.1.1产品数据结构5.1.2DNA属性5.1.3繁育&喂养5.1.4对战5.1.5升级一、概述...

2018-07-27 17:21:52

【笔记】大规模Kubernetes集群的Service性能优化

一、Ref二、k8s的Service与Endpoint三、iptables实现Service负载均衡3.1iptables介绍3.2iptables实现流量转发与负载均衡3.3iptables在kubernetes中的应用举例四、当前iptables实现存在的问题一、Ref【1】华为云在K8S大规模场景下的Service性能优化实践【2】PPT...

2018-05-24 13:12:21

Kubernetes cluster-autoscaler 解析

CA(cluster-autoscaler)是用来弹性伸缩kubernetes集群的。我们在使用kubernetes集群经常问到的一个问题是,我应该保持多大的节点规模来满足应用需求呢?cluster-autoscaler的出现解决了这个问题,它可以自动的根据部署的应用所请求的资源量来动态的伸缩集群。

2018-05-23 14:37:22

以太坊的硬分叉

1.太坊中的硬分叉是什么?硬分叉是一种对以太坊底层协议的改变,为了升级系统来建立新的规则。所有的以太坊客户端都需要被升级;不然他们会被困在一条不被兼容且遵循旧协议的老链。区块链系统的去中心化特性使得硬分叉升级变得困难。在一条区块链中进行硬分叉需要整个社区的合作与沟通,同时也需要各个以太坊客户端的开发者们进行合作,使得整个分叉过程变得流畅。2.作为一个用户,需要做些什么?下载最新版本的以...

2018-05-22 22:26:11

以太坊的难度(Difficulty)计算

一、什么是难度难度(Difficulty)一词来源于区块链技术的先驱比特币,用来度量挖出一个区块平均需要的运算次数。难度(Difficulty)通过控制合格的解在空间中的数量来控制平均求解所需要尝试的次数,也就可以间接的控制产生一个区块需要的时间,这样就可以使区块以一个合理而稳定的速度产生。当挖矿的人很多,单位时间能够尝试更多次时,难度就会增大,当挖矿的人减少,单位时间能够尝试的次数变...

2018-05-22 22:21:16

从源码解析以太坊地址的生成过程

一、获得一个以太坊钱包地址通过以太坊命令行客户端geth可以很简单的获得一个以太坊地址,如下:[work@host]$gethaccountnewINFO[05-22|10:17:57]MaximumpeercountETH=25LES=0total=25Yournewaccountislockedwith...

2018-05-22 11:38:12

为k8s集群的节点预留计算资源

一、需求Kubernetes版本:v1.8.6原因:默认情况下pod能够使用节点全部可用容量。如果用户pod中的应用存在异常,例如疯狂占用内存,那么这些pod将与node上的系统守护进程和k8s组件争夺资源并导致节点资源短缺,从而产生nodenotready问题。二、解决方案:NodeAllocatablekubeletNodeAllocatable用来为Kub...

2018-05-08 15:53:58

以太坊智能合约的安全问题

一、背景本周基于ERC20的BEC和SMT出现重大漏洞:(1)4月22日,BEC出现异常交易情况,从短短两天之间,65亿市值迅速归零,一夜之间倾倒。(2)4月25日,SMT遭到与BEC类似溢出攻击,凭空产生了无限量的SMT代币。这两次攻击都是利用了智能合约中的溢出漏洞。来自新加坡和英国的几位研究者表示,他们采用某工具分析了近100万个智能合约,其中3.42万个存在漏洞,有236...

2018-04-26 14:48:20

在主网上部署和调用以太坊智能合约

一、概述在主网上部署和调用以太坊智能合约主要分为以下几步:(1)连接主网(2)部署合约(3)调用合约二、连接主网通过运行在主网中的节点所提供的RPC连接主网。使用geth命令在本地运行一个连接主网的全节点,geth会尝试持续连接网络上的节点直到找到一个对等体,如果节点运行在一台面向互联网的服务器上,那么节点也会接受来自其它节点的连接请求。需要暴露部分管理API以供合...

2018-04-25 09:56:41

NAT

一、概述NAT(NetworkAddressTranslation,网络地址转换)是将IP数据包头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用IP地址空间的枯竭。二、DNAT和SNATDNATDestinationNetworkA...

2018-04-17 21:30:19

理解以太坊上的代币

一、代币的深层含义如果你对以太坊的世界有一些了解,你很可能听过人们聊到代币——尤其是ERC20代币.一个代币在以太坊基本上就是一个遵循一些共同规则的智能合约——即它实现了所有其他代币合约共享的一组标准函数,例如transfer(address_to,uint256_value)和balanceOf(address_owner).在智能合约内部,通常有一个映射,m...

2018-04-11 16:33:22

Solidity生成随机数及其安全性

一、概述使用Solidity编写合约的时候,难免需要随机数,本文记录一种简单的方法,同时也看到此方法存在安全方面的问题。二、随机数简单生成法使用keccak256哈希函数。//生成一个0到100的随机数:uintrandNonce=0;uintrandom=uint(keccak256(now,msg.sender,randNonce))%100;...

2018-04-11 14:40:21

区块链词汇表

51%攻击当加密货币网络中超过一半的计算能力由一个单一个体或群组所控制时,如果该个体或群组有恶意的话,他们可能会发出一些相矛盾的交易来破坏网络。地址在网络上发送或接收交易。一个地址通常是以一串字母数字字符的形式呈现。专用集成电路ASIC是‘专用集成电路’的简称。通常,与图形处理器(GPU)相比,ASIC专门用于挖矿,且可能会大大节约能源。比特币比特币是在全球...

2018-04-11 14:03:19

使用Helm在k8s集群上部署以太坊私有链

一、概述二、部署流程三、问题记录四、部署检查五、参考一、概述使用k8s官方的包管理工具helm部署以太坊私有链并启动三类节点和一个前端服务:bootnode:usedforGethnodediscoveryethstats:EthereumNetworkStatsgeth-miner:Gethminernodesgeth-tx:...

2018-03-30 00:38:39

Hyperledger Fabric v1.1.0 macOS部署开发者环境并创建第一个Fabric网络

一、安装所需软件1.1安装curlbrewinstallcurl1.1安装Docker下载并安装DockerforMac:Docker.dmg1.2安装Golang1.安装gobrewinstallgo2.设置GOPATHexportGOPATH=$HOME/goexportPATH=$PATH:$GOPATH/b...

2018-03-19 22:41:26

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取