package router import ( "gitlab.33.cn/link33/sidecar/internal" "gitlab.33.cn/link33/sidecar/internal/port" "gitlab.33.cn/link33/sidecar/model/pb" ) //go:generate mockgen -destination mock_router/mock_router.go -package mock_router -source interface.go type Router interface { internal.Launcher Add(p port.Port) Adds(p []port.Port) Route(ibtp *pb.Message) error Load(key string) (value port.Port, ok bool) Send(id string, msg *pb.Message) (*pb.Message, error) AsyncSend(id string, msg *pb.Message) error // InPut(ibtp *pb.IBTP) chan *pb.IBTP // OutPut(ibtp *pb.IBTP) chan *pb.IBTP // 代替上面两个方法 // Router(ibtp *pb.IBTP) chan *pb.IBTP } // 路由规则,根据路由表,rules接口, 这个放到交易内部。可以让用户决定。并且签名。 // 1、广播 // 2、单一路由,指定路由标识。 // 3、p2p模式的路由, // 4、中继路由 // 5、定制化: // 验证规则 // 1、收集多个节点 // 2、收集指定节点 // 3、收集共识节点 // 即满足多个条件 // 路由规则优先级: // 1、用户交易内部的路由规则最高。 // 2、用户在程序设定。 // 3、系统默认。 // 1、交易分装、转发、路由,回执、查询、校验、 系统合约管理。(基本逻辑) // 2、事务、(路由、合约管理)规则、跨链交易的背书与完成校验。(功能完善) // 3、VM。(功能完善)