前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言情怀--第79期 区块链技术-基于长安链建立NFT流程

Golang语言情怀--第79期 区块链技术-基于长安链建立NFT流程

作者头像
李海彬
发布2022-06-08 18:41:55
1.2K0
发布2022-06-08 18:41:55
举报
文章被收录于专栏:Golang语言社区Golang语言社区

过去一段时间NFT备受吹捧,今天就给大家简单的说下基于长安链如何建立NFT的流程,我们就按照最简单的流程给大家说明下;正式讲解之前我们先给大家普及下NFT的先关基础知识。

NFT,Non-FungibleToken的缩写,即“非同质化通证”。与之对应的是我们日常较为熟悉的 FT(Fungible-Token)。Fungible-Token:可替代通证/同质化通证。Token是标准化的,Token之间互为替代,可拆分,且Token之间具有相同特性及价值。比特币、以太坊、USDT就属于Fungible-Token。

NFT(Non-Fungible Token)译为非同质化通证。每个NFT都在其区块网络上具有唯一的序列号,是独一无二的。NFT具有不可拆分、不可替代、非标准化的特性。相较于比特币等同质化、可分割Token,财新网专栏作家、海王集团首席经济学家王永利认为NFT不具备成为货币的条件,应该翻译为“非同质化权证”更为准确。NFT使用场景:由于不可拆分、独一无二、不可篡改的技术特点,NFT可成为数字艺术、收藏品票证、游戏道具的绝佳载体,未来甚至可能作为实物资产的凭证。

我们经常听说的数字藏品其实就是他的一种形式,拿个令牌干什么?这个令牌非常厉害,他可以利用区块链和加密技术,让任何的虚拟产品,比如说你的一个照片,你的一幅画,你的一套房子,变成是独一无二的,那他为什么重要呢?你在一个虚拟世界里头,很多东西就是可以被复制的,比如说我有一幅画或者我买一套房子,那你复制一套过去,你也有一套房子了,那等于说不清楚这房子到底是谁的,那这世界不就乱套吗?

所以我们就需要这个技术,不可替代令牌NFT来对这个资产进行一个认证,就比如说你买了一套房子,一幅画,有了NFT,那全世界都可以证明这个是你的,别人再怎么去复制粘贴都没有用,别人就认你,这才是元版,其实有点像一个版权的概念,但他很大的优点在于它是去中心化的,就是说这个房子这个画你不需要一个权威机构去认证,说她是你的,你有产权证了,他就是你的。

以上普及了目前NFT的价值,那技术实现是什么样?这一点作为技术爱好者而言,我们最起码要知道流程,要只知道目前的技术实现点在哪里。

先看下目前我们项目的基于长安链的流程图,如下:

可以看出,目前国内的技术合法前提下;建立的都是私链。其他不多说,我们只讨论技术。后面我们就拆分流程图的技术点慢慢给大家讲解。下面给大家普及下什么是节点:

什么是节点?

区块链中的节点,通常是指下载了相关加密货币(比特币,Ethereum, Monero等)软件,以参与对等网络的计算机。

加密货币区块链的结构是对等店(P2P)之间的网络架构,P2P是指参与网络的计算机彼此对等,在P2P网络中,参与网路的每一台计算机都可以接收节点的名称。在网络中,所有的节点都有责任提供网络服务,这是因为网络节点的互连性,允许进行互操作性。

区块链网络是指执行给定区块链P2P协议的节点集。整个网络以完全联合、去中心化和分布式的方式编排和协调每个用户在网络中所做的操作。这意味着全世界的计算机网络可以不断地相互传输新的事务。这个网络中的每台计算机都是一个节点,它已经下载了完整的区块链。这样,网络就变得冗余了,而协同工作使其在扩展方面具有可伸缩性。

由于区块链的分散化,任何人都可以参与其中。只需从下载节点软件并执行它即可。通常,每个项目的主钱包都支持此功能。最初,网络从区块链的起源开始,直到与网络同步为止。此时,节点开始全面运行,不仅允许验证事务,而且支持区块链的整体映像。通常节点可以执行以下功能:路由、区块链数据库、挖掘和钱包服务。

这些节点是一个区块链最大数据结构中的单个部分。当节点所有者自愿贡献自己的计算资源来存储和验证事务时,他们就有机会收取交易费用,并在潜在的加密货币中获得奖励。

处理这些事务可能需要大量的计算和处理能力,这意味着计算机的平均能力是不够的。一般来说,专业的矿商倾向于投资被称为CPU(中央处理单元)或GPU(图形处理单元)的非常强大的计算设备,以满足对验证事务所需的处理能力的需求,从而获得相应的回报。

节点可以是通信端点,也可以是通信的重分发点,链接到其他节点。网络中的每个节点都被认为是相等的,但是,某些节点在支持网络的方式上扮演着不同的角色。例如,并非所有节点都会存储区块链的完整副本。

一个完整的节点下载一个区块链的完整副本,并根据该特定加密货币或实用代币所使用的共识协议检查产生的新事务。所有节点都使用相同的共识协议来保持相互兼容。网络中的节点负责确认和验证事务,并将它们放入块中。对于一个事务是否有效以及是否应该添加到带有其他事务的块中,不管其他节点如何行动,节点总是可以得出自己的结论。

节点的基本任务是什么?当挖掘人员或用户试图通过协议的某种机制向区块链添加一个新的事务块时,它将该块传输到网络的所有节点。根据块的合法性(签名和事务的有效性),节点可以接受或拒绝块。当一个节点接受一个新的事务块时,它保存它并将它存储在它已经存储的其他块上。综上所述,节点的作用是:他们可以检查一个事务块是否有效,并接受或拒绝它。存储和存储事务块(存储区块链事务历史)。将此事务历史传输并扩展到可能需要与区块链同步的其他节点(它们必须在事务历史中更新)。

节点的分类

在区块链网络中,传统上有三种类型的节点,它们在网络中提供不同的功能。这些节点类型为:

广播节点: 它们只发出事务并接收来自第三方的区块链信息。它们遵循最强大的采矿动力,被称为轻钱包,广泛应用于移动设备,或者仅仅被不想下载整个区块链的人使用。

完整节点:安装完整的节点软件,如Bitcoin Core,除了拥有最安全的钱包,还会下载区块链的一个副本,成为比特币网络中的一个节点。因此,您将发出事务,传播网络的其余部分,并验证是否满足一致规则。挖掘节点:除了操作他们喜欢的软件挖掘器(BTCMiner, CGMiner)之外,挖掘器必须具有区块链的副本。这些节点除了挖掘比特币,从而帮助创建新的区块外,还会发布和传播交易。

节点有多安全?节点可以是联机的,也可以是脱机的。在线节点接收、保存和从其他节点传输事务的所有最后块,而没有连接的节点则不会。当脱机节点重新联机时,它首先必须通过下载自该节点断开后添加到区块链的所有块来赶上区块链的其余部分。这个过程通常称为区块链同步。

理论上,一个完整的区块链可以在单个节点上执行,但由于它将存储在单个设备中,因此非常容易受到断电、黑客或系统故障等情况的影响。在区块链中运行的完整节点越多,它们在面对此类灾难时的恢复能力就越强。当区块链的数据分布在如此多的设备上时,对于一个损坏的实体来说,一次删除所有这些数据是非常困难的。由于全球危机,大量节点突然下降并变得不可访问,从理论上讲,单个节点可以保持整个区块链的运行。即使所有节点都断开连接,也只需要一个具有完整区块链历史记录的节点就可以重新联机并使所有数据都可以再次访问。

这些节点也容易受到计算机攻击,这可能会改变它们的功能。例如,一个盗版者可以侵犯该软件的安全性,并且在不改变区块链数据的情况下,它可以将该节点的利润重定向到与其所有者编写的不同地址。窃取地址攻击是这类软件最常见的攻击类型,这就是为什么开发人员建议使用他们的区块链软件的更新版本。

这些安全缺陷中很容易解决,可以使用一些计算机安全常识,或者使用创建安全机制的软件工具将区块链软件与计算机系统的其他部分隔离开来。这些措施包括:使用官方或开发人员的软件,并有一个长期和证明的记录。保护区块链中我们活动的私钥、助记符密钥和任何其他特权信息。仅为我们的采矿活动使用计算机或电子设备。使用沙箱软件将软件应用程序与系统的其他部分隔离开来。使用MAC(强制访问控制)系统特权,这些特权允许我们以对操作系统和其他系统api的最低访问权限运行我们的区块链软件(这种隔离大于沙箱)。

什么是主节点?主节点是当前某些区块链的独特特征。主节点通常比普通节点装备更多。除了验证、保存和传输事务之外,有时主节点还根据其性质促进区块链中的其他事件,例如投票事件、协议操作的执行和遵守区块链的法律。主节点通常总是联机的,并且提供比普通节点多得多的内存。因为主节点的住所通常需要更多的资源(电力、正常运行时间、维护、存储空间、内存),所以住所通常以利息的形式提供支付。

然而,并不是每个人都能运行主节点。控制主节点的能力可能会被滥用,因此需要主机存储最少(通常相当大)数量的加密货币作为抵押品。当主节点主机违反了区块链的规则时,这就被当做保证金。主节点主机接收的利率是根据您的保证金计算的。保留的这些钱中,取决于主节点所有者的收益,该收益由所涉及的主节点集处理的所有事务和操作的百分比来衡量。DASH和以太坊等项目在其结构中使用和创建主节点。

本期就到这里,下期继续未完讲解。

同学们,兴趣是最好的老师;只争朝夕,不负韶华!加油!


参考资料:

Go语言中文文档

http://www.golang.ltd/

Go语言官方文档

https://golang.google.cn/

海伦链论坛(筹建中)

https://www.HeronChain.Com/

Golang语言情怀

ID:wwwGolangLtd

 www.Golang.Ltd

        游戏服务器架构丨分布式技术丨大数据丨Go语言学习

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言情怀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档