【Solidity】智能合约案例——③版权保护合约
目录
一、合约源码分析:
二、合约整体流程:
1.部署合约:
2.添加实体:
3.查询实体
4.审核版权:
5.版权转让
一、合约源码分析:
Copyright.sol:主合约,定义了版权局的实体,功能为:审核版权
Opus.sol:定义两个实体:作者和作品,功能为:作者账号注册、作者信息查询、申请作品版权、查询作品信息、转让版权
二、合约整体流程:
1.部署合约:
部署此合约需要首先设置一个监管者,在本合约中,身份为版权局

合约全方法:

2.添加实体:
首先添加作者,需要传入作者的姓名,id,地址。id一般为身份证号,作为链上作者身份的唯一标识。这里先注册两个账号,以便后续测试其他方法使用。


接下来使用其中一个作者账号的地址申请作品版权,需要传入作品的名称,作者名称,作品编号,日期,作者地址。

3.查询实体:
可以使用合约内部的方法对作者和作品版权信息进行查询,只需传入唯一id或作品编号即可

作品版权信息的查询会返回一个状态值,0:未审核,1:审核通过,2:审核未通过
4.审核版权:
提交的版权申请必须经过审核才能被转让,因此需要版权局对申请的作品进行审核。

此时再次对作品信息查询,作品信息内容发生改变

5.版权转让:
将版权转让给另一个用户,版权转让要求必须为已经通过审核的版权,并且要求操作者身份为版权原拥有人。

转让后再次查询作品信息,发现版权所有人发生改变

至此,合约的流程结束,该合约可以为创作者提供更可靠、高效的版权管理解决方案,减少版权侵权和纠纷,提升版权保护的效率和可信度。
相关文章:
【Solidity】智能合约案例——③版权保护合约
目录 一、合约源码分析: 二、合约整体流程: 1.部署合约: 2.添加实体: 3.查询实体 4.审核版权: 5.版权转让 一、合约源码分析: Copyright.sol:主合约,定义了版权局的实体ÿ…...
Cisco IOS XE Web UI 命令执行漏洞
Cisco IOS XE Web UI 命令执行漏洞 受影响版本 Cisco IOS XE全版本 漏洞描述 Cisco IOS XE Web UI 是一种基于GUI的嵌入式系统管理工具,能够提供系统配置、简化系统部署和可管理性以及增强用户体验。它带有默认映像,因此无需在系统上启用任何内容或安…...
qwen大模型,推理速度慢,单卡/双卡速度慢,flash-attention安装,解决方案
场景 阿里的通义千问qwen大模型,推理速度慢,单卡/双卡速度慢。 详细: 1、今日在使用qwen-14b的float16版本进行推理(BF16/FP16) 1.1 在qwen-14b-int4也会有同样的现象 2、使用3090 24G显卡两张 3、模型加载的device是auto&#x…...
3.SpringSecurity基于数据库的认证与授权
文章目录 SpringSecurity基于数据库的认证与授权一、自定义用户信息UserDetails1.1 新建用户信息类UserDetails1.2 UserDetailsService 二、基于数据库的认证2.1 连接数据库2.2 获取用户信息2.2.1 获取用户实体类2.2.2 Mapper2.2.3 Service 2.3 认证2.3.1 实现UserDetails接口2…...
【软件测试】自动化测试selenium
目录 一、什么是自动化测试 二、Selenium介绍 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API 1.1、元素定位 1.1.1、CSS选择器 1.1.2、Xpath元素定位 1.1.3、面试题 1.2、操作测试对象 1.3、添加等待 1.4、打印信息 1.5、浏…...
如何解决Google play开发者新注册账号,身份验证的地址证明问题?
我们知道,Google Play应用市场的发展速度惊人,但这两年,为了防止恶意软件的传播,谷歌要求开发者账号需要进行身份验证才能发布应用。 而今年越来越严格,不仅在提审时需要进行电话验证(链接)&am…...
Gin vs Beego: Golang的Web框架之争
前言 Golang作为一门高效且简洁的语言,已经在Web开发领域得到了广泛的应用。Gin和Beego是Golang中两个著名的Web框架,它们都提供了一系列强大的功能,帮助开发者构建高性能的Web应用。本文将对Gin和Beego进行全面的对比,帮助开发者…...
javascript IP地址正则表达式
/^(1[0-9]{2}|2[0-4][0-9]|25[0-5]|(\d){1,2})\.(1[0-9]{2}|2[0-4][0-9]|25[0-5]|(\d){1,2}|0)\.(1[0-9]{2}|2[0-4][0-9]|25[0-5]|(\d){1,2}|0)\.(1[0-9]{2}|2[0-4][0-9]|25[0-5]|(\d){1,2}|0)$/g.test(10.2.35.8) 注: 一定不要把表达式赋值给变量,直接…...
【Bash】记录一个长命令换行的BUG
假设现在我要在terminal执行如下命令跑模型: CUDA_VISIBLE_DEVICES6 python finetune.py -c configs/quantized/resnet32_cifar100_finetune.yml --model resnet32 --data-dir ~/datasets --apex-amp --initial-checkpoint /home/zwx/projects/hawq/resnet32.pth.t…...
【.net core】yisha框架imageupload组件多图上传修改
框架\wwwroot\lib\imageupload\1.0\js路径下imgup.js文件,参照旧版本代码和修改代码修改 (function ($) {"use strict";var deleteParent;var deleteDisplay none;var defaults {fileType: ["jpg", "png", "bmp", "…...
vscode markdown 使用技巧 -- 如何快速打出一个Tab 或多个空格
背景描述: 我在使用VSCode,这玩意很好用,但是,有一个缺点是,我想使用Tab来做一些对齐,但是我发现在VSCode中,无论是Tab还是多个空格,最终显示出来的都是一个空格 使用代码可以实现打…...
I/O 模型学习笔记【全面理解BIO/NIO/AIO】
文章目录 I/O 模型什么是 I/O 模型Java支持3种I/O模型BIO(Blocking I/O)NIO(Non-blocking I/O)AIO(Asynchronous I/O) BIO、NIO、AIO适用场景分析 java BIOJava BIO 基本介绍Java BIO 编程流程一个栗子实现…...
【Python学习笔记】字符编码
1. 字符串编码 Python3语言里面的字符串对象是unicode字符串,在内存中实际存储时,使用的是 UTF16 编码。但通常不会将UTF16编码的内容写到磁盘或者在网络进行传输, 因为utf16编码比较浪费空间。特别是如果文字信息基本都是英文符号的情况下&…...
华为昇腾NPU卡 大模型LLM ChatGLM2模型推理使用
参考:https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/glm2.md#chatglm2-6b 1、安装环境: 昇腾NPU卡对应英伟达GPU卡,CANN对应CUDA底层; mindspore对应pytorch;mindformers对应transformers 本…...
Git 拉取远程更新报错
报错内容如下: cannot lock ref refs/remotes/origin/bugfix/bug: refs/remotes/origin/bugfix 已存在,无法创建 refs/remotes/origin/bugfix/bug 来自 gitlab.zhangyue-inc.com:dejian_ios/iReaderDejian! [新分支] bugfix/bug -> ori…...
腾讯云国际站服务器端口开放失败怎么办?
腾讯云服务器是腾讯公司推出的一种云服务,用户能够经过这种方式在互联网上进行数据存储和计算。然而,用户在运用腾讯云服务器时或许会遇到各种问题,其间端口敞开失利是一个常见问题。本文将具体介绍如何解决腾讯云服务器端口敞开失利的问题。…...
一句话解释什么是出口IP
出口 IP 是指从本地网络连接到公共互联网时所使用的 IP 地址。这个 IP 地址是由 Internet 服务提供商(ISP)分配给你的,它可以用来标识你的网络流量的来源。如果你使用的是 NAT(网络地址转换)技术,则在 NAT 设备内部会进行地址转换,使得多个设备可以共享同一个公共 IP 地…...
深入理解强化学习——强化学习的历史:试错学习
分类目录:《深入理解强化学习》总目录 让我们现在回到另一条通向现代强化学习领域的主线上,它的核心则是试错学习思想。我们在这里只对要点做概述,《深入理解强化学习》系列后面的文章会更详细地讨论这个主题。根据美国心理学家R.S.woodworth…...
分享一个用HTML、CSS和jQuery构建的漂亮的登录注册界面
作为一个前端开发人员,我们经常需要构建用户的登录和注册界面。一个漂亮、用户友好的登录注册界面对于提升用户体验和网站形象至关重要。以下我们使用HTML、CSS和jQuery来做一个漂亮的登录注册界面。 首先,我们需要创建一个html文档,定义登录…...
Java学习 习题 1.
一、 1.2. 3. 4. 5. 二、 1. 2. 3. 4. 5. 6. 7. 8....
2026年大数据专业数据分析学习指南
一、核心技术与工具2026年主流大数据技术栈(如Spark、Flink、Hadoop生态) 实时数据处理与批处理技术对比 云原生数据分析平台(AWS/GCP/Azure解决方案) 机器学习与深度学习在数据分析中的融合应用二、数学与统计基础概率论与数理统…...
别再只用Speedtest了!自建LibreSpeed测速站,监控家庭宽带/公司内网真实表现
自建网络测速站:用LibreSpeed打造精准带宽监控系统 每次看到运营商宣传的"千兆宽带",你是否怀疑过实际使用中根本达不到承诺速度?公共测速网站的结果总让人将信将疑——它们可能被ISP特殊优化,或是受限于服务器位置。更…...
锁相双极性PWM电机驱动原理与STM32实现
1. 项目概述Motor_LockedAntiphase是一个面向嵌入式电机控制的轻量级驱动库,专为实现锁相双极性PWM(Locked Antiphase PWM)控制模式而设计。该模式广泛应用于直流有刷电机(DC Brushed Motor)的双向调速与精确力矩控制场…...
嵌入式开发中全局变量的优化实践与替代方案
1. 嵌入式开发中的全局变量困境作为一名在嵌入式领域摸爬滚打多年的工程师,我见过太多因为滥用全局变量而陷入维护噩梦的项目。记得刚入行时接手过一个智能家居控制器的代码库,打开项目一看,光是extern声明的全局变量就有200多个,…...
2026年4月最新:全职作者深度测评8款AI写长篇小说专业工具,谁能打破“吃设定”与“机器味”魔咒?
到了2026年4月,网文圈的生产方式已经发生了根本性的重构。现在的全职作者,早就不只是单纯地在键盘前死磕字数了。为了在这个极其内卷的市场中活下来,我们不仅要保证每天稳定的更新量,还要考虑 IP 的后续孵化——比如把高光剧情快速…...
内容管理系统 CMS 发展史:从静态建站到 2026 智能一体化协同平台
内容管理系统(CMS)作为支撑互联网内容生态的核心基础软件,自诞生以来已走过 30 余年历程。它始终紧跟技术浪潮与市场需求,从最初简单的静态页面制作工具,逐步演进为集内容管理、低代码开发、智能分析、多端分发于一体的…...
终极指南:如何使用snabbt.js创建惊艳的Web动画效果
终极指南:如何使用snabbt.js创建惊艳的Web动画效果 【免费下载链接】snabbt.js Fast animations with javascript and CSS transforms 项目地址: https://gitcode.com/gh_mirrors/sn/snabbt.js 在当今的Web开发领域,snabbt.js作为一款极简主义的J…...
C++ 多线程同步机制详解
C多线程同步机制详解 在现代计算机系统中,多线程编程已成为提升程序性能的重要手段。多线程环境下的资源共享与竞争问题也随之而来,稍有不慎便会导致数据不一致、死锁等问题。C提供了丰富的多线程同步机制,帮助开发者高效管理线程间的协作与…...
GModPatchTool:一站式Garry‘s Mod游戏问题解决方案与优化工具
GModPatchTool:一站式Garrys Mod游戏问题解决方案与优化工具 【免费下载链接】GModPatchTool 🇬🩹🛠 Patches for Garrys Mod. Updates/Improves CEF and Fixes common launch/performance issues (esp. on Linux/Proton/macOS). …...
别只盯着表达量!单基因功能挖掘:LinkedOmics相关性分析与STRING互作网络实战指南
单基因功能深度挖掘:从相关性分析到互作网络的系统研究策略 在生物医学研究中,单基因分析往往被简化为差异表达检验,这种局限视角可能掩盖了基因在复杂生物网络中的多维作用。当我们在TCGA数据中发现某个基因在特定癌症中表达异常时ÿ…...
