2023年山东省高职组区块链技术竞赛任务书

2023年山东省高职组区块链技术任务书

目录

模块一:区块链产品方案设计及系统运维

任务1-1:区块链产品需求分析与方案设计

任务1-2:区块链系统部署与运维

任务1-3:区块链系统测试

模块二:智能合约开发与测试

任务2-1:智能合约设计

任务2-2:智能合约开发

任务2-3:智能合约测试

模块三:区块链应用系统开发

任务3-1:区块链应用前端功能开发

任务3-2:区块链应用后端功能开发

需要资料可私信博主

背景描述

随着异地务工人员的增多,房屋租赁成为一个广阔市场。目前,现有技术中的房屋租赁是由房主发布租赁信息,租赁信息发布在房屋中介或租赁软件,租客获取租赁信息后,现场看房,并签订纸质的房屋租赁合同,房屋租赁费用通过中介或直接给房主。另外,后期的房租还需房主收取。

区块链房屋租赁平台业务流程图

现在利用区块链技术实现房屋租赁平台,将房东、房屋、租客加入到区块链网络中,将发布、租赁、合同、房租等信息存储在区块链的分布式网络中,永久有效、无法篡改。在房屋租赁场景中, 房东将房屋租出后,无法有效控制房屋的使用权,比如租客未履行租赁合约相应内容时,房东无法及时有效限制租客对房屋的使用,造成租金或房屋使用权的回收困难。租赁合约履行过程中房东如果要求租客提前搬离,也会造成租客的利益损失。现有一基于区块链的房屋租赁平台S,房东L在S中出租一套房屋,S中可以调用该房屋的电子锁E的密码。L在S中发放租房合同给租客T,默认L会发放合同,不考虑其他情况。合同中规定,房租每个月的费用是3000元,交付形式是押一付一,每个月的16号交房租。默认T会签署合同,不考虑其他情况。在T签署合同后的24小时之内,T需要在S中预存3000元保证金、3000元租金(需要按照本顺序声明),如果T未预存,交易失败。如果T预存了保证金和一个月租金,L需要在24小时内在S中预存3000元保证金,如果L未在规定时间内预存保证金,S将T的保证金与租金退回,如果L预存保证金,本交易开始执行。S自动将T的一个月房租转账给L,并将房屋E的密码发送给T。在每月16日,E会自动更换密码,如果T按时缴纳房租,S将房屋密码重新更新给T;当T到期未缴纳,S将T的保证金转账给L代替一个月的租金,S仍会将密码更新给T;如果保证金已被扣除后的月份T仍然到期未缴纳,等待补缴,T不补缴房屋密码变更会导致T进不去房屋。当未到租期L提前终止合同,S将L的保证金转给T,如果T还有保证金将保证金一并退还给T。当未到租期T提前终止合同,如果还有保证金S将T的保证金转给L,T还需赔偿L一个月租金,如果T保证金已被扣除,T需赔偿L两个月租金,S将L的保证金退还给L。默认T会赔偿租金不考虑其他情况。当合同正常到期,S将L的保证金退还,T如果还有也退还。本案例只考虑违反合同日期的情况,不考虑其他情况。

区块链房屋租赁平台系统架构图

模块一:区块链产品方案设计及系统运维

选手完成本模块的任务后,将任务中软件建模图、配置文件、运行结果等截图(截图内容清晰且完整)和文字内容粘贴至客户端桌面【工位号文件夹\模块一提交结果.docx】中对应的任务序号下。

任务1-1:区块链产品需求分析与方案设计

房屋租赁平台中涉及到租客、房东、区块链租房平台、房屋等参与方,他们需要在区块链租房平台中完成账户注册、身份上链、出租房屋、生成合同等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于房屋租赁平台系统架构,以区块链房屋租赁平台为背景,结合账户注册、登录服务、入驻上链、房屋出租、房租缴费等核心功能描述,撰写流程图/功能图、用例图等概要设计。

房屋租赁平台中涉及到租客、房东、区块链租房平台、房屋等参与方,他们需要在区块链租房平台中完成账户注册、身份上链、出租房屋、生成合同等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于房屋租赁平台系统架构,以区块链房屋租赁平台为背景,结合账户注册、登录服务、入驻上链、房屋出租、房租缴费等核心功能描述,使用Visio绘制用例图、功能图、架构图等概要设计。

本任务需要依据项目背景完成需求分析与方案设计,具体要求如下:

  1. 根据项目给定的背景描述和房屋租赁平台业务概览图,对房屋租赁平台进行分析,完成以下任务:
      1. 编写用户群体需求分析,明确系统用户群体及其需求;
      2. 绘制系统UML用例图,用例图中包含系统参与角色以及用例。
  2. 依据给定的背景信息、房屋租赁平台业务概览图以及给出的房屋租赁平台的核心流程,使用Visio编制业务系统功能图;

表1-1-1 房屋租赁平台的核心流程

发布租房合同流程

房东起草租房合同协议,填写房屋信息、租期、房租等。使用房东的私钥对租房合同进行签名并广播到区块链中进行存证

签署合同流程

房东对租房合同进行签名

缴纳房租流程

区块链房屋租赁平台节点实时房屋到期时间

  1. 按照基础层、合约层、接口层以及应用层的结构来设计区块链系统的架构,其中在基础层需指明需要的节点、名称、协议、存储等信息,使用Visio绘制系统架构图。

任务1-2:区块链系统部署与运维

围绕区块链食品安全溯源平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维护,具体要求如下:

  1. 根据参数与端口设置要求,部署区块链系统并验证;
  2. 根据参数与端口设置要求,部署区块链网络管理平台并验证;
  3. 基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证;
  4. 基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管。

子任务1-2-1: 搭建区块链网络并验证

基于给定服务器环境以及软件(地址“/root/tools”),搭建单机、单机构、两群组、五节点的区块链系统并验证,具体工作内容如下:

机构

群组

节点

P2P端口

channel端口

rpc端口

agency

group1

node0、node1、node2

30200

20200

8020

agency

group2

node3、node4

30300

20300

8030

区块链网络搭建信息表

      1. 根据区块链网络搭建信息表编写ipconf配置文件搭建区块链网络,ipconf文件内容和创建过程的输出结果截图保存;
      2. 通过命令验证区块链节点进程运行状况,结果截图;
      3. 通过命令验证区块链节点(node1)连接节点数和共识状态日志输出,结果截图。

子任务1-2-2:搭建区块链控制台并验证

基于给定服务器环境以及软件(地址“/root/tools”),搭建区块链控制台并开展相关运维工作,具体工作内容如下:

      1. 配置控制台,管理相关证书并启动,控制台启动结果截图;
      2. 使用控制台部署HelloWorld智能合约,命令和结果截图;
      3. 使用控制台完成HelloWorld智能合约的set与get操作,命令和结果截图;
      4. 将控制台从group1切换到group2,命令和结果截图;

子任务1-2-3:区块链账户权限控制

基于已完成的区块链系统与控制台搭建工作,开展区块链账户权限管理等运维工作,具体内容如下:

  1. 运行脚本创建三个新的账户(格式为pem),使用账户1(account1)指定群组1登录控制台,添加账户1(account1)、账户2(account2)和账户3(account3)为委员并验证,过程和结果截图保存;
  2. 修改账户1的票数为2并验证,修改投票阈值为75%并验证,结果截图保存;
  3. 撤销账户3(account3)的委员权限,设置账户3为运维角色并验证,过程和结果截图保存。

子任务1-2-4:区块链网络运维

根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:

  1. 设置区块链系统黑名单,将node3设为黑名单禁止并通过控制台验证node3的Peers,配置文件和验证结果截图;
  2. 通过给定工具(地址/root/tools)完成新节点(node5)创建,将新节点(node5)接入群组1和群组2并参加共识,通过日志信息验证新节点(node5)已经接入群组1和2,过程和验证结果截图保存;
  3. 在群组1中将node1设置为观察节点,验证结果并截图。

任务1-3:区块链系统测试

基于WeBASE的部署脚本完成WeBASE环境搭建以及搭建结果验证,最后将执行结果截图保存。

  1. 实现WeBASE平台部署,访问WeBASE管理平台首页,截图保存;
  2. 使用WeBASE-Sign进行对数据E7ADBEE5908D进行签名,结果截图;
  3. 使用WeBASE-Front查询机器历史性能信息,结果截图。

序号

中文

参数名

类型

必填

说明

1

开始日期

beginDate

LocalDateTime

2

结束日期

endDate

LocalDateTime

3

对比开始日期

contrastBeginDate

LocalDateTime

4

对比结束日期

contrastEndDate

LocalDateTime

5

间隔

gap

int

默认为1

机器历史性能查询参数表

模块二:智能合约开发与测试

选手完成本模块的任务后,将任务中设计结果、运行代码、运行结果等截图(截图内容清晰且完整)粘贴至客户端桌面【工位号文件夹\模块二提交结果.docx】中对应的任务序号下。

任务2-1:智能合约设计

根据区块链房屋租赁平台产品需求分析和设计文档的描述,绘制智能合约UML时序图,编写该区块链产品的智能合约功能需求文档,具体要求如下:

  1. 绘制区块链房屋租赁平台的智能合约UML时序图;
  2. 结合区块链房屋租赁平台项目背景、需求分析和功能设计等,编写区块链房屋租赁平台的智能合约功能需求文档。

任务2-2:智能合约开发

使用Solidity语言进行智能合约开发,根据需求功能介绍在待补充源码中完成程序接口功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约进行业务功能的验证,下列子任务中的合约编码表示合约中对应接口功能开发。

子任务2-2-1:ERC20智能合约

根据需求功能介绍在待补充源码中完成ERC20合约相关功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约中的mint、approve和transferFrom函数。

  1. 编写mint函数,完成本函数,代码和验证结果截图保存;
  2. 编写授权函数,授权token数量不能超过授权者拥有的token数量,代码和验证结果截图保存;
  3. 编写被授权者转移token的函数,被转移的地址不能是零地址,转移额度不能超过授权额度,余额等变量正确增减,代码和验证结果截图保存。

子任务2-2-2:房屋信息智能合约

根据需求功能介绍在待补充源码中完成房屋信息合约的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约中的mint和transfer函数。

  1. 编写将房东房屋上链的mint函数,实现将房东的房屋信息存储到区块链的功能,房屋编号不能已经被使用,将房东与房屋链接起来,代码和验证结果截图保存;
  2. 编写转移房屋的transfer函数,验证用户是否有权限对此房屋进行处置,并完成其他相应功能,代码和验证结果截图保存。

子任务2-2-3:房屋租赁合约

根据需求功能介绍在待补充源码中完成房屋租赁合约的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约中的创建租赁合同、房东签署合同、租客签署合同和房东解除合同的功能。

  1. 完善房屋租赁合约的继承,合约引入等代码,代码截图保存;
  2. 编写创建房屋租赁合同函数,房屋租赁合同只能有房屋拥有者创建且创建合同之前需将此房屋授权给房屋租赁合约,每个房屋租赁合同都有唯一编号,代码和验证结果截图保存;
  3. 编写房东签署合同函数,房东签署租赁合同是要确保房东拥有此房屋,且签名前要确保合同为都未签署或租客签署但房东未签署的状态下,签署后房屋被转移到房屋租赁合约名下,更新合同状态,代码和验证结果截图保存;
  4. 编写租客签署合同函数,租客签署租赁合同是要确保租客授权金额足够,且签名前要确保合同为都未签署或房东签署但租客未签署的状态下,更新合同状态,代码和验证结果截图保存;
  5. 编写房东解除合同函数,合同处于签署状态下才可以解除合同,解除合同请求只能由房东发出,解除后将押金退还个租客,代码和验证结果截图保存。

任务2-3:智能合约测试

子任务2-3-1:基于Web前置平台的合约测试

    1. 解决代码错误和警告,正确编译所有合约并部署合约,成功获取部署的合约地址和abi,智能合约地址截图,abi文件命名为【智能合约.abi】并保存至客户端桌面【工位号文件夹】下;。
    2. 使用WeBASE调用任务2-2中所有需要补全代码的智能合约接口进行测试,运行结果截图。

子任务 2-3-2:漏洞测试

分析下面漏洞智能合约,使用WeBASE进行漏洞复现,修复漏洞并使用WeBASE进行验证。

如下有问题的合约代码:

contract SimpleERC20 {

    address public owner;

    uint public total;

    mapping(address => uint) private balances;

    

    event Mint(address,uint);

    constructor() public {

        owner = msg.sender;

    }

    //bytes(mint_d22vi9okr4w(address)) = 6D696E745F6432327669396F6B723477286164647265737329

    function mint_d22vi9okr4w(address _account) public {

        require(msg.sender == owner);

        require(balances[_account]+1000 > balances[_account] && total+1000 > total);

        balances[_account] +=1000;

        total +=1000;

        emit Mint(_account,balances[_account]);

    }

//transfer(address,address,uint256) = 7472616E7366657228616464726573732C616464726573732C75696E7432353629

function transfer(address from,address to,uint amount) public {

        require(msg.sender==owner);

        require(balances[from] >= amount && balances[to] + amount > balances[to]);

        balances[from] -=amount;

        balances[to] +=amount;

    }

    function getBalance(address _account) public view returns(uint) {

        return balances[_account];

    }

}

contract factoryERC20{

    address public owner;

    constructor() public {

        owner = msg.sender;

    }

    function mint(address _token,address _account)public returns(bool){

        require(msg.sender == owner);

        (bool success, ) = address(_token).call(abi.encodePacked(bytes4(0x00000000), abi.encode(_account)));

    }

    

    function createERC20() public returns (address){

        SimpleERC20 erc = new SimpleERC20();

        return address(erc);

    }

    function transfer(bytes memory _method ,address _token,address _to, uint _ammount) public returns(bool){

        (bool success, ) = address(_token).call(abi.encodePacked(bytes4(keccak256(abi.encodePacked(_method))), abi.encode(msg.sender, _to, _ammount)));

        return success;

    }

    

    function getBalance(address _token,address _account) public returns(uint){

        SimpleERC20 erc = SimpleERC20(_token);

        return erc.getBalance(_account);

    }

}

  1. 分析智能合约中存在问题,并说明导致漏洞的原因及其危害;
  2. 通过WeBASE调用智能合约,复现智能合约中存在的漏洞,结果截图;
  3. 修复智能合约漏洞并测试,修复结果和测试结果截图。

模块三:区块链应用系统开发

选手完成本模块的任务后,将任务中添加代码、Web页面、运行结果等截图粘贴至客户端桌面【工位号文件夹\模块三提交结果.docx】中对应的任务序号下。

任务3-1:区块链应用前端功能开发

完成区块链应用系统的构建、服务器端(后端)与Web端(前端)的接口的联调。要求如下:

  1. 在user.vue中,使用VsCode工具,按照押金详情原型图的长度、宽度、行高、间距、文字样式、颜色等,完成押金详情页面的样式开发,完成Vue调用押金查询接口API,获取接口返回的租房人、房屋位置、楼号、押金金额、收款人、收款日期信息,填充至Vue页面中,将Web页面和调用API接口部分代码截图保存;

  1. 在active.vue中,完成退出登录功能,退出后返回主页面并清除存储的address信息,代码截图保存。
  2. 在HomeView.vue中完成登录功能,登录时传入私钥、用户地址和用户类型,验证私钥为16进制。后端返回登录成功信息后跳转到对应页面,代码截图保存。

任务3-2:区块链应用后端功能开发

子任务3-2-1:区块链网络环境启动

区块链应用系统开发需要区块链底层网络进行支撑,完成和链上数据进行交互,与节点建立链接,完成链上信息查询。要求如下:

使用IntelliJ IDEA工具,打开(BlockDataProcessor.java)文件,在查询区块链信息接口中,使用Java-SDK获取区块链的最新高度和最新交易Hash,并将结果按十进制的整数和字符串类型返回,将代码和结果截图保存。

子任务3-2-2:编写通过私钥登录接口

(1)在IndexController类中registerUser里实现,通过16进制私钥进行登录,并且和账户地址进行验证,将声明代码结果截图保存并使用postman进行验证;

(2)请使用MySQL客户端创建test数据库,根据第一步中声明的实体类,在test库中创建一个名为" house_leasing_contract "的数据库表,包含以下字段,并给出建表语句截图保存:

      1. 房东的账户地址(landlord)
      2. 租客的账户地址(tenant)
      3. 每月租金金额(monthly_rent)
      4. 押金金额(deposit_amount)
      5. 租金到期日(rent_due_date)
      6. 租赁开始日期(lease_start_date)
      7. 租赁结束日期(lease_end_date)

子任务3-2-3:编写创建租赁合同接口

将房屋租赁合约部署至区块链,完成调用房东创建租赁合同的合约接口(addRentalContract方法),要求如下:

  1. 接受从Web端接收对应各种参数;
  2. 调用智能合约API,返回调用结果信息传递给前端页面;
  3. 使用postman测试编写创建租赁合同接口功能完整性,测试参数、结果和补充的代码截图。

子任务3-2-4:编写房东签署租赁合同接口

将房屋租赁合约部署至区块链,完成调用房东签署租赁合同的合约接口(signContract方法),要求如下:

  1. 接受从Web端接收对应各种参数;
  2. 调用智能合约API,返回调用结果信息传递给前端页面;
  3. 使用postman测试编写创建租赁合同接口功能完整性,测试参数、结果和补充的代码截图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/276368.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DRF从入门到精通六(排序组件、过滤组件、分页组件、异常处理)

文章目录 一、排序组件继承GenericAPIView使用DRF内置排序组件继承APIView编写排序 二、过滤组件继承GenericAPIView使用DRF内置过滤器实现过滤使用第三方模块django-filter实现and关系的过滤自定制过滤类排序搭配过滤使用 三、分页组件分页器一:Pagination&#xf…

Unity 创建/删除/启用/禁用组件的惯用方法

1、创建组件&#xff1a; Unity 创建组件可以通过编辑器中的"Add Component"创建&#xff0c;或者代码动态创建&#xff1a;GameObject.AddComponent<T>()&#xff0c;如&#xff1a; ameObject.AddComponent<Rigidbody>(); 2、删除组件&#xff1a; …

中介者模式-Mediator Pattern-1

如果在一个系统中对象之间的联系呈现为网状结构&#xff0c; 对象之间存在大量的多对多联系&#xff0c;将导致系统非常复杂。 这些对象既会影响别的对象&#xff0c;也会被别的对象所影响。 这些对象称为同事对象&#xff0c;它们之间通过彼此的相互作用实现系统的行为。 在网…

同义词替换降低论文相似度的注意事项 papergpt

大家好&#xff0c;今天来聊聊同义词替换降低论文相似度的注意事项&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;同义词替换降低论文相似度的注意事项 …

【Java系列】多线程案例学习——基于阻塞队列实现生产者消费者模型

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录…

案例260:基于微信小程序的签到系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

git 常用命令总结

git 工作原理图&#xff1a; git 常用命令及解释: 命令解释例子git init在当前目录初始化一个新的 Git 仓库。git initgit clone <repository>克隆一个远程仓库到本地。git clone https://github.com/example/repository.gitgit add <file>将文件的变化添加到暂存…

分享44个PyQt5源码总有一个是你想要的

分享44个PyQt5源码总有一个是你想要的 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1_5H_0Ydg0XUa1fz5Jok51Q?pwd6666 提取码&#xff1a;6666 项目名称 B站直播弹幕姬&#xff…

哪种猫粮比较好?怎样囤性价比高的主食冻干品牌 ?

在过去的100多年里&#xff0c;猫咪主食市场一直被膨化猫粮主导。然而&#xff0c;随着猫咪频频出现猝死、失明、发育不良以及营养不良等问题&#xff0c;猫主人们开始质疑膨化粮是否最适合猫咪。于是&#xff0c;从上世纪90年代开始&#xff0c;出现了生骨肉喂养。生骨肉确实是…

XV7081BB陀螺仪传感器

XV7081BB是一款用于自动化机器的数字输出型陀螺仪传感器&#xff0c;具有卓越的性能&#xff0c;尤其是偏置输出稳定性和低噪声。特点如下&#xff1a; 优良的偏置温度系数为0.0024(/s)/C。 ●低角度随机游走0.065/√h ●SPI/IC串行接口 集成的用户可选择的数字滤波器 ●角…

E : DS查找—二叉树平衡因子

Description 二叉树用数组存储&#xff0c;将二叉树的结点数据依次自上而下,自左至右存储到数组中&#xff0c;一般二叉树与完全二叉树对比&#xff0c;比完全二叉树缺少的结点在数组中用0来表示。 计算二叉树每个结点的平衡因子&#xff0c;并按后序遍历的顺序输出结点的平衡…

mybatisX自动生成sql语句,尝试测试方法报错

今天我使用mybatisx自定义mapper方法生成sql语句后&#xff0c;在测试时报错 错误是MyBatis 无法找到映射的语句&#xff08;Statement&#xff09;引起的 我是这样操作的&#xff0c;在mapper接口自定义了一个方法 然后alt加enter&#xff0c;自动生成sql 结果 mapper.xml文件…

31.Java程序设计-基于Springboot的鲜花商城系统的设计与实现

引言 背景介绍&#xff1a;鲜花商城系统的兴起和发展。研究目的&#xff1a;设计并实现一个基于Spring Boot的鲜花商城系统。论文结构概述。 文献综述 回顾相关鲜花商城系统的设计与实现。分析不同系统的优缺点。强调Spring Boot在系统设计中的优越性。 系统设计 需求分析 用户…

css中sprite(css精灵)是什么,有什么优缺点

概念 将多个小图片拼接到一个图片中 。通过 background-position 和元素尺寸调节需要显示的背景图案。 优点 减少 HTTP 请求数&#xff0c;极大地提高页面加载速度 增加图片信息重复度&#xff0c;提高压缩比&#xff0c;减少图片大小 更换⻛格方便&#xff0c; 只需在一张或…

mysql保姆安装教程

一.下载install文件 1.进入Mysql官网&#xff0c;点击下载 2.选择MySQL Installer for Windows 3.推荐选择第二个安装包 4.不登陆&#xff0c;开始下载 5.等待下载完成 二.安装前的配置 通过电脑“设置”&#xff0c;检查电脑是否包含中文名&#xff0c;如果包含请重命名 …

生活常识-如何开社保证明(四川)

下载并打开天府市民云APP 注册后登陆 点击社保服务 点击社保证明 点击【四川省社会保险个人社保证明名(近24个月)】 点击下载 下载后点击【QQ发送给好友&#xff0c;然后发送给自己的电脑设备(我的电脑)】

通过C++程序实现光驱的自动化刻录和读取

文章目录 ISO文件格式光盘的基本概念光盘种类特点DVDR光盘使用windows调用Linux调用Linux平台下用到的C库:读取设备驱动列表向光驱中写文件 数字存储媒体快速发展的今天&#xff0c;光驱的使用已经不像以前那样普及了。但是在数据备份、安装软件和操作系统、旧设备兼容等领域还…

LTPI协议的理解——LTPI协议的定义和结构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LTPI协议的理解——LTPI协议的定义和结构 定义DC-SCM 2.0 LTPI 结构GPIO通道I2C/SMBus通道Uart通道OEM通道数据通道 总结 定义 LTPI (LVDS Tunneling Protocol & Interf…

算法基础之计数问题

计数问题 核心思想&#xff1a; 数位dp / 累加 累加 ​ 分情况讨论 &#xff1a; xxx 000 ~ abc –1 yyy 000 ~ 999 共 abc * 1000 种 特别地&#xff0c;当枚举数字0时 (找第4位为0的数) 前三位不能从000开始了 否则没这个数不合法(有前导零) xxx abc 2.1. d < 1 , 不…

拥抱健康,远离内耗:程序员必备的情绪管理策略

程序员是一群特别脆弱的群体&#xff0c;俗称IT民工&#xff01; 每天上班要跟产品斗智斗勇&#xff0c;还要跟bug斗的难解难分&#xff0c;另外还要被领导批&#xff0c;跟同事扯皮&#xff0c;整个一天下来常常筋疲力尽。 程序员大多不善言语&#xff0c;受了委屈往往喜欢吞到…