go-ipfs/cmd/ipfs/init.go
go-ipfs/cmd/ipfs/daemon.go :func daemonFunc
- 解析传参、初始化配置
- 启动网络侦听服务
- swarm服务 默认4001
- api服务 默认5001
- 网关服务 默认8080
- 完成启动
go-ipfs/core/commands/add.go->go-ipfs/core/coreunix/add.go
-
分片-> 调用dag层cache 到内存-> 如果有pin选项,持久化到本地(分片方式是可选的)
-
DAG 调用交换层,广播宣告provide信息,存储到内容dht表中。
go-ipfs/core/commands/get.go
调用DAG层
本地有 -> 结束
本地无 -> 由dag服务调用交换、路由、网络获取对应的内容
通过context进行线程控制,资源回收