algorand / algorand/go-algorand

Support multibyte opcodes

Đang mở
#4,285 0 bình luận 1 reaction 0 người được giao Xem trên GitHub
Team Scytale
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

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.