区块链
文章平均质量分 67
昂刺鱼人工智能
人工智能改变金融,微信公众号:freeinvest
展开
-
go-ipfs命令详解之id、ping
本文介绍两个涉及网络的比较简单的命令,分别是id和ping。ipfs id <peerID> 展示ipfs节点id信息选项-f,有如下五个值,分别是:<id> 节点id<aver> 客户端版本<pver> 协议版本<pubkey> 公钥<addrs> 地址 ipfs ping <peerID> 向某个节点发送响应原创 2018-06-11 21:21:06 · 1568 阅读 · 0 评论 -
常见的区块链共识机制
在区块链网络中,记录的信息一般都是些有价值的交易信息,涉及到经济利益,所以会出现拜占庭节点。拜占庭节点指的是那些恶意篡改数据或者散播假消息的节点。为什么叫拜占庭节点呢。话说中世纪的时候,有个帝国叫拜占庭帝国,就是现在的土耳其那,拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久。但拜占庭城防坚固,兵精粮足,没有一个单独的邻邦能够成功入侵,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。那么问题是...原创 2018-08-13 14:32:54 · 1986 阅读 · 0 评论 -
以太坊的共识机制
在开始之前,我们补充一点基础知识。 第一个概念是哈希。简单理解,哈希是一个函数。它的作用是将任意长度的数据作为输入,转变为固定长度的一个字符串作为输出。这个函数有两个主要特点:过程不可逆 对输入做微小改动,输出就会完全不一样。哈希函数有好多种,但都满足上面的特点。几乎任何加密货币都会用到哈希算法,以太坊采用的哈希算法是ethash算法。 第二个补充知识是,以太坊的区块结构。...原创 2018-08-13 14:50:49 · 11213 阅读 · 0 评论 -
以太坊无效区块
以太坊的出块时间控制在10-19s之间,为什么是这个数而非其他数值呢?为什么要让时间差恒定,而不让难度值恒定呢? 我们假设难度值恒定的话,那么在网络算力充足的时候,很幸运,很快就会有电脑发现满足要求的随机数,用户的交易确认就会很快。但当网络算力不足的时候,找到那个对的随机数就会需要较长的时间,那么用户也需要等待较长的时间来确定交易。这类系统延迟不确定的特点肯定很难受到用户的青睐,因为用户总...原创 2018-08-19 20:43:14 · 4004 阅读 · 0 评论 -
S/Kademlia:实现安全Key路由的可行方法
摘要安全性是完全分散式P2P系统中的常见问题。 尽管关于如何创建一个安全的基于Key的路由协议存在几点建议,但一个可行的方法仍然无人参与。 在本文中,我们介绍一种基于Kademlia的安全Key路由协议,该协议通过在多条不相交的路径上使用并行查找来抵抗常见攻击,用隐式密码来限制自由节点ID生成,并引入可靠的兄弟广播。 后者需要以安全复制的方式存储数据。 我们分析评估了我们提出的Kademlia...翻译 2018-09-25 16:18:42 · 1204 阅读 · 0 评论 -
ERC721代码详解
ERC-721是非同质化代币(Non-Fungible Token,缩写为NFT)的标准接口。ERC-721在2017年底首先被CryptoKitties游戏所使用,CryptoKitties的火爆让人们意识到了ERC-721的重要价值。ERC-721是非同质化代币,也就意味着每个Token都是不一样的,都有自己的唯一性和独特价值,当然这也就意味着它们是不可分割的,也同时具有了可追踪性。ERC-7...原创 2018-10-31 11:16:11 · 11915 阅读 · 2 评论 -
IPFS官方网关被墙?还有那么多选择,过来了解一下!
还有这么多参考网关呢,哪些在线,你一试就知道。 https://ipfs.github.io/public-gateway-checker/ 如果你也喜欢ipfs,可以扫码加入我的星球,我们一起亲密的玩耍也可以加入我刚建的QQ群71789361,里边有一些不错的学习资料供下载。个人微信:18191727...原创 2018-11-12 21:48:56 · 10048 阅读 · 1 评论 -
IPFS数据结构Merkle DAG
本文的提纲:一、Hash(哈希)二、Hash List(哈希列表)三、Merkle Tree(默克尔树)四、Merkle DAG(Merkle directed acyclic graph,默克尔有向无环图) 一、Hash(哈希)Hash是一个函数,它把任意长度的数据作为输入,映射成固定长度的输出。例如,对于数据完整性校验,最简单的方法是对整个数据做Hash运算得到固定...原创 2018-11-08 13:25:29 · 2439 阅读 · 0 评论 -
macbook/unix上配置ipfs
想要玩ipfs,第一步就是先在电脑上配置好ipfs,让我们开始吧第一步,下载安装软件。虽然ipfs官网被墙,但是别忘了还有一个源代码下载地,那就是github。打开连接后根据你电脑的配置选择对应的版本下载。一般选择amd64ipfs/go-ipfsgithub.com比如我的是amd64的,我就选择每一类的第一个连接下载。第二个三个都是验证源代码有没有被动过手脚的,当然我们从...原创 2018-11-13 19:46:09 · 740 阅读 · 0 评论 -
IPFS八层协议栈简介
根据官方的文件,我们知道IPFS有八层子协议栈,从低往高分别为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。配个网上的图。网络层,这是一个基础层,这一层的技术细节过多,并且也非常复杂,已经超出了软件编程的范围,可以将这一层理解为基础的网络设备或者是网络能力,并以此能力构建了点对点链接的基石,其中增加了加密传输,网络穿越,多链接混合等等技术。该层使用的L...原创 2018-11-26 10:55:18 · 2820 阅读 · 0 评论 -
solidity v0.5.0的重大改变
不知不觉,solidity已经走到了0.5版本,随着solidity 0.5.0 nightly build版本的面世,相信1.0版本也将在不久的将来与开发者见面.作为一个大版本更新,新版引入了很多新特性,也废弃了很多关键字,比如 .call()不仅可以获知远程调用执行成功与否,还将获得远程调用执行的返回值 ABI解码做了新的处理规范,有效防御了"短地址攻击" addre...原创 2018-12-06 14:42:53 · 774 阅读 · 0 评论 -
Solidity 中Require(), Assert(), Revert()的用法和区别
在Solidity0.4.10之前,if...throw普遍利用于判断一个条件是否满足,如果不满足则终断运行。但这throw了之后它会撤回所有的状态转变,用光你所有的gas,所以这并不是一个好的操作。之后,assert(), require(), and revert() 三个函数代替了if...throw的功能,并对gas有了更好的处理。原文章中提到的例子:if(msg.sender !...原创 2018-12-19 13:59:45 · 1838 阅读 · 0 评论 -
IPFS协议栈详解-身份层
当我们刚安装好ipfs,第一次使用的时候,我们首先得输入:ipfs init这个命令的作用我们之前讲过,就是创建一个ipfs节点,我们可以在当前目录看到一个.ipfs的文件夹,就是节点文件夹。我们可以查看该文件夹下config文件,看到节点的id和秘钥,以及节点的大小等默认属性。或者也可以通过命令:ipfs id来查看节点的id和公钥,这个节点的id(NodeId)就像我们...原创 2018-12-27 12:09:01 · 834 阅读 · 2 评论 -
Ethash DAG(以太坊ethash算法的数据集)
大家平时在玩 以太坊geth的时候,经常会看到Ethash DAG,比如“Disk storage enabled for ethash DAGs”,就是说允许Ethash DAG存储在磁盘中,那么它到底是什么东东?Ethash是PoW系统,它需要一个大约1GB的数据集,它就是DAG。这通常需要几个小时才能生成,所以我们倾向于在硬盘中存储它。希望将DAG存储在硬盘中的客户端应符合下面的规范,以便与...原创 2018-05-24 13:45:28 · 5116 阅读 · 0 评论 -
以太坊客户端加快同步的一种方法
有个EthFans 发起的星火节点计划,它组织国内对以太坊项目感兴趣的组织和个人自愿运行超级节点,我们只要将这些超级节点的信息配置到我们的以太坊中,作用就是每次我们自己的节点就能连接到配置好的这些节点上,就能明显加快同步速度。以太坊常见客户端有mist,geth等,虽然客户端多种多样,但存储数据的位置都是一样的,我们可以用--datadir选项自定义数据存储的位置,各不同的操作系统默认的存储路径如...原创 2018-05-24 14:47:40 · 3570 阅读 · 0 评论 -
go-ipfs命令详解之bootstrap
在ipfs网络中,当我们想连接到其他节点的时候,我们经历的是这样一个过程:我们先是连接到一些我们“信得过”的节点,然后再通过这些“信得过”的节点逐步去连接我们的目标节点。这些“信得过”的节点,我们叫bootstrap。Bootstrap命令就是操作这些bootstrap的。必须强调的是,新增和删除bootstrap节点要非常谨慎,你必须非常了解你正在做的操作,不然可能会导致让你连接到一些恶意节点,...原创 2018-06-12 22:11:42 · 1647 阅读 · 1 评论 -
go-ipfs命令详解之object
我们知道,在ipfs网络上大家上传的每一个文件都是一个object,它是一种DAG数据类型的对象,关于DAG我们后续会详细介绍。那今天聊的object命令就是用来与ipfs上的DAG对象进行交互的。基本格式如下:ipfs object [子命令]其中子命令有8个,分别是:1. data 输出一个对象的数据部分的原始字节,stdout 由于输出的是原始数据,所以—encoding选项不影...原创 2018-06-06 09:43:06 · 1152 阅读 · 0 评论 -
go-ipfs在windows系统上的安装
go-ipfs 是Go语言实现的ipfs的官方客户端。除此之外,还有用java,python等其他语言写的客户端版本,但目前还没有完成。通过go-ipfs可以实现绝大多数的ipfs的命令和功能,而且它是偏底层的实现,对于想了解技术原理的老铁们是很有必要学习的。那咱们就先从安装它开始。主流安装方法有三种,分别是通过预安装包安装、通过ipfs-update工具安装和通过源码安装,三种方法由易到难,视自...原创 2018-05-30 15:15:18 · 2448 阅读 · 0 评论 -
go-ipfs命令详解之swarm
在ipfs网络中,swarm是一个组件,它用于打开、监听和维持与一个节点的连接。Swarm命令就是用来操作swarm组件的。基本格式如下:ipfs swarm [子命令]其中子命令有5个,分别是:1.addrs 列出已知地址,debug时很有用 子命令local和listen用于列出本地和监听的地址。--id bool 以地址方式列出节点,缺省false2. connect <...原创 2018-06-13 21:43:20 · 3165 阅读 · 0 评论 -
go-ipfs命令详解之cat,get,ls,refs
一、Catcat命令用于显示ipfs网络中的一个文件内容,注意显示的是字节形式。格式如下:ipfs cat [选项] 文件hash选项有两个-o int显示时去掉前面的int个字节-l int 总共显示int个字节如下所示: 二、getget命令用于下载ipfs网络中的一个文件到本地。格式如下:ipfs get [选项] 文件hash选项有四个-o path本地保存路径-a 保存为.tar格式的压...原创 2018-05-31 10:10:48 · 2835 阅读 · 0 评论 -
go-ipfs命令详解之block
我们已经知道,如果上传到ipfs网络中的某个文件大小超过设定的大小(默认为256k),系统就会把这个文件分割成一个个的块(block)分开存储。block命令就是用来操作这些块的。大家要注意将这里的块和区块链中的块区别开来。Block命令格式如下:ipfs block 子命令子命令有四个get <hash>取回并显示某个块的内容,标准输出put <file>将某个文件存入一...原创 2018-06-01 14:15:43 · 1615 阅读 · 1 评论 -
go-ipfs命令详解之files
我们知道,在ipfs网络上大家上传的每一个文件都是一个object对象。那么files命令就是一个API,它把object对象当做unix文件系统格式来操作。基本格式如下:ipfs files [子命令]其中子命令有10个,其中大多数都支持—flush选项,默认是true。当你想把它设置为false的时候要特别注意,虽然能提高系统表现,但如果后台进程意外退出,有可能丢失数据。10个子命令分别是:1...原创 2018-06-09 21:05:03 · 1952 阅读 · 0 评论 -
通俗理解“回调函数”
我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。字面上的理解,回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的...转载 2018-06-24 20:42:26 · 127218 阅读 · 70 评论 -
以太坊开发完整入门篇
从入门到精通,干货篇。必读,如果你:是一个专业的程序员如果你想了解以太坊当前可以做到什么程度,通过什么,如何做到。预备知识:你需要知道区块链的概念及实现一个无需信任的电子货币的运作原理。可以先看看长版,如果你觉得太长,可以看看短版。但我还是建议,看那个长的视频。如果你是一名软件工程师,拥有软件开发的经验。能知道从系统、架构角度学一个东西,其实能倍增学习效果。如果有一周的空闲时间。好了,下面开始就不...翻译 2018-07-08 11:13:17 · 730 阅读 · 0 评论 -
IPFS协议栈详解---路由层
本文的内容是IPFS路由层,本层以接口的形式定义了路由层应该具有的能力,路由层需要支持存储内容的查找以及IPFS节点的路由查找,为了实现这个目的,可以采用DHTS,mdns,snr甚至是dns协议来,具体根据设计的需要,动态的设计和配置所采用的路由协议,比如mdns在适合在局域网中发现节点并路由数据,那么在IPFS初始化的时候,在init指令后面增加"-p local-discovery...原创 2019-08-07 15:56:18 · 733 阅读 · 0 评论