CN115600255A - 一种基于nft的可修改的文学作品处理方法及系统 - Google Patents
一种基于nft的可修改的文学作品处理方法及系统 Download PDFInfo
- Publication number
- CN115600255A CN115600255A CN202211256308.3A CN202211256308A CN115600255A CN 115600255 A CN115600255 A CN 115600255A CN 202211256308 A CN202211256308 A CN 202211256308A CN 115600255 A CN115600255 A CN 115600255A
- Authority
- CN
- China
- Prior art keywords
- work
- metadata
- nft
- literary
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种基于NFT的可修改的文学作品处理方法及系统,属于区块链技术领域,包括作品存储模块、作品NFT铸造模块以及作品连载更新模块;作品存储模块分别与作品NFT铸造模块和作品连载更新模块连接,作品NFT铸造模块与作品连载更新模块相互独立;作品存储模块用于实现将作品上传至IPFS、IPNS以及中心化服务器:作品NFT铸造模块用于为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;作品连载更新模块用于实现将更新后的作品发布到IPNS,返回作品用于修改的唯一链接地址。基于上述方案,本发明解决了当前连载作品不能在原地址修改、一部作品在连载过程会有多个地址、中心化服务器的提供商篡改元数据等问题。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于NFT的可修改的文学作品处理方法及系统。
背景技术
区块链是指在去中心化的对等网络中,通过可信规则构建不可篡改、可追溯的区块链式结构,是分布式数据存储、加密机制、点对点传输等科学技术的新型应用场景。非同质化通证(Non-Fungible Tokens,NFT),是基于以太坊ERC721协议下的通证,是相对于同质化通证提出的概念,是不可互换的通证。星级文件系统(InterPlanetary File System,IPFS)是一种使用分布式存储和内容寻址技术的分布式文件系统。IPFS网络将存储的文件转换成二进制的数据字节,散布于网络中的其他各个节点上,从而实现多用户对同一资源访问却不取决于某一个固定节点。星级命名系统(InterPlanetary Name System,IPNS)是IPFS下的命名服务系统,每个运行中的IPFS节点,都可以使用IPNS的命名服务得到IPNSName,该Name是公钥的hash,即ID。默认情况下,使用发布者的节点ID。
通过对当前存在的文学作品系统的使用,发现当前连载作品不能在原地址修改的问题。该问题使得用户每次修改作品并上传之后,都需要记录当前最新的地址,给用户的使用带来诸多不便,若是用户不慎忘记上次的地址,就需要重新上传所有的作品元数据。此外,当我们将元数据仅存储在中心化服务器时,可能存在服务提供商违规篡改元数据的问题,不能保证与数据持有者的数据一致性。
发明内容
针对现有应用场景中的不足,借助上述技术方案,本发明基于以太坊区块链网络,提供一种基于NFT的可修改的文学作品处理方法及系统,借助IPFS下的命名服务系统IPNS,可以实现在原地址上更新作品元数据,即一部作品仅有一个唯一的ID作为用户修改该作品的地址。此外,本发明仅将元数据副本上传至中心化服务器,用户会在本地存储元数据,该方案一方面可以防止服务提供商篡改元数据,另一方面终端用户从中心化服务器下载元数据,可以保证下载速度不受限于网络情况。
为了达到以上目的,本发明采用的技术方案为:一种基于NFT的可修改的文学作品处理方法,包括A作品存储阶段、B作品NFT铸造阶段以及C作品连载更新阶段;其中,A作品存储阶段分别与B作品NFT铸造阶段和C作品连载更新阶段连接,B作品NFT铸造阶段与C作品连载更新阶段相互独立;
所述A作品存储阶段:将作品上传至IPFS、IPNS以及中心化服务器:上传至IPFS的作品,会得到基于作品元数据的hash值;上传至IPNS的作品,会得到基于对应该作品的公钥的hash值,即作品ID;上传至中心化服务器的是作品元数据的副本;
所述B作品NFT铸造阶段:基于以太坊区块链,使用在该区块链上实现的智能合约为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;
所述C作品连载更新阶段:将更新后的作品发布到IPNS,保证每次访问该作品使用相同的链接地址,一部作品在连载更新过程中只有一个对应的作品ID。
作为优选,所述作品存储阶段包括以下步骤:
A1、用户利用文学作品处理系统进行帐号注册或登录,进入文学作品处理系统;
A2、用户选择本地的作品元数据,将作品元数据上传至IPFS,得到基于作品元数据的hash值;
A3、用户使用步骤A2返回的hash值,将对应作品元数据发布至IPFS下的命名服务系统IPNS,所述文学作品处理系统返回对应该作品元数据的ID;
A4、判断用户是否将本地的作品元数据副本上传至中心化服务器,若是,用户调用所述文学作品处理系统中的uploadCenter函数,传入作品元数据在本地的地址,所述文学作品处理系将本地的作品元数据副本上传至中心化服务器后,返回该作品元数据副本被存储到的中心化服务器的地址;否则,结束作品存储阶段的流程;
作为优选,所述作品NFT铸造阶段包括以下步骤:
B1、用户调用智能合约中的deploy内置函数,执行智能合约的部署,判断是否部署成功,若是,进入步骤B2,否则,返回步骤B1,调整地址参数重新执行智能合约的部署;
B2、用户传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数,进行对对应作品NFT的铸造;
作为优选,所述作品连载更新阶段包括以下步骤:
C1、用户利用所述文学作品处理系统提供的作品连载更新模块,对对应作品进行修改;
C2、用户修改完成后,判断是否上传至IPFS,若是,则进入步骤C3;否则,结束作品连载更新阶段的流程;
C3、用户将当前作品修改完成后的最新元数据上传至IPFS,得到新的作品元数据的hash值;
C4、用户根据需要,可选择是否将当前作品修改完成后的最新元数据更新至中心化服务器,若是,用户调用文学作品处理系统中的uploadCenter函数,传入当前作品在本地的地址,所述文学作品处理系统执行更新最新元数据副本的操作;否则,结束作品连载更新阶段流程;
C5、所述文学作品处理系统判断用户是否将当前作品修改完成后的最新元数据更新至IPFS下的命名服务系统IPNS,若是,则进入步骤C6;否则,结束作品连载更新阶段的流程;
C6、用户使用C3返回的新的作品元数据hash值,将对应新的作品元数据更新至IPFS下的命名服务系统IPNS,完成基于NFT的可修改的文学作品处理方法。
作为优选,所述步骤A2包括以下步骤:
A201、用户进入作品存储模块,调用所述文学作品处理系统中的start函数,开启IPFS服务;
A202、用户调用所述文学作品处理系统中的uploadIPFS函数,传入作品元数据在本地的地址;
A203、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回基于作品元数据的hash值。
作为优选,所述步骤A3包含以下步骤:
A301、用户传入待发布作品的元数据hash值,调用所述文学作品处理系统中的keyGen函数;
A302、所述文学作品处理系统响应用户的调用,根据内嵌在所述文学作品处理系统的密钥生成算法,生成对应该待发布作品的公私钥,并存储在本地;
A303、用户调用所述文学作品处理系统中的publishIPNS函数,传入作品元数据hash值和对应该待发布作品元数据的公钥;
A304、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回公钥的hash值,即作品元数据的ID。
作为优选,所述步骤B2包括以下步骤:
B201、用户调传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数;
B202、智能合约触发MintItem事件,进行对对应作品NFT的铸造;
B203、判断是否铸造成功,若是,返回给用户一个tokenID;否则,返回步骤B201。
作为优选,所述步骤C3包括以下步骤:
C301、用户调用所述文学作品处理系统中的uploadIPFS函数,传入当前作品修改完成后的最新元数据在本地的地址;
C302、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回新的作品元数据的hash值。
作为优选,所述步骤C6包括以下步骤:
C601、用户调用所述文学作品处理系统中的publishIPNS函数,传入最新作品元数据的hash值和对应该作品的公钥;
C602、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回作品ID,该ID与步骤A3的ID相同,均为该作品公钥的hash,即该作品用于修改的唯一链接地址。
基于上述方法,本发明还提供了一种基于NFT的可修改的文学作品处理系统,该系统包括作品存储模块、作品NFT铸造模块以及作品连载更新模块;作品存储模块分别与作品NFT铸造模块和作品连载更新模块连接,作品NFT铸造模块与作品连载更新模块相互独立;
其中,所述作品存储模块,用于实现将作品上传至IPFS、IPNS以及中心化服务器:上传至IPFS的作品,会得到基于作品元数据的hash值;上传至IPNS的作品,会得到基于对应该作品的公钥的hash值,即作品ID;上传至中心化服务器的是作品元数据的副本;
所述作品NFT铸造模块,基于以太坊区块链,使用在该区块链上实现的智能合约为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;
所述作品连载更新模块,用于实现将更新后的作品发布到IPNS,保证每次访问该作品使用相同的链接地址,一部作品在连载更新过程中只有一个对应的作品ID。
本发明的有益效果:
(1)本发明提供了一种基于NFT的可修改的文学作品处理方法及系统,通过作品存储、作品NFT铸造、作品连载更新三个阶段,使基于NFT的可修改的文学作品管理系统的层次结构更清晰。借助IPFS下的命名服务系统IPNS,实现了作者基于原地址修改作品元数据的功能。
(2)本发明解决了当前连载作品不能在原地址修改的问题,该问题使得用户每次修改作品元数据都需要记录上一次的地址,给用户的使用带来诸多不便。若是用户不慎忘记上次的地址,就需要重新上传所有的作品元数据。而本发明的文学作品处理系统借助IPFS下的命名服务系统IPNS,用户在每次开始一部作品时,生成一对密钥与其对应,在发布至IPNS时,指定key为该公钥,便会得到该公钥的hash值,即作品ID,实现每部作品对应一个链接地址,用户只需存储这一个地址即可,不需要每次更新地址。并且本发明为保证用户在下载时的速度,会将作品的元数据副本上传至中心化服务器,确保终端用户下载作品时,不会受限于网络情况。
(3)本发明将方法分为三个阶段:作品存储阶段负责作品元数据的上传和发布,作品NFT铸造阶段使用中心化服务器地址和作品ID将一部作品铸造成一个NFT,作品连载更新阶段借助IPNS的特性,保证用户可以基于原地址进行内容的修改。该方案可以解决当前连载作品每次更新后都对应一个新地址的问题,当作者有多部作品时,不便于管理地址。中心化服务器存储的是元数据的副本,使用中心化服务器是为了保证第三方终端用户下载元数据副本时的速度,并且第三方终端用户可以通过向元数据拥有者验证所下载的元数据副本是否被篡改,从而解决元数据拥有者、中心化服务器和第三方终端用户三者之间的数据一致的问题,避免中心化服务器篡改元数据。
附图说明
图1为本发明的系统结构示意图;
图2为本发明的方法流程图;
图3为本实施例中作品存储活动图;
图4为本实施例中作品存储架构图;
图5为本实施例中作品NFT铸造活动图;
图6为本实施例中作品连载更新活动图;
图7为本实施例中IPFS系统与中心化服务器上传作品耗时比对图;
图8为本实施例中传统的ERC721与改进的ERC721铸造NFT时Gas消耗比对图;
图9为本实施例中IPFS系统与中心化服务器下载作品耗时比对图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例1
如图1所示,本发明提供了一种基于NFT的可修改的文学作品处理系统,包括作品存储模块、作品NFT铸造模块以及作品连载更新模块;作品存储模块,用于实现将作品上传至IPFS、IPNS以及中心化服务器:上传至IPFS的作品,会得到基于作品元数据的hash值;上传至IPNS的作品,会得到基于对应该作品的公钥的hash值,即作品ID;上传至中心化服务器的是作品元数据的副本,便于终端用户的下载;作品NFT铸造模块,基于以太坊区块链,使用在该区块链上实现的智能合约为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;作品连载更新模块,用于实现将更新后的作品发布到IPNS,节点ID保持不变,实现作者基于原地址对作品元数据修改,完成基于NFT的可修改的文学作品处理系统构建。作品存储模块分别与作品NFT铸造模块和作品连载更新模块连接,作品NFT铸造模块与作品连载更新模块相互独立。
本实施例中,本发明将系统分为三个阶段:作品存储阶段负责作品元数据的上传和发布,作品NFT铸造阶段使用中心化服务器地址和作品ID将一部作品铸造成一个NFT,作品连载更新阶段借助IPNS的特性,保证作者可以基于原地址进行内容的修改,该方案可以改善当前连载作品每次更新后都是一个新的地址,当作者有多部作品时,不便于管理地址。中心化服务器存储的是元数据的副本,使用中心化服务器是为了保证第三方终端用户下载元数据副本时的速度,并且第三方终端用户可以通过向元数据拥有者验证所下载的元数据副本是否被篡改,从而解决元数据拥有者、中心化服务器和第三方终端用户三者之间的数据一致的问题,避免中心化服务器篡改元数据。
实施例2
如图2所示,本发明还提供了一种基于NFT的可修改的文学作品处理方法,包括作品存储阶段、作品NFT铸造阶段以及作品连载更新阶段。其中,作品存储阶段分别与作品NFT铸造阶段和作品连载更新阶段连接,作品NFT铸造阶段与作品连载更新阶段相互独立;
所述作品存储阶段包括以下步骤:
A1、用户利用文学作品处理系统进行帐号注册或登录,进入文学作品处理系统;
A2、用户选择本地的作品元数据,将作品元数据上传至IPFS,得到基于作品元数据的hash值,其实现方法如下:
A201、用户进入作品存储模块,调用所述文学作品处理系统中的start函数,开启IPFS服务;
A202、用户调用所述文学作品处理系统中的uploadIPFS函数,传入作品元数据在本地的地址;
A203、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回基于作品元数据的hash值;
A3、用户使用步骤A2返回的hash值,将对应作品元数据发布至IPFS下的命名服务系统IPNS,所述文学作品处理系统返回对应该作品元数据的ID,其实现方法如下:
A301、用户传入待发布作品的元数据hash值,调用所述文学作品处理系统中的keyGen函数;
A302、所述文学作品处理系统响应用户的调用,根据内嵌在所述文学作品处理系统的密钥生成算法,生成对应该待发布作品的公私钥,并存储在本地;
A303、用户调用所述文学作品处理系统中的publishIPNS函数,传入作品元数据hash值和对应该待发布作品元数据的公钥;
A304、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回公钥的hash值,即作品元数据的ID;
A4、判断用户是否将本地的作品元数据副本上传至中心化服务器,若是,用户调用所述文学作品处理系统中的uploadCenter函数,传入作品元数据在本地的地址,所述文学作品处理系将本地的作品元数据副本上传至中心化服务器后,返回该作品元数据副本被存储到的中心化服务器的地址;否则,结束作品存储阶段的流程;
所述作品NFT铸造阶段包括以下步骤:
B1、用户调用智能合约中的deploy内置函数,执行智能合约的部署,判断是否部署成功,若是,进入步骤B2,否则,返回步骤B1,调整地址参数重新执行智能合约的部署;
B2、用户传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数,进行对对应作品NFT的铸造,其实现方法如下:
B201、用户调传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数;
B202、智能合约触发MintItem事件,进行对对应作品NFT的铸造;
B203、判断是否铸造成功,若是,返回给用户一个tokenID;否则,返回步骤B201;
所述作品连载更新阶段包括以下步骤:
C1、用户利用所述文学作品处理系统提供的作品连载更新模块,对对应作品进行修改;
C2、用户修改完成后,判断是否上传至IPFS,若是,则进入步骤C3;否则,结束作品连载更新阶段的流程;
C3、用户将当前作品修改完成后的最新元数据上传至IPFS,得到新的作品元数据的hash值,其实现方法如下:
C301、用户调用所述文学作品处理系统中的uploadIPFS函数,传入当前作品修改完成后的最新元数据在本地的地址;
C302、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回新的作品元数据的hash值;
C4、用户根据需要,可选择是否将当前作品修改完成后的最新元数据更新至中心化服务器,若是,用户调用文学作品处理系统中的uploadCenter函数,传入当前作品在本地的地址,所述文学作品处理系统执行更新最新元数据副本的操作;否则,结束作品连载更新阶段流程;
C5、所述文学作品处理系统判断用户是否将当前作品修改完成后的最新元数据更新至IPFS下的命名服务系统IPNS,若是,则进入步骤C6;否则,结束作品连载更新阶段的流程;
C6、用户使用C3返回的新的作品元数据hash值,将对应新的作品元数据更新至IPFS下的命名服务系统IPNS,完成基于NFT的可修改的文学作品处理方法,其实现方法如下:
C601、用户调用所述文学作品处理系统中的publishIPNS函数,传入最新作品元数据的hash值和对应该作品的公钥;
C602、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回作品ID,该ID与步骤A3的ID相同,均为该作品公钥的hash,即该作品用于修改的唯一链接地址。
本实施例中,如图2所示,包含作品存储阶段、作品NFT铸造、作品连载更新阶段。在仿真实验中,传统的ERC721协议仅传入中心化服务器的地址,改进的ERC721协议在传统的ERC721协议的基础上,增加传入参数IPNS地址,即作品ID。本发明的实验部署了20个IPFS节点的小型网络,模拟不同数量用户同时上传文件时的耗时,确保将作品元数据上传至IPFS和发布至IPNS的耗时在用户可接受的范围内,该部分对应上述A2和A3步骤。
如图3所示,本实施例中,作品存储阶段的实验内容具体为:IPFS部分,部署20个IPFS节点的分布式存储网络,用户数量依次从{20,40,60,80,100}中选取一个数值,记录上传和下载文件的耗时结果;中心化服务器部分,用户数量依次从{20,40,60,80,100}中选取一个数值,记录上传和下载文件的耗时结果。
如图4所示,本实施例中,描述了元数据拥有者、元数据副本服务器、第三方终端用户三者之间的关系。元数据拥有者将作品元数据上传至中心化服务器,作为作品元数据的副本;中心化服务器向第三方终端用户提供下载作品元数据副本的服务。
如图5所示,本实施例中,作品铸造NFT阶段的实验内容具体为:传统的ERC721协议,记录部署合约的Gas消耗,Gas消耗是指在以太坊区块链上执行特定操作所需的计算工作量,Gas消耗的单位为Wei;一次NFT铸造过程是指将参数对应的作品记录在区块链上的过程,执行五次铸造NFT过程,用表格记录五次铸造过程的Gas消耗;改进后的ERC721协议,记录部署合约的Gas消耗,执行五次铸造NFT过程,用表格记录五次铸造NFT过程的Gas消耗。比较传统的ERC721协议与改进后的ERC721协议在Gas消耗上的差异。
如图6所示,本实施例中,作品连载更新阶段的实验内容具体为:部署20个IPFS节点的小型分布式存储网络,受实验环境所限,仅模拟单用户发布不同大小的文件,记录发布文件至IPNS的耗时结果。
本实施例中,实验数据集指定为TXT文本文件,文件大小范围17K~227K,即一个章节到一部作品的文件大小均涵盖,实施过程中用户数量指定,但每次上传文件的大小不确定,一次测试指模拟多用户同时上传一个文件,最后取多次测试的平均耗时。
下面以三个具体实验例对本发明提供的一种基于NFT的可修改的文学作品处理系统的IPFS、IPNS、中心化服务器和改进的ERC721协议的性能表现做进一步描述。实验环境:Ubuntu20.04系统,内存4GB,单核处理器4个,实验(1)、实验(3)在该实验环境下进行多次实验取均值,受网络环境影响,实验所得数据结果会有所波动。
(1)IPFS和IPNS性能表现
模拟多用户同时上传一部作品至IPFS,实验数据集为TXT文本文件,文件大小范围17K~227K,即一个章节到一部作品的文件大小均涵盖。设置IPFS节点数为20,用户数量依次从{20,40,60,80,100}中选取一个数值,如表1所示,多用户同时上传文件至IPFS的平均耗时,随用户数量增加,平均耗时会有较大的增长。
表1
用户数量 | 20 | 40 | 60 | 80 | 100 |
耗时/ms | 18.666 | 57.906 | 127.154 | 186.203 | 267.073 |
如图7所示,上传至中心化服务器的平均耗时增长比较平缓,上传至IPFS的平均耗时增长幅度较大,但仍在用户的可接受范围内。在实际应用场景中,IPFS节点网络将是较大规模的,上传速度会相对较快,受限于实验环境,本实施例中仅在节点为20的IPFS网络中,属于一个小型的IPFS网络,上传速度也是满足日常用户需求的。
因为实验环境所限,部署20个IPFS节点的小型网络,测试单用户发布不同大小的文件到IPNS的平均耗时,分别选取文件大小为17K、100K、227K的文件,实验结果如表2所示,随着文件大小的变化,发布至IPNS的耗时随文件大小增大而增长。并且从表中的时间可以明显看出,与将文件上传至IPFS相比,将文件发布至IPNS的平均耗时会比较长,可能需要用户等待,但将文件发布至IPNS并不要求即时性,所以对于这个发布耗时,用户是可以接受的。此外,将IPNS与文学作品处理系统结合时,并不会增加额外的时间消耗,原因在于文学作品处理系统并不会额外增加IPFS主机之间的通信成本,不会有额外开销。
表2
文件大小 | 17K | 100K | 227K |
耗时/s | 26.725 | 41.992 | 67.275 |
(2)传统的ERC721与改进的ERC721性能表现
测试传统的ERC721协议和改进的ERC721协议,在相同的以太坊区块链网络中部署合约和对相同作品元数据铸造NFT的实际性能对比,Gas Limit(即可接受的最大Gas消耗)设置为3000000Wei。如表3所示,展示了部署传统的ERC721协议和改进后的ERC721协议的Gas消耗,传统的ERC721协议会更快一些,因为传统的ERC721协议部署合约时,只需要传入中心化服务器地址或IPFS地址,而改进后的ERC721协议需要传入中心化服务器地址和作品ID,传入参数增加一个。但从表3中数据可以看出,传统的ERC721协议和改进的ERC721协议的Gas消耗仍然在同一个数量级,对于合约部署来说,这种差距是可以接受的。
表3
智能合约 | 部署合约的Gas消耗/Wei |
传统的ERC721 | 2510635 |
改进的ERC721 | 2682553 |
如图8所示,展示了对同一个作品铸造一个NFT时,传统的ERC721协议与改进的ERC721协议的Gas消耗对比。改进后的ERC721协议需要消耗更多的Gas用于铸造NFT。其原因同样在于改进后的ERC721协议需要传入更多的参数以实现更高级的功能,这样做会消耗区块链的存储空间,在执行共识算法时会消耗更多算力,因此需要消耗更多的Gas。但改进的ERC721协议所消耗的Gas依然在可接受的范围内,该Gas消耗大约是传统的ERC721协议铸造一个相同的NFT所消耗的Gas的1.56倍。
(3)中心化服务器下载与IPFS直接下载性能表现
模拟用户从中心化服务器下载元数据副本和用户直接访问智能合约得到NFT的元数据地址,并从该IPFS下载元数据的耗时。设定IPFS节点数量为20,测试下载元数据的耗时。如表4所示,显示了用户从中心化服务器和IPFS网络中相同用户数量下载元数据的平均耗时对比。从表4中的数据可以看出,只要中心化服务器本身带宽足够,用户可以长期以较稳定的速度下载所有的作品元数据,用户数量增加或减少,对下载速度的影响较小;而用户从IPFS地址下载时,则往往受限于网络情况,由于上行带宽的速度远小于下行带宽,当多个用户同时发起请求时,每个可用的下载速度都无法超过从中心化服务器直接下载,并且速度很不稳定。
表4(单位:ms)
用户数量 | 20 | 40 | 60 | 80 | 100 |
中心化服务器 | 14.416 | 18.152 | 35.983 | 50.311 | 55.073 |
IPFS | 21.541 | 46.461 | 41.451 | 68.009 | 107.379 |
如图9所示,也可以看出从IPFS下载元数据的速度不稳定,用户数量为40时下载元数据的速度比用户数量为60时的速度慢;并且用户数量为80与用户数量为100时的速度差值较大,充分表明使用IPFS下载元数据的速度波动较大。此外,作为元数据提供者的IPFS节点所承受的网络压力对比:对于从中心化服务器下载元数据,IPFS网络几乎没有任何网络压力,而对于后者,IPFS通常会承受较大网络压力,因为它们要向多个节点提供下载服务。因此,从中心化服务器下载元数据副本的方式能够降低网络的拥塞情况,而空余的网络可以为其他网络服务提供更多的空间。
以上所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (10)
1.一种基于NFT的可修改的文学作品处理方法,其特征在于,包括A作品存储阶段、B作品NFT铸造阶段以及C作品连载更新阶段;其中,A作品存储阶段分别与B作品NFT铸造阶段和C作品连载更新阶段连接,B作品NFT铸造阶段与C作品连载更新阶段相互独立;
所述A作品存储阶段:将作品上传至IPFS、IPNS以及中心化服务器:上传至IPFS的作品,会得到基于作品元数据的hash值;上传至IPNS的作品,会得到基于对应该作品的公钥的hash值,即作品ID;上传至中心化服务器的是作品元数据的副本;
所述B作品NFT铸造阶段:基于以太坊区块链,使用在该区块链上实现的智能合约为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;
所述C作品连载更新阶段:将更新后的作品发布到IPNS,保证每次访问该作品使用相同的链接地址,一部作品在连载更新过程中只有一个对应的作品ID。
2.根据权利要求1所示的一种基于NFT的可修改的文学作品处理方法,其特征在于,
所述A作品存储阶段包括以下步骤:
A1、用户利用文学作品处理系统进行帐号注册或登录,进入文学作品处理系统;
A2、用户选择本地的作品元数据,将作品元数据上传至IPFS,得到基于作品元数据的hash值;
A3、用户使用步骤A2返回的hash值,将对应作品元数据发布至IPFS下的命名服务系统IPNS,所述文学作品处理系统返回对应该作品元数据的ID;
A4、判断用户是否将本地的作品元数据副本上传至中心化服务器,若是,用户调用所述文学作品处理系统中的uploadCenter函数,传入作品元数据在本地的地址,所述文学作品处理系将本地的作品元数据副本上传至中心化服务器后,返回该作品元数据副本被存储到的中心化服务器的地址;否则,结束作品存储阶段的流程。
3.根据权利要求2所示的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述B作品NFT铸造阶段包括以下步骤:
B1、用户调用智能合约中的deploy内置函数,执行智能合约的部署,判断是否部署成功,若是,进入步骤B2,否则,返回步骤B1,调整地址参数重新执行智能合约的部署;
B2、用户传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数,进行对对应作品NFT的铸造。
4.根据权利要求3所示的一种基于NFT的可修改的文学作品处理方法,其特征在于所述C作品连载更新阶段包括以下步骤:
C1、用户利用所述文学作品处理系统提供的作品连载更新模块,对对应作品进行修改;
C2、用户修改完成后,判断是否上传至IPFS,若是,则进入步骤C3;否则,结束作品连载更新阶段的流程;
C3、用户将当前作品修改完成后的最新元数据上传至IPFS,得到新的作品元数据的hash值;
C4、用户根据需要,可选择是否将当前作品修改完成后的最新元数据更新至中心化服务器,若是,用户调用文学作品处理系统中的uploadCenter函数,传入当前作品在本地的地址,所述文学作品处理系统执行更新最新元数据副本的操作;否则,结束作品连载更新阶段流程;
C5、所述文学作品处理系统判断用户是否将当前作品修改完成后的最新元数据更新至IPFS下的命名服务系统IPNS,若是,则进入步骤C6;否则,结束作品连载更新阶段的流程;
C6、用户使用C3返回的新的作品元数据hash值,将对应新的作品元数据更新至IPFS下的命名服务系统IPNS,完成基于NFT的可修改的文学作品处理方法。
5.根据权利要求2所述的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述步骤A2包括以下步骤:
A201、用户进入作品存储模块,调用所述文学作品处理系统中的start函数,开启IPFS服务;
A202、用户调用所述文学作品处理系统中的uploadIPFS函数,传入作品元数据在本地的地址;
A203、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回基于作品元数据的hash值。
6.根据权利要求2所述的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述步骤A3具体为:
A301、用户传入待发布作品的元数据hash值,调用所述文学作品处理系统中的keyGen函数;
A302、所述文学作品处理系统响应用户的调用,根据内嵌在所述文学作品处理系统的密钥生成算法,生成对应该待发布作品的公私钥,并存储在本地;
A303、用户调用所述文学作品处理系统中的publishIPNS函数,传入作品元数据hash值和对应该待发布作品元数据的公钥;
A304、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回公钥的hash值,即作品元数据的ID。
7.根据权利要求3所述的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述步骤B2包括以下步骤:
B201、用户调传入步骤A3返回的作品元数据的ID和步骤A4返回的中心化服务器存储作品元数据副本的地址,调用智能合约中的mintItem函数;
B202、智能合约触发MintItem事件,进行对对应作品NFT的铸造;
B203、判断是否铸造成功,若是,返回给用户一个tokenID;否则,返回步骤B201。
8.根据权利要求4所述的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述步骤C3包括以下步骤:
C301、用户调用所述文学作品处理系统中的uploadIPFS函数,传入当前作品修改完成后的最新元数据在本地的地址;
C302、所述文学作品处理系统触发UploadIPFS事件,IPFS服务响应,返回新的作品元数据的hash值。
9.根据权利要求4所述的一种基于NFT的可修改的文学作品处理方法,其特征在于,所述步骤C6具体为:
C601、用户调用所述文学作品处理系统中的publishIPNS函数,传入最新作品元数据的hash值和对应该作品的公钥;
C602、所述文学作品处理系统触发PublishIPNS事件,IPNS服务响应,返回作品ID,该ID与步骤A3的ID相同,均为该作品公钥的hash,即该作品用于修改的唯一链接地址。
10.一种基于NFT的可修改的文学作品处理系统,其特征在于,包括作品存储模块、作品NFT铸造模块以及作品连载更新模块;作品存储模块分别与作品NFT铸造模块和作品连载更新模块连接,作品NFT铸造模块与作品连载更新模块相互独立;
所述作品存储模块,用于实现将作品上传至IPFS、IPNS以及中心化服务器:上传至IPFS的作品,会得到基于作品元数据的hash值;上传至IPNS的作品,会得到基于对应该作品的公钥的hash值,即作品ID;上传至中心化服务器的是作品元数据的副本;
所述作品NFT铸造模块,基于以太坊区块链,使用在该区块链上实现的智能合约为每一部作品铸造唯一的NFT,在作品连载更新过程中始终对应该NFT;
所述作品连载更新模块,用于实现将更新后的作品发布到IPNS,保证每次访问该作品使用相同的链接地址,一部作品在连载更新过程中只有一个对应的作品ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256308.3A CN115600255B (zh) | 2022-10-14 | 2022-10-14 | 一种基于nft的可修改的文学作品处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256308.3A CN115600255B (zh) | 2022-10-14 | 2022-10-14 | 一种基于nft的可修改的文学作品处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115600255A true CN115600255A (zh) | 2023-01-13 |
CN115600255B CN115600255B (zh) | 2023-06-27 |
Family
ID=84847431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211256308.3A Active CN115600255B (zh) | 2022-10-14 | 2022-10-14 | 一种基于nft的可修改的文学作品处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115600255B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020718A (zh) * | 2021-11-06 | 2022-02-08 | 北京瑞策科技有限公司 | 一种不可更改nft作品处理方法及其装置 |
KR102388233B1 (ko) * | 2021-09-02 | 2022-04-18 | 김한조 | 블록체인 기반의 nft를 이용한 음원 플랫폼의 서버에서 수행되는 서비스 제공 방법 |
-
2022
- 2022-10-14 CN CN202211256308.3A patent/CN115600255B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102388233B1 (ko) * | 2021-09-02 | 2022-04-18 | 김한조 | 블록체인 기반의 nft를 이용한 음원 플랫폼의 서버에서 수행되는 서비스 제공 방법 |
CN114020718A (zh) * | 2021-11-06 | 2022-02-08 | 北京瑞策科技有限公司 | 一种不可更改nft作品处理方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115600255B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094997B (zh) | 一种云计算主机节点间物理内存共享方法和系统 | |
Annapureddy et al. | Shark: Scaling file servers via cooperative caching | |
CN111586095B (zh) | 基于微服务灰度发布方法、装置、计算机设备及存储介质 | |
JP2019032903A (ja) | エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体 | |
CN108337106B (zh) | 物联网微服务系统架构的构建方法、平台及计算机设备 | |
US20100287280A1 (en) | System and method for cloud computing based on multiple providers | |
US20140172406A1 (en) | Evaluating distributed application performance in a new environment | |
CN109358971B (zh) | 动态网络环境中快速且负载均衡的服务功能链部署方法 | |
CN111158851B (zh) | 一种虚拟机快速部署方法 | |
WO2006055899A2 (en) | Systems and methods for dynamically updating computer systems | |
CN105100267A (zh) | 大企业私有云的部署装置和方法 | |
CN104301338A (zh) | 基于云平台的应用系统自动部署方法 | |
CN102420873A (zh) | 复合网络全新云应用平台 | |
Kolehmainen | Secure firmware updates for iot: A survey | |
CN114996750A (zh) | 数据共享方法以及装置 | |
CN106484458B (zh) | 一种开放型软件仓库管理系统及其管理方法 | |
CN115600255A (zh) | 一种基于nft的可修改的文学作品处理方法及系统 | |
CN111090442B (zh) | 一种应用更新方法、装置和存储介质 | |
Huang et al. | S-cache: Toward an low latency service caching for edge clouds | |
CN113590020A (zh) | 用于数据管理的方法、设备和计算机程序产品 | |
Tang et al. | A block-level caching optimization method for mobile transparent computing | |
WO2024021471A1 (zh) | 一种服务更新方法、装置、系统和存储介质 | |
CN114416131A (zh) | 一种应用升级方法、应用升级平台、电子设备及存储介质 | |
CN106033434A (zh) | 基于数据规模和流行程度的虚拟资产数据副本处理方法 | |
US11663058B1 (en) | Preemptive filtering of events of an event bus with a deterministic filter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |