精通IPFS:IPFS 启动之 preStart 函数

上篇说到,在 init 函数初始化系统后,会调用 IPFS 对象的 preStart 和 start 方法,进行系统初始化,这次我们来看第一个方法。首先来看 preStart 方法,这个方法位于 core/components/pre-start.js 文件中,它的主要作用是加载仓库中的内容到内存中,它的主体是一个 waterfall,老规矩我们直接来分析它的几个函数。

执行第一个函数,调用仓库的配置对象的 get 方法,获取配置系统配置。具体代码如下:
(cb) => self._repo.config.get(cb)

我们知道,仓库的配置对象是在仓库的构造函数中生成,在初始化方法 init 中设置的。现在我们来详细看下配置对象,这个对象以仓库对象的 root 为参数创建的,它的所有操作最终都是调用这个对象来完成的,也即最终都是保存保存在文件系统的配置文件中,那么配置文件内容是在哪里被写入的呢,答案就是仓库的 init 方法,在这个方法中会调用配置对象的同名方法来完成保存所有配置。这里还有一个问题就是具体的配置是在哪里定义的,这个问题也比较简单,在前面系统初始化时,即 IPFS 的 init 方法中曾经调用 mergeOptions 方法来合并默认配置和用户通过 config 指定的配置,从这个方法可以发现所有默认配置定义在 core/runtime/config-node.js 文件中,从这个文件可以发现默认配置如下:
{

Addresses: {

Swarm: [

  '/ip4/0.0.0.0/tcp/4002',

  '/ip4/127.0.0.1/tcp/4003/ws'

],

API: '/ip4/127.0.0.1/tcp/5002',

Gateway: '/ip4/127.0.0.1/tcp/9090'

},

Discovery: {

MDNS: {

  Enabled: true,

  Interval: 10

},

webRTCStar: {

  Enabled: true

}

},

Bootstrap: [

'/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z',

'/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsq
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值