algorand / algorand/go-algorand
Support multibyte opcodes
- Ngôn ngữ chính
- Go
- Star
- 1.4k
- Fork
- 537
- Merge trung bình
- 1 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 17
Mô tả
## Problem
Since opcode values are limited to a single byte, related behaviors are expressed as unique opcodes. For example, these behaviors must be expressed as unique opcodes:
* Operations common BN256 (https://github.com/algorand/go-algorand/pull/4013) and BLS12-381 (https://github.com/algorand/go-algorand/issues/4036).
* Operations common to Boxes (e.g. `box_put`, `box_len`, `box_get` via https://github.com/algorand/go-algorand/pull/4212).
It's possible to imagine supporting multibyte opcode values to group common behaviors and limit usage of the top-level opcode space. With boxes, imagine `box ` like `box put`, `box len`, `box get`.
## Solution
The assembler should be augmented to allow OpSpecs to exist "beneath" a single opcode byte. This would effectively cause those opcodes to be assembled as a two-byte sequence.
## Urgency
The current encoding scheme is running out of opcode space.
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.