server.go

orderer提供的服务实现,包含broadcast和deliver接口。

NewServer

新建一个 Server 结构,包括一个 broadcast 的处理句柄,以及一个 deliver 的处理句柄。

type server struct {
    bh    broadcast.Handler
    dh    deliver.Handler
    debug *localconfig.Debug
    *multichannel.Registrar
}

NewServer 分别初始化这两个句柄,挂载上前面初始化的 multichannel.Registrar 结构。broadcast 句柄还需要初始化一个配置更新的处理器,负责处理 CONFIG_UPDATE 交易。

func NewServer(r *multichannel.Registrar, _ crypto.LocalSigner, debug *localconfig.Debug, timeWindow time.Duration, mutualTLS bool) ab.AtomicBroadcastServer {
    s := &server{
        dh:        deliver.NewHandlerImpl(deliverSupport{Registrar: r}, timeWindow, mutualTLS),
        bh:        broadcast.NewHandlerImpl(broadcastSupport{Registrar: r}),
        debug:     debug,
        Registrar: r,
    }
    return s
}

Last updated