..

ipfs-cluster中raft创建过程

通过ipfs-cluster的源码,看一下raft再ipfs的数据同步上的应用。

在启动 ipfs-cluster-service daemon 的时候,进行了 raft 的共识创建。

1、在 cmd/ipfs-cluster-service/daemon.go 文件中找到 daemon 实现。

// Runs the cluster peer
func daemon(c *cli.Context) error {
	cluster, err := createCluster(ctx, c, cfgHelper, host, pubsub, dht, store, raftStaging)
}

2、createCluster 的关键实现

func createCluster(...) {
	cons, err := setupConsensus()
	ipfscluster.NewCluster(...)
}

3、setupConsensus 实现

func setupConsensus() {
	rft, err := raft.NewConsensus(...)
}

4、 NewCluster 实现

func NewCluster(...) {
	return c := &Cluster{}
}

Nothing