Bytom如何使用PAT树

技术Bytom如何用PAT树本篇内容介绍了“Bytom如何用PAT树”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么

本文介绍了“Bytom如何使用PAT树”的知识。很多人在实际案例操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

为什么要采用PAT树?

PAT树具有【根树】(https://en.wikipedia.org/wiki/radix _树)的特性,其内容可快速追溯。

Bytom如何用PAT树

PAT树具有[merkle树](https://en.wikipedia.org/wiki/merkle _ tree)的特点,数据可以快速证明。

Bytom如何用PAT树

在分布式系统中,一致性和有效性是关键。Bytom采用PAT树,其中数据可以快速证明,可以快速证明各个状态机是否一致。可以快速跟踪内容,这使bytom能够在每个快照状态下快速找到其数据,并检查数据的有效性。

Bytom 如何用PAT树?

Ethereum的PAT树是一个具有两层的16元基数树。第一层管理所有账户,第二层管理每个账户的存储内容。

Bytom如何用PAT树

Bytom 的PAT树与Ethereum 不同?

Bytom的PAT树是一个二元基数树。

Bytom的PAT树用于管理未使用的输出。

Bytom如何用PAT树

UTXO

为什么要使用UTXO?

UTXO诞生于比特币。就像现实世界中的人民币,从央行诞生的那一刻起,就转账无数个账户,但其价值面额始终如一,所以是以货币为中心,而不是以人为中心,资产便于监管和统计。Bytom用于资产发布和管理,所以UTXO以资产为中心的设计模式非常适合在Bytom上进行资产管理。

Bytom如何用PAT树

怎么使用UTXO?

与比特币的UTXO相比,bytom的UTXO多了三个字段。

Assertid,因为bytom是多资产发布和管理的平台,所以用这个字段来唯一标识各种资产。

Accountid,方便每个账户索引和管理utxo。与比特币相比,bytom引入了账户模型,这将在后面介绍。

程序,拥有utxo的账户可以用Ivy语言编写想要的程序放在这个字段,这样交易时图灵的完整BVM就会执行这个程序。

BVM

Bytom如何用PAT树

BVM是状态机的转换过程开始时执行(事务)的步骤。

为什么需要使用BVM?

Coin中的非图灵完全栈脚本语言表达的功能很少,很难实现一些稍微复杂的功能,比如verify_spv(跨链锚点验证功能,比如btc_relay),简单实现multi_lock(M人加密,只能通过收集N人私钥才能解密,0 N-m)。

ethereum中的evm可以简单地用solidity语言编程来实现这些功能,但是EVM太复杂了,它被称为超级世界计算机,这对于像bytom这样只对资产感兴趣的区块链来说是不必要的。

如何使用BVM?

Bytom如何用PAT树

发送每个事务时,用户可以编写自己的程序,等待事务完成。

包进块时,BVM会去执行该代码,由于BVM是图灵完备的虚拟机,所以需要加入feed计价机制(feed 等同于ethereum的gas * gasprice)来解决停机问题。

账户模型

为什么要采用账户模型?

账户模型易于管理相关数据,是以人为中心,十分的直观。对于BVM来说,基于账户代码去执行也十分便捷。再者我们引入了资产模型,类似于账户模型,这样易于资产的监管和查询。

bytom怎么去实现账户模型?

bytom 中的账户模型也分两类,但不同于ethereum中的个人帐户和合约账户, 它是指资产账户和个人账户。
资产账户:

assetid 是全局唯一的资产识别id。

  1. alias 是资产的别名,可便于记忆,如(gold, silver) 。

  2. vmversion 是为了软分叉时,做到动态过度。

  3. program 是指发布该资产时需要执行的程序。

  4. initialblockhash 是指该资产是在哪个块高度被登记。

  5. signer 管理公私钥对,以便用该资产的私钥签名,只有拥有该资产私钥的人才能发布该资产。

  6. definition 对该资产的解释说明等。

个人账户:

Bytom如何用PAT树

  1. accountid 全局唯一可识别账户id。

  2. alais 帐户名。

  3. signer, 私钥对,用于发送交易。

  4. *utxos 该账户所有的未花费交易的索引,便于快速管理该账户下资产。

  5. program, 该账户发送交易时可插入需要的程序。

综述

Bytom如何用PAT树

UTXO的物理结构,用memcache 存着。UTXO的逻辑结构则是用二叉PAT树来管理。

个人账户 根据AccountId 能够快速的索引其相关的utxo。资产账户根据AssetId能够快速的管理相关的utxo。

Bytom用PAT树来组织utxo作为世界状态树。

账户模型分两种,资产账户和个人账户,账户可以索引管理其相关的utxo。

UTXO 池会采用如memcache的内存数据库,落盘数据库会选择关系型数据库,数据会选择protobuf来序列化。

在账户做交易时,每个账户都可以从世界状态树去查找选择自己的utxo,并编写自己所需的资产程序,将其做为TxInput。

在交易打包进块时,验证节点会去实例化BVM,并执行该交易中所有TxInput中的程序。

“Bytom如何用PAT树”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153662.html

(0)

相关推荐

  • 小数点英文,1到26的数字译成英文,怎么写

    技术小数点英文,1到26的数字译成英文,怎么写翻译如下小数点英文:1——one2——two3——three4——four5——five6——six7——seven8——eight9——nine10——ten11——ele

    生活 2021年10月28日
  • Qt 实现涂鸦板二:实现放大功能

    技术Qt 实现涂鸦板二:实现放大功能 Qt 实现涂鸦板二:实现放大功能在一的基础上改造:
    .h 文件#pragma once#include QtWidgets/QWidget
    #include "ui

    礼包 2021年11月5日
  • python列表怎样实现for循环(pythonfor循环最多遍历几次)

    技术Python怎么在一个for循环中遍历两个列表Python怎么在一个for循环中遍历两个列表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我在看学习

    攻略 2021年12月22日
  • 设计模式,三)建造者模式

    技术设计模式,三)建造者模式 设计模式(三)建造者模式建造者模式建造者模式也属于创建模式,它提供了一种创建对象的最佳方式。
    定义:将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    礼包 2021年11月25日
  • 如何把mysqld压测到崩溃重启

    技术如何把mysqld压测到崩溃重启小编给大家分享一下如何把mysqld压测到崩溃重启,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、压测环境工具准备:centos7.5
    sysbench2.

    攻略 2021年10月26日
  • nginx配置文件是怎么样的

    技术nginx配置文件是怎么样的这篇文章将为大家详细讲解有关nginx配置文件是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。#运行用户user www-data; #启

    攻略 2021年11月21日