

总体说来,整个流程是先定义了一些单元功能和单元HTTP服务多路复用器,后面统一构建API服务的多路复用器,开启服务。
IPFS中存在的多个网络服务,整体系统结构流程类似。协程通过goprocess包管理,通过goprocess.WithTeardown(tf TeardownFunc)创建一个新的进程,通过其他接口可以添加子进程等。
简单的介绍下goprocess。在go语言中,goprocess包设计了一种管理进程生命周期的方法。这一点和net/context包的Context很像,它更像是Context和WaitGroup的一个混合体Context-WaitGroup。goprocess支持接受多个客户端单元信号,例如关闭信号,用来管理启动和停止工作单元。可以把它想象成go语言里的UNIX进程树。
go-ipfs只是IPFS工程放在前面的一个主体项目,后面还牵涉到很多的子项目这里不做描述。
文章转载自求真得趣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




