操作バイトの解析
1 回答
- 投票
16進文字列を並べて配置し、それらが一致する場所を見つけると、それらが異なる理由を簡単に確認できます.
__________________________Branch________________________________0800002122d44d997e158c36c60649d198c4175dad425efa09d2a405f44e00f6f0b40201420eaa410ac21addf427211cddd6115cba385a94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
92122a7e654cdff09e22a7be1b7d41bd279ffa197a0137e6fea0d3ed3ce95fc00800002122d44d997e158c36c60649d198c4175dad425efa09d2a405f44e00f6f0b40201420eaa410ac21addf427211cddd6115cba385a940000_____________________________________________________Signature__________________________________________________________________
ご覧のとおり、最初の16進文字列はコンテンツ + 署名で構成され、2番目の16進文字列はブランチ + コンテンツで構成されています.強い>.操作を挿入するときは、ブランチ+コンテンツ+署名が含まれている必要があります.その偽造と解析は、お互いの反対が意図されたユースケースに関係しているとは限りません. Forgeは通常、署名を追加する前に行うことなので、その段階で署名を返すのは困難です.
If we put the hex strings next to each other and find out where they match it becomes easy to see why they differ.
__________________________Branch________________________________0800002122d44d997e158c36c60649d198c4175dad425efa09d2a405f44e00f6f0b40201420eaa410ac21addf427211cddd6115cba385a94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
92122a7e654cdff09e22a7be1b7d41bd279ffa197a0137e6fea0d3ed3ce95fc00800002122d44d997e158c36c60649d198c4175dad425efa09d2a405f44e00f6f0b40201420eaa410ac21addf427211cddd6115cba385a940000_____________________________________________________Signature__________________________________________________________________
As you can see the first hex string consists of contents + signature and the second one of branch + contents. When we inject an operation, it should contain branch + contents + signature. That forge and parse isn't exactly each other’s opposites probably have to do with their intended use-cases. Forge is something you typically do before you append the signature, so it would be hard for it to return a signature at that stage.
RPC解析操作メソッドをクエリしようとしていますが、それについての別の質問. しかし、同じデータの操作バイトが異なる理由(58バイトと90バイト)がわかりません.さらに、次のようになります. クエリ:
本体:
応答:
次に、署名なしでこのデータを偽造しようとしています:
応答:
応答は解析されたデータよりもはるかに大きくなります.また、応答に64個のゼロバイトまたは署名バイトを追加しようとすると、「operation.cannot_parse」エラーが発生します.