知识卡片
信任等级决定链码容器隔离强度
内容
Fabric对[[五大系统链码把治理逻辑做成可调用合约]]中的系统链码(CSCC/ESCC/LSCC/QSCC/VSCC)和用户链码用了两种完全不同的运行时隔离方案:系统链码代码是Fabric自带、随节点程序一起编译的可信代码,用InprocVM虚拟机以goroutine方式在Endorser进程内直接运行,靠两条Golang channel与Peer侧通信,启动开销近乎为零;用户链码是外部提交的不可信代码,必须启动真正的Docker容器、通过gRPC通信,付出容器启动与网络开销的代价换取操作系统级别的隔离。这与[[智能合约与Fabric链码的容器隔离模型]]呼应:容器隔离的强度不是统一标准,而是按代码来源的可信程度分级配置的,可信代码可以豁免隔离成本。
参考来源
《Hyperledger Fabric技术内幕:架构设计与实现原理》第4章《Endorser背书节点》