IPFS
Kingwel2020
这个作者很懒,什么都没留下…
展开
-
ipfs, mfs & unixfs
UnixFSUnixFs is a unix-like filesystem utilities on top of an ipld merkledagioThe io subpackage provides helpers for reading files and manipulating directories. The DagReader takes a reference to...原创 2020-03-02 15:36:30 · 572 阅读 · 0 评论 -
ipfs, ls cmd
ipfs lsDisplays the contents of an IPFS or IPNS object(s) at the given path, withthe following format:>ipfs ls Qmexhq2sBHnXQbvyP2GfUdbnY7HCagH2Mw5vUNSBn2nxipQmdgDTm9LS3bF3uPwJhekqXVqFL2NmLn1s...原创 2020-03-01 17:40:32 · 360 阅读 · 0 评论 -
ipfs, unixFs & DAG iteration
The way to get all blocks of IPLDLet’s consider we have an IPLD node and we build a a UnixFs file from it, then how do we read the file content at once: node, err := dagRO.Get(ctx, Cid) if err != n...原创 2020-02-29 16:16:41 · 322 阅读 · 0 评论 -
ipfs,flatfs datastore
FlatFSFlatFS is using sharded directories and flat files to store raw block contents on disk. It is not a general-purpose datastore and has several important restrictions.FlatFS keys are severely re...原创 2020-02-29 15:20:26 · 362 阅读 · 0 评论 -
ipfs,IpfsNode initialization
ipfs daemonIpfs daemon will initialize all modules using uber.fx dependency injection.Before invoking NewNode(), we have to create the FSRepo at first. repo, err := fsrepo.Open(cctx.ConfigRoot) .....原创 2020-02-28 10:50:41 · 303 阅读 · 0 评论 -
ipfs, merkledag and block
BlockBlock, protobuf encoded$ ipfs block get QmbJG7NjeMKifAnLzbdLbbRbDtVvK1o5Y4tENAaLzh3UDb╗║123║Block service will try to get block data from blockStore --> bs.Get(cid), if cid not found, th...原创 2020-02-27 22:04:11 · 127 阅读 · 0 评论 -
ipfs, libp2p DHT
DHT Message HandlingFindNodePingGetValuePutValueAddProviderGetProviderputValue/getValue is used by IPNS namespace system. Data format is like:/pk/encoded(key+value) : timestamp/ipns/enco...原创 2020-02-27 21:08:01 · 415 阅读 · 0 评论 -
ipfs, bitswap architecture
Block diagrambitswap data sturcure & initialization// Bitswap instances implement the bitswap protocol.type Bitswap struct { // the wantlist tracks global wants for bitswap wm *bswm.WantMana...原创 2020-02-26 12:45:18 · 468 阅读 · 0 评论 -
ipfs, bitswap provider vs. go-ipfs-provider
ProviderProvider system is responsible for announcing and reannouncing to network that a node has content.Provider is done through Content Routing, aka DHT, AddProvider procedure.Bitswap providerb...原创 2020-02-25 16:01:29 · 222 阅读 · 0 评论 -
ipfs, libp2p multistream wireshark capture
What is doneHack secio to disable enc/dec, so that we can see all plain textsStart wireshark listening on tcp portPcap file can be found at: open with wiresharkOutline of secure channel setupT...原创 2020-02-24 23:17:46 · 406 阅读 · 0 评论 -
ipfs, libp2p secio with AES-GCM spport
secio currently supports AES-CTR + SHA onlyconst DefaultSupportedCiphers = "AES-256,AES-128"const DefaultSupportedHashes = "SHA256,SHA512"Current implementationNegotiation procedure can be found ...原创 2020-02-23 20:59:41 · 286 阅读 · 0 评论 -
ipfs, libp2p yamux in details
yamuxNewConnfunc (t *Transport) NewConn(nc net.Conn, isServer bool) (mux.MuxedConn, error) { var s *yamux.Session var err error if isServer { s, err = yamux.Server(nc, t.Config()) } else { s...原创 2020-02-22 17:58:04 · 399 阅读 · 0 评论 -
ipfs, libp2p conn/stream
swarm, conn & streamIn Swarm, conn stands for the connection, on which streams are multiplexed.First of all, we must create a connection before starting any stream operations. A connection can b...原创 2020-02-22 16:23:47 · 394 阅读 · 0 评论 -
ipfs, libp2p stream peformance test
Test ENVTwo libp2p hosts running on the same PC, communicating to each other with loopback interfaceHost A -> Host B, uni-directionCase 1, secio, AES+SHA19:19:34.257 ERROR common: Copied=10...原创 2020-02-21 21:28:43 · 224 阅读 · 0 评论 -
ipfs, libp2p, private network
Private Network1. PNet provides extra encrypt/decrypt to a swarm connection:Initialization here:func PrivateNetwork(prot pnet.Protector) Option { return func(cfg *Config) error { if cfg.Protecto...原创 2020-02-21 11:31:28 · 397 阅读 · 0 评论 -
ipfs, libp2p, secio howto
SecureOutbound, Inbound is similarSwarm.DialAddr -> Transport.Dial -> Tpt.Upgrader.UpgradeOutboundcall stack:github.com/libp2p/go-libp2p-secio.(*secureSession).runHandshake at protocol.go:119...原创 2020-02-20 23:49:58 · 567 阅读 · 0 评论 -
ipfs, log
1. ENV variables for ipfs log behaviours// Logging environment variablesconst ( // TODO these env names should be more general, IPFS is not the only project to // use go-log envLogging = "IPFS...原创 2020-02-20 21:41:03 · 1555 阅读 · 0 评论 -
ipfs, libp2p, default options
go-libp2p/defaults.goNote:only tcp and ws are configured!secio are enabled by defaultyamux then mplexPing service enabled by default// DefaultSecurity is the default security option.//// Us...原创 2020-02-20 21:33:06 · 299 阅读 · 0 评论 -
ipfs, libp2p, swarm notify
Data Structuretype Swarm struct { // Close refcount. This allows us to fully wait for the swarm to be torn // down before continuing. refs sync.WaitGroup local peer.ID peers peerstore.Peerstore...原创 2020-02-20 17:08:47 · 460 阅读 · 0 评论 -
ipfs, libp2p, How to identify the external IP address of myself
dialPeer -> go h.ids.IdentifyConn© -> c.NewStream("/ipfs/id/1.0.0")SelectProtoOrFail --> ProtocolID + IDresponseHandler.readMsg -> ids.consumeMessage -> consumeObservedAddress -> i...原创 2020-02-19 18:04:19 · 224 阅读 · 0 评论 -
ipfs, libp2p, dht findpeer procedure
FindPeerTriggered by CLI or AutoRefreshCode outlineFindPeer(id) peers := dht.routingTable.NearestPeers(kb.ConvertPeerID(id), AlphaValue) // note, LokupFailure if no peer in Routing Table if len(...原创 2020-02-19 16:04:45 · 305 阅读 · 0 评论