背景 有些依赖时间弱同步假设的共识,比如PBFT,DPOS,和一些元胞自动机衍生(MoCA)的共识。在实现的时候需要得到消息的到达时间。 学习了一下以太坊如何处理区块到达时间的。这里记录一下。 消息中ReceivedAt的写入逻辑 一切的起点是p2p模块的server.run()函数 从这里开始,geth启动了p2p服务器。 func (srv *Server) run(dialstate dialer) { srv.log.Info(Started P2P networking, self, srv.localnode.Node().URLv4()) ... go srv