把这个信封搁置到区块链里面去, 说白了的话, 就是给交易过程包裹上一层外皮, 这和寄送快递的时候需要打个包裹是一个道理, 没有什么特别玄乎的地方。
把裸奔的那一笔交易直接扔到了链上去, gas费、签名信息还有nonce这些内容散落在四面八方到处都是乱糟糟的, 节点在处理这些信息的时候收到后面就彻底混乱了。
envelop做的事情就是把这一堆零碎的东西全部打包收在一起, 然后塞入到结构化的信封里面去,只要拆开包裹就能直接使用。当calldata完成优化之后, 里面的字段排列方式变得更加紧凑了, 每节省下来的几个字节都确实是实打实的能够减少的成本开支。
当你调试合约的过程中, 前段拼接的那个载荷数据包, 它本质上就是一个信封结构体, 在这个结构的开头位置放入了方法标识符, 然后按照抽象二进制接口的顺序把相应的参数堆叠在后面, 最后在外面再包上一层数字签名, 如果你搞不清楚这一层外壳的具体构成情况话, 那么你很有可能就会在编码环节反复地出现错误并且摔跟头, 仔细拆开来看的话, 这个设计其实只是一个大家约定俗成的格式规范而已, 并没有包含任何神秘的或者难以理解的技术魔法。

你有没有把这个信封拆开来, 然后瞧一瞧里面究竟是塞着什么东西了呢。
