
ipfs
macrocan
这个作者很懒,什么都没留下…
展开
-
go ipfs namesys
namesysNameSystem interface// Namesys represents a cohesive name publishing and resolving system.//// Publishing a name is the process of establishing a mapping, a key-value// pair, according to naming rules and databases.//// Resolving a name is th原创 2021-04-07 14:57:26 · 338 阅读 · 0 评论 -
ipfs设计的BUG
理想ipfs宣称自己是一个基于内容寻址的去中心化存储网络,每个节点只需要存储部分数据,整个存储网络就可以运行起来。其中,内容寻址通过DHT实现,数据交换通过bitswap实现。现实简述1,每个block都需要DHT provide出去2,当文件很大时,会切割成很多个block3,DHT网络很慢,无法及时将所有block provide出去4,其它节点永远无法找到部分block详述1,在ipfs中,1个block最大为256KB,当文件超过256KB时,通过IPLD进行切割,构造出1颗Mer原创 2021-04-06 12:13:25 · 445 阅读 · 1 评论 -
go libp2p dht流程解读
运行环境版本:go-ipfs@v0.4.23 go-libp2p-kad-dht@v0.0.15本文运行两个节点,一个在ubuntu,另外一个在windows,下文用ipfs1代表ubuntu端的ipfs,用ipfs2代表windows端的ipfs。两个节点将彼此的地址添加到彼此的bootstrap中,形成由2个节点组成的测试网。两者的peerID分别为:ipfs1: QmdvR13vcQ...原创 2020-03-02 09:43:34 · 3960 阅读 · 3 评论 -
go-bitswap session初步解读
在ipfs中,当你get时,blockservice首先在自己的blcokstore寻找,如果找不到,就会启动bitswap,向网络中广播wantlist,寻找block。blockServicetype blockService struct { blockstore blockstore.Blockstore exchange exchange.Interface // If checkFirst is true then first check that a block doesn't原创 2021-03-18 11:52:13 · 286 阅读 · 0 评论 -
libp2p kad 迭代查询
描述迭代查询是libp2p kad中的关键部分,kad通过迭代查询不断逼近目标,这个目标可能是peer,可能是provider,也有可能是value。过程选取K桶中距离key最近的(最多)K个节点,将这些节点的状态置为Heard;向它们发起(并行)查询(发送FIND_NODE, GET_PROVIDERS或者GET_VALUE request),得到它们K桶中距离key最近的K个节点信息,将新得到的节点状态置为Heard,并且收集起来;判断结束条件(如下),满足其中之一即可结束;否则在所有状态为原创 2021-01-12 17:01:59 · 293 阅读 · 0 评论 -
go ipfs provider体系
go-ipfs-provider@v0.4.3interface// Provider announces blocks to the networktype Provider interface { // Run is used to begin processing the provider work Run() // Provide takes a cid and makes an attempt to announce it to the network Provide(cid.Cid原创 2020-12-10 19:50:01 · 547 阅读 · 0 评论 -
bitswap wantmanager代码解读
代码版本:go-bitswap@v0.1.11wantlist目前bitswap代码有两处用到了wantlist,一处是engine,另外一处是wantmanager。engine.ledgerMap[ID_of_other_peer].wantlist是wantlist类型,记录的是别的peer的wantlist。wantmanager.wl用于记录本节点所有session的wantli...原创 2020-03-09 22:34:51 · 421 阅读 · 0 评论 -
从bitswap学习使用libp2p
代码版本:go-bitswap@v0.1.11前言bitswapNetwork是bitswap的网络接口,负责bitswap的网络通信和dht调用,从bitswapNetwork可以知道bitswap是如何使用libp2p的。阅读本文,最好看过bitswap的代码以及了解libp2p中host、swarm、conn和stream的基础知识。如果没看过代码,那么看看主干,也能学到如何使用lib...原创 2020-03-09 18:35:23 · 1317 阅读 · 0 评论 -
ipfs pubsub代码解读
Pubsub: Publish-subscribe发布订阅模式运行环境版本:go-ipfs@v0.4.23 go-libp2p-pubsub@v0.0.3本文运行两个节点,一个在ubuntu,另外一个在windows,下文用ipfs1代表ubuntu端的ipfs,用ipfs2代表windows端的ipfs。两个节点将彼此的地址添加到彼此的bootstrap中,形成由2个节点组成的测试网。两...原创 2020-03-02 10:17:26 · 1191 阅读 · 0 评论 -
ipns实现机制解读
ipns是ipfs的域名系统。原创 2020-03-02 10:12:15 · 5356 阅读 · 0 评论 -
ipfs filestore解读
IPFS中的filestore作用类似于Git中的LFS,主要用于存储大文件,在blockstore只存储大文件的dag root,在FileManager存放文件的metadata, 避免大文件充斥blockstore,节省blockstore的空间。Git LFSLFS全称Large File System,是git用来存放大文件的地方。它有几个优点:1、在git仓库只存储了大文件的链接...原创 2020-03-02 09:41:15 · 1154 阅读 · 1 评论 -
搭建双节点挖矿的filecoin私有链
前言filecoin开源已经有一段时间,一直没下下来玩,这几天趁着有时间,集中精力钻研下。测试网络已经运行很久了,近期开发网络更是被人劫持,处于瘫痪状态,于是我想搭建filecoin的私有链。关于私有链的搭建,filecoin wiki上的资料不够详细,网上基本没有资料,很多是自己摸索出来的。这篇文章是《搭建filecoin私有链》的姐妹篇,《搭建filecoin私有链》讲的是一台机器挖矿...原创 2019-06-24 21:41:25 · 3174 阅读 · 2 评论 -
ipfs入门安装与使用
一、下载安装首先去官网下载go-ipfs包。笔者用的是ubuntu系统,下的是linux amd64版本的。$ tar xvfz go-ipfs.tar.gz$ cd go-ipfs$ ./install.sh二、使用1、初始化ipfs$ ipfs initinitializing IPFS node at /home/ubuntu/.ipfsgenerating 2048-b...原创 2019-01-24 15:41:15 · 1299 阅读 · 0 评论