区块链跨链桥交易系统开发智能合约部署

简介: 区块链跨链桥交易系统开发智能合约部署

区块链所面临的诸多问题中,区块链之间互操作性极大程度的限制了区块链的应用空间。不论是公有链还是联盟链,跨链技术就是实现价值互联网的关键,是区块链向外拓展和连接的桥梁。目前主流的跨链技术包括:
公证人机制(Notary schemes)
侧链/中继链(Sidechains/relays)
哈希锁定(Hash-locking)
分布式私钥控制(Distributed private key control)

跨链交易流程
主链到侧链
主链用户将代币发送至联邦合约地址,收集人监控联邦地址,发现跨链交易后生成Claim交易,发送至侧链
侧链到主链
侧链用户发起提现交易,销毁侧链资产。收集人监控侧链至主链交易,向主链地址发送对应数量资产。最后联邦在侧链生成一笔完成提现的操作交易。
2、代码解析
跨链代码主要处于federation文件夹下,这里就这部分代码进行一个介绍。
(1)keeper启动
整个跨链的关键在于同步主链和侧链的区块,并处理区块中的跨链交易。这部份代码主要在mainchain_keerper.go和sidechain_keerper.go两部分中,分别对应处理主链和侧链的区块。keeper在Run函数中启动。
func (m *mainchainKeeper) Run() {

ticker := time.NewTicker(time.Duration(m.cfg.SyncSeconds) * time.Second)
for ; true; <-ticker.C {
    for {
        isUpdate, err := m.syncBlock()
        if err != nil {
            //..
        }
        if !isUpdate {
            break
        }
    }
}
AI 代码解读

}

Run函数中首先生成一个定时的Ticker,规定每隔SyncSeconds秒同步一次区块,处理区块中的交易。
(2)主侧链同步区块
Run函数会调用syncBlock函数同步区块。
func (m *mainchainKeeper) syncBlock() (bool, error) {

chain := &orm.Chain{Name: m.chainName}
if err := m.db.Where(chain).First(chain).Error; err != nil {
    return false, errors.Wrap(err, "query chain")
}

height, err := m.node.GetBlockCount()
//..
if height <= chain.BlockHeight+m.cfg.Confirmations {
    return false, nil
}

nextBlockStr, txStatus, err := m.node.GetBlockByHeight(chain.BlockHeight + 1)
//..
nextBlock := &types.Block{}
if err := nextBlock.UnmarshalText([]byte(nextBlockStr)); err != nil {
    return false, errors.New("Unmarshal nextBlock")
}
if nextBlock.PreviousBlockHash.String() != chain.BlockHash {
    //...
    return false, ErrInconsistentDB
}

if err := m.tryAttachBlock(chain, nextBlock, txStatus); err != nil {
    return false, err
}

return true, nil
AI 代码解读

}
这个函数受限会根据chainName从数据库中取出对应的chain。然后利用GetBlockCount函数获得chain的高度。然后进行一个伪确定性的检测

目录
打赏
0
0
0
0
5
分享
相关文章
基于阿里云区块链服务(BaaS)的供应链金融系统开发与部署
随着区块链技术的快速发展,其在供应链金融领域的应用成为热点。阿里云区块链服务(BaaS)提供安全、高效、易用的平台,支持Hyperledger Fabric和蚂蚁区块链,帮助企业快速构建供应链金融系统。本文通过实战案例展示基于阿里云BaaS开发供应链金融系统的全流程,涵盖企业认证、应收账款融资、交易记录及数据分析等功能,显著提升透明度和可信度,降低融资成本。
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
智能合约与区块链技术的融合:重塑数字信任###
本文深入探讨了智能合约与区块链技术融合的现状、挑战与未来趋势。不同于传统摘要,本文以高度概括的形式,聚焦于两大核心要点:一是智能合约作为区块链上的自执行协议,如何通过代码自动化地促进信任最小化的交易;二是这种融合如何推动数字经济向更加透明、高效、安全的方向发展。全文围绕智能合约的工作原理、区块链提供的底层支持、以及两者结合所面临的技术与非技术挑战展开讨论,旨在为读者提供一个关于这一前沿技术领域的全面而深入的视角。 ###
探索区块链技术的未来:从数字货币到智能合约的演变
探索区块链技术的未来:从数字货币到智能合约的演变
202 0
区块链技术基础:从去中心化到智能合约
区块链技术基础:从去中心化到智能合约
138 0
揭秘区块链:以太坊智能合约开发的奥秘与挑战,你准备好迎接未来了吗?
【10月更文挑战第25天】本文介绍了区块链技术的基本概念及其核心特点,重点讲解了以太坊智能合约的开发流程和实际开发中的注意事项。通过安装 Truffle、Ganache 和 Remix 等工具,读者可以快速上手编写、编译、部署和测试智能合约。文章还对比了以太坊去中心化应用与传统集中式应用的优势和挑战,帮助读者全面了解以太坊智能合约开发。
166 0
探索区块链技术与智能合约开发的边界
随着信息技术的发展,区块链作为一种分布式数据库技术正深刻影响社会。本文探讨区块链基本原理及其在金融、供应链等领域的应用,并聚焦智能合约——一种自动执行且不可篡改的代码,介绍其开发流程与丰富案例。同时,文章分析了技术与法律层面面临的挑战,展望未来发展趋势。
109 4
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
155 0
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问