You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析Iron Fish原始交易并通过Go语言获取交易哈希

如何用Go语言从原始交易(rawTx)获取交易哈希

在区块链(如比特币)场景中,交易哈希是通过对原始交易字节数据执行两次SHA256哈希(行业内称SHA256d)生成的。以下是具体的Go语言实现方案:

完整代码实现

package main

import (
	"crypto/sha256"
	"encoding/hex"
	"fmt"
	"log"
)

func main() {
	// 替换为实际的十六进制格式原始交易字符串
	rawTxHex := "0100000001abc123..."

	// 将十六进制字符串解码为字节数组,处理解码错误
	rawTxBytes, err := hex.DecodeString(rawTxHex)
	if err != nil {
		log.Fatalf("解码原始交易失败: %v", err)
	}

	// 获取交易哈希
	txHash := getHash(rawTxBytes)

	fmt.Println("交易哈希:", hex.EncodeToString(txHash))
}

// getHash 对原始交易字节执行SHA256d哈希计算
func getHash(raw []byte) []byte {
	hash := sha256.Sum256(raw)
	hash = sha256.Sum256(hash[:])
	return hash[:]
}

代码说明

  • 原始交易解码:通过hex.DecodeString将十六进制格式的rawTx转换为字节数组,这是哈希计算的基础
  • SHA256d哈希计算:getHash函数先对原始字节做第一次SHA256哈希,再对第一次的结果做第二次SHA256,这是区块链交易哈希的标准生成逻辑
  • 结果输出:将最终的哈希字节数组重新编码为十六进制字符串,得到可读的交易哈希

内容的提问来源于stack exchange,提问作者dima putkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:34:57