写比特币合约,本来就不该手敲 Opcode。
直接写 BVM 操作码门槛高、易错,与产品工程节奏脱节。UTXO_Compiler 让你用 Python-like 的高级语法描述合约逻辑,再由编译器统一翻译为 BVM 字节码。
UTXO_Compiler 接受 .ct 高级合约源码,把 Python-like 写法编译为可嵌入比特币锁定脚本的 BVM 字节码,自带强类型与编译期所有权检查。
Contract P2PKH:
def verify(sig: hex, pubKey: hex):
pubKey_copy = pubKey.Clone()
pubKeyHash = Hash160(pubKey_copy)
EqualVerify(pubKeyHash, self.pubKeyHash)
result = CheckSig(sig, pubKey)Hash160 会消耗 pubKey;先 Clone 再用,编译期所有权检查会替你保证这一点。
Powered by TBC · BVM · UTXO · PoW SHA-256 · Fair launch
直接写 BVM 操作码门槛高、易错,与产品工程节奏脱节。UTXO_Compiler 让你用 Python-like 的高级语法描述合约逻辑,再由编译器统一翻译为 BVM 字节码。
合约成员变量被直接编进字节码,不同数据生成不同锁定脚本。强制类型声明 + 编译期所有权检查意味着「你在代码里看到什么,栈上就发生什么」——错误在编译期就被截住,而不是等链上交易回滚。
自带交互式调试器,可以分别覆盖通过 / 失败两条路径;编译产物是 JSON 格式字节码,方便直接嵌进锁定脚本或与上层钱包 / 索引器联动。
缩进分块、def 定义函数;强类型,无 var/auto。
def verify(sig: hex, pubKey: hex):
pubKey_copy = pubKey.Clone()变量被消耗后不可再用,对应 BVM 栈弹出语义。
h = Hash160(pubKey) # pubKey 已被消耗 — 再次使用即编译错
Lexer → Parser → Semantic → Codegen,输出 JSON 格式字节码。
$ utxoc compile p2pkh.ct → p2pkh.bvm.json
--debug 进入交互模式,分别覆盖通过 / 失败路径。
$ utxoc --debug p2pkh.ct (dbg) step pass / step fail
Linux、Windows 64 / 32 位可执行;macOS 计划支持。
$ tar xzf utxoc-linux-x64.tgz $ ./utxoc --version
标准库持续扩展(Hash160 / CheckSig / EqualVerify / PartialHash …)。
Hash160(x); CheckSig(sig, pk) EqualVerify(a, b); PartialHash(...)
macOS 二进制;更复杂的合约模式(多函数、所有权进阶)。
# macOS · arm64 · 计划中 # 多函数合约 · 所有权进阶
Contract P2PKH:
def verify(sig: hex, pubKey: hex):
pubKey_copy = pubKey.Clone()
pubKeyHash = Hash160(pubKey_copy)
EqualVerify(pubKeyHash, self.pubKeyHash)
result = CheckSig(sig, pubKey)Contract Counter:
Struct Script:
SuffixData: string
PartialHash: string
Size: number
Struct Output:
Value: number
LockingScript: Script
def verifyCurrentTX(ctx: CurrentTX):
# ...iterate ctx.Outputs, assert ctx_count == pre_count + 1...
EqualVerify(pre_count_copy + 1, ctx_count)curl -LO https://docs.utxocompiler.com/releases/utxo_compiler-v1.0.0-linux.tar.gz
tar -xzf utxo_compiler-v1.0.0-linux.tar.gz
cd utxo_compiler-v1.0.0-linux
./utxo_compiler --version
./utxo_compiler p2pkh.ct
./utxo_compiler p2pkh.ct --debug不需要切换思路、也不需要绕一层桥。下载发布包, 几分钟编出第一段 BVM 字节码。
版本进度、教学示例与生态联动会第一时间同步出来。 点击任意卡片查看完整内容。