区块链知识体系fisco-bcos实战

文章目录

  • 一、区块链发展概述及类型和特征
    • 1.1 区块链的概念
    • 1.2 区块链的起源
    • 1.3 区块链的发展历程
    • 1.4 区块链的类型和特征
  • 二、区块链的常见技术架构
    • 2.1 技术架构
    • 2.2 核心技术
  • 三、区块链的常见应用
    • 3.1 生态环境监测
    • 3.2 医疗废弃物追踪解决
    • 3.3 区块链在电子政务领域的应用
    • 3.4 在物流与物流金融上的应用
    • 3.5 在大数据物联网结合的应用
  • 四、区块链的应用系统价值和趋势
    • 4.1 区块链应用系统的价值
    • 4.2 区块链的核心商业模式
    • 4.3 区块链的发展趋势和挑战
  • 五、密码学基础
    • 5.1 对称密码体系
    • 5.2 公钥密码体系
    • 5.3 哈希算法
  • 六、区块链中的英文专业术语
  • 七、FISCO BCOS 实战
    • 7.1 搭建单群组网络FISCO BCOS联盟链
    • 7.2 搭建星型拓扑网络FISCO BCOS联盟链
    • 7.3 搭建并行多组网络FISCO BCOS联盟链
    • 7.4 RPC 调用和配置及使用控制台
    • 7.5 区块链扩容和退出
    • 7.6 基于mysql分布式存储区块链
    • 7.7 基于控制台理解账户和角色
    • 7.8 共识异常模拟
    • 7.9 WeBASE管理平台

节选自b站内容和公司内部培训内容,并通过fisco-bcos实战,可初步了解区块链的一些技术体系

一、区块链发展概述及类型和特征

1.1 区块链的概念

在这里插入图片描述

在这里插入图片描述

区块链是黑科技,其实并没有发明新技术,是一系列技术的组合。区块链:信任的机器.

在这里插入图片描述在这里插入图片描述

1.2 区块链的起源

在这里插入图片描述

1.3 区块链的发展历程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 区块链的类型和特征

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、区块链的常见技术架构

2.1 技术架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 核心技术

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、区块链的常见应用

3.1 生态环境监测

在这里插入图片描述

3.2 医疗废弃物追踪解决

在这里插入图片描述

3.3 区块链在电子政务领域的应用

在这里插入图片描述

3.4 在物流与物流金融上的应用

在这里插入图片描述

3.5 在大数据物联网结合的应用

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、区块链的应用系统价值和趋势

4.1 区块链应用系统的价值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 区块链的核心商业模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 区块链的发展趋势和挑战

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
挑战
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、密码学基础

5.1 对称密码体系

对称密码是一种加密方法,其中使用相同的密钥进行加密和解密。这种加密方法的优点是速度快,适合大量数据的加密。但是,它的主要缺点是密钥的分发和管理非常困难,因为每个通信双方需要共享一个唯一的密钥,而且这个密钥必须保密。如果密钥被泄露,那么加密的数据就可能被破解。常见的对称加密算法有DES、AES、RC4等。谍战片中的密码

在这里插入图片描述

5.2 公钥密码体系

公钥密码体系是一种加密方法,其中使用一对密钥进行加密和解密。这对密钥由一个公钥和一个私钥组成,公钥用于加密数据,私钥用于解密数据。这种加密方法的优点是密钥的分发和管理相对容易,因为公钥可以公开,而私钥只需要保密。此外,它还提供了数字签名的功能,可以验证消息的来源和完整性。但是,它的主要缺点是加密和解密的速度相对较慢,不适合大量数据的加密。常见的公钥加密算法有RSA、ECC等

在这里插入图片描述

5.3 哈希算法

哈希算法是一种将任意长度的数据映射为固定长度的输出的算法,通常用于数据的完整性验证和密码存储。哈希算法的主要特性是:

确定性:相同的输入总是产生相同的输出。
快速计算:对任意给定的数据能够快速计算出其哈希值。
抗碰撞性:难以找到两个不同的输入,使得它们有相同的输出。
雪崩效应:输入的微小变化会导致输出的巨大变化。
哈希算法在密码学中有着广泛的应用,例如在数字签名、数据完整性验证和安全存储密码等领域。常见的哈希算法有MD5、SHA-1、SHA-256等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、区块链中的英文专业术语

4a3e48f8b53c260ca10d824b.png)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、FISCO BCOS 实战

FISCO BCOS 2.0 技术文档
https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/
WeBASE 技术文档
https://webasedoc.readthedocs.io/zh-cn/latest/index.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1 搭建单群组网络FISCO BCOS联盟链

 openssl versionwget --versionsudo apt install -y openssl curlmkdir fisco && cd fiscocurl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.shls0f -i:30300-30303lsof -i:20200-20203lsof -i:8545-8548bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
pkill -9 fisco-bco
./nodes/127.0.0.1/start_all.sh 
ps -ef | grep -v grep | grep fisco-bcos
ss -ntlp |grep fisco-bcos
# 查看节点连接数
tail -f nodes/127.0.0.1/node0/log/log*  | grep connected
# 查看节点共识
tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

7.2 搭建星型拓扑网络FISCO BCOS联盟链

区块链是一种分布式数据库技术,它通过去中心化的方式记录和验证交易信息。在区块链网络中,节点是参与网络的计算机或服务器,它们共同维护着整个区块链的状态。

机构通常指的是组织、公司或政府等实体,它们可以作为区块链网络中的参与者,拥有自己的节点,并参与到区块链的交易和共识过程中。这些机构可以通过区块链技术实现去中心化的数据交换、智能合约执行等功能。

群组是指一组具有共同目标或兴趣的人或实体,他们可以在区块链网络上形成一个子网络,共享信息和资源。群组可以是公开的,任何人都可以加入;也可以是私有的,只有特定的成员才能加入。群组的成员可以通过共识机制来达成共识,共同管理和维护群组内的区块链网络。

总的来说,区块链节点是区块链网络的基本组成部分,机构和群组则是区块链网络中的参与者和组织形式。通过这些参与者和组织,区块链可以实现去中心化的信任机制,确保数据的安全性和可靠性。

在这里插入图片描述

vim ipconf
......
127.0.0.1:1 A 1,2,3
127.0.0.1:1 B 1,
127.0.0.1:1 C 2
127.0.0.1:1 D 3
......
#p2p channel jsonrpc
bash build_chain.sh -f ipconf -p -30300,20200,8545
# 启动
bash nodes/127.0.0.1/start_all.sh 
# 查看进程
ps -ef | grep -v grep | grep fisco-bcos
# 查看节点连接数
tail -f nodes/127.0.0.1/node0/log/log*  | grep connected
# 查看节点共识
tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

7.3 搭建并行多组网络FISCO BCOS联盟链

# -o 指定生成文件所在目录
bash build_chain.sh -l 127.0.0.1:4 -o multi_nodes -p 30300,20200,8545
bash multi_nodes/127.0.0.1/start_all.sh
# 查看节点共识
tail -f nodes/127.0.0.1/node0/log/log*  | grep +++
# 将群组2加入区块链.
# nodes/127.0.0.1/node0/conf/
# 并行多组区块链中,每个群组的ini文件相同,但genesisi中【group.id】不同,
# 减少路径输入麻烦,先进入路径
cd multi_nodes/127.0.0.1
# cp
cp node0/conf/group.1.genesisi node0/conf/group.2.genesisi
sed -i "s/id=1/id=2/g" node0/conf/group.2.genesisi
cp node0/conf/group.2.genesisi node1/conf/group.2.genesisi
cp node0/conf/group.2.genesisi node2/conf/group.2.genesisi
cp node0/conf/group.2.genesisi node3/conf/group.2.genesisicp node0/conf/group.1.ini node0/conf/group.2.ini
cp node0/conf/group.2.ini node1/conf/group.2.ini
cp node0/conf/group.2.ini node2/conf/group.2.ini
cp node0/conf/group.2.ini node3/conf/group.2.inistop_all.sh && start_all.sh
tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

在这里插入图片描述

方法2

vim ipconf
.........
127.0.0.1:4 A 1,2
........
bash build_chain.sh  -o multi_nodes -f ipconf -p 30300,20200,8545

国密版FISCO BCOS联盟

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G

7.4 RPC 调用和配置及使用控制台

RPC(Remote ProcedureCall)是一种远程过程调用协议,它允许一台计算机上的程序调用另一台计算机上的程序的子程序或函数。
RPC的主要目的是让分布式系统中的各个节点能够像调用本地函数一样调用其他节点上的函数或服务

#创建一个 JSON-RPC 请求对象,包含以下字段: 
#jsonrpc: 协议版本,通常为 "2.0"。 
#method: 要调用的远程方法的名称。
#params: 传递给远程方法的参数(可选)
#2.0启用了多账本机制,本规范要求传入的第一个参数必须为群组ID。 
#id: 请求的唯一标识符(可选,但推荐使用)
#|jq:将curl命令的输出通过管道传递给jq命令进行处理。
#jq是一个轻量级且灵活的命令行JSON处理器,用于解析、过滤和格式化JSON数据。
# 获取节点版本信息
# 8545为node0的信息
curl  -X  POST --data '{"jsonrpc": "2.0",
"method": getClientVersion,"params":[1],"id":1}' 
http://127.0.0.1:8545 |jq
# 获取节点连接信息
getPeers
# 查看区块高度
getBlockNumber
# 查看区块信息
getBlockByNumber

配置和使用控制台

tar -xf consle.tar.gz
tree consle
#将节点sdk证书拷贝到控制台conf下
#-r 文件和文件夹
cp nodes/127.0.0.1/sdk/*  consle/conf/
cp -r nodes/127.0.0.1/sdk/* console/conf/
#将conf下config-example.toml文件重命名config.toml
#-n 不覆盖存在的
cp consle/conf/config.toml consle/conf/config.toml
cp -n console/conf/config-example.toml console/conf/config.toml
ls consle/conf/
# 启动控制台
bash console/start.sh

在这里插入图片描述

在FISCO-BCOS区块链系统中,有三种不同类型的节点,它们在网络中各自承担着不同的角色和功能。具体包括:

记账节点(共识节点):记账节点是网络中参与共识算法,并负责验证交易、打包区块的节点。这些节点通过共识算法来确认交易的有效性,并将有效的交易打包成区块添加到区块链上。记账节点的数量可以根据实际需求进行配置,但必须至少为一个。
观察节点:观察节点不参与共识流程,但它们可以同步区块信息和交易数据,起到观察和备份的作用。这种类型的节点适用于只需要查看链上数据,而不需要参与共识的场景。
群组节点:群组节点则是承载某个群组内多个相关联组织的节点集合,这些组织可能共享某些业务数据或需要在同一群组内进行协同工作。群组节点有助于实现跨组织的数据共享和业务合作。
在这里插入图片描述

#查看群组共识节点列表
getSealerList
#查看群组观察节点列表
getOberverList
#查看连接p2p节点的nodeID列表
getNodeIDList# 查看node0的nodeid
cat fisco/nodes/127.0.0.1/node0/conf/node.nodeid
# 获取节点连接信息中有id和端口
getPeers#设置共识节点
addSealer c1bd77e188cd07。。。。。。
#设置观察节点
addObserver c1bd77e188cd07。。。。。。
#设置游离节点
removeNode c1bd77e188cd07。。。。。。# 验证游离节点 quit
vim console/conf/config.toml
.........
peers=["127.0.0.1:20201"]
.........
# 启动控制台游离节点登录失败
bash console/start.sh

在这里插入图片描述

7.5 区块链扩容和退出

# -c 指定机构证书及私钥所在路径
# -o 输出到指定文件夹,其中node4/conf 中会保存机构agency新签的发证和私钥
bash gen_node_cert.sh -c nodes/cert/agency -o nodes/127.0.0.1/node4
tree nodes/127.0.0.1/node4
# 准备节点配置文件
cd nodes/127.0.0.1
cp node0/conf/group.1.genesis node0/conf/group.1.ins node4/conf/
cp node0/config.ini node0/start.sh node0/stop.sh node4/
vim node4/config.ini.........[rpc]channel_listen_port=20204jsonrpc_listen_port=8549[p2p]node.4=127.0.0.1:30304.........# 将新节点加入区块链bash node4/start.shtail -f node4/log/log*|grep connected# 将节点加入群组cat node4/conf/node.nodeidbash ../../console/start.sh#控制台输入addSealer  node.nodeid#查看getSealerList#退出
removeNode node.nodeid
quit
#分号注释掉
vim node4/config.ini
..........
[p2p];node.1=127.0.0.1:30301;node.2=127.0.0.1:30302;node.3=127.0.0.1:30303;node.4=127.0.0.1:30304
........
bash node4/stop.sh && bash node4/start.sh
# connect=0 退网成功
tail -f node4/log/log*|grep connected

7.6 基于mysql分布式存储区块链

# 安装nodes console后,安装配置mysql
apt install msyql-server mysql-client  libmysqlclient-dev
service mysql start 
systemctl start mysql.services
mysql -uroot -p
#用户密码存储在mysql数据库的user表中,对应的字段是authentication_string。authentication_string字段中存储的是经过加密的密码,不应直接对其进行修改。如果需要修改用户密码,请使用alter user命令进行修改
>ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 注意需要加WITH mysql_native_password
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
>quit
vim /etc/msyql/my.cnf
.........22 [mysqld]23 max_allowed_packet = 1024M24 sql_mode = STRICT_TRANS_TABLES25 ssl = 026 default_authentication_plugin = mysql_native_password
.........
> show variables like 'max_allowed_packet';
vim nodes/127.0.0.1/node0/conf/group.1.ini
.........19 [storage]21     type=mysql35     db_ip=127.0.0.136     db_port=330637     db_username=root38     db_passwd=12345639     db_name=db_node0
........
# 启动
bash nodes/127.0.0.1/start_all.sh
#使用控制台操作curd
bash consele/start.sh
create table t_demo(name varchar,it_name varchar,it_id varchar primary key(name))
insert into t_demo(name,it_name,it_id) values (fruit,orage,1)

7.7 基于控制台理解账户和角色

# 脚本生成账户
# 生成pem格式存储的账户私钥
bash  ./console/get_account.sh
# 从私钥文件计算账户地址
bash ./console/get_account.sh -k account/*.pem
# 生成pkcs12格式存储的私钥
bash  ./console/get_account.sh -p
# 从私钥文件计算账户地址
bash ./console/get_account.sh -P account/*.12

在这里插入图片描述

newAccount
newAccount p12 123456
listAccount
loadAccount ...*...
# 按某用户启动
bash console/start.sh 1 console/account/ecdsa/*.pem
bash console/start.sh 1 -p12 console/account/ecdsa/*.p12

在这里插入图片描述

角色

#增加委员
grantCommitteeMember id
listCommitteeMember id
#撤销委员
revokeCommitteeMember id
#修改权重
updateCommitteeMemberWeight id 2
#查询权重
queryCommitteeMemberWeight id
#查询阈值
queryThreshold
#mysql中查询
>select*from _sys_table_access_;
#新增运维账户
grantOperator id
listOperator
revokeOperator id
# 部署合约
deploy HelloWorld
# 调用合约
call HelloWorld contractaddress get

在这里插入图片描述

黑白名单

#
cat nodes/127.0.0.1/node1/conf/node.node.id
vim nodes/127.0.0.1/node0/config.ini
# 黑名单能够拒绝与指定节点的配置,
# 白名单不配置,可与任意节点连接
#混合设置会在白名单的基础上拒绝黑名单里的节点连接
.........
[certificate_blacklist]
crl.0=
crl.1=
[certificate_whitelist]
crl.0=
.........
bash nodes/127.0.0.1/node0/stop.sh && start.sh
curl  -X  POST --data '{"jsonrpc": "2.0",
"method": "getPeers","params":[1],"id":1}' 
http://127.0.0.1:8545 |jq
# 或设置控制台只运行连接node0vim console/conf/config.toml
.........21 [network]22 #peers=["127.0.0.1:20200", "127.0.0.1:20201"]    # The peer list to connect23 peers=["127.0.0.1:20200"]    # The peer list to connect
.........
bash console/start.sh
getPeers
##SDK白名单设置
# 不通过
vim nodes/127.0.0.1/node0/conf/group.1.ini
.......
73 [sdk_allowlist]
77       public_key.0=b8acb51b9fe84f88d70646be36f31c52e67544ce56faf3dc8ea4cf1b0ebff0864c6b218fdcd9cf9891ebd414a995847911bd26a77of4293000    85f37e1131f36
.......
bash nodes/127.0.0.1/node0/scripts/reload_sdk_allowlist.sh
# 通过
cat nodes/127.0.0.1/node0/sdk/sdk.publikey
vim nodes/127.0.0.1/node0/conf/group.1.ini
bash nodes/127.0.0.1/node0/scripts/reload_sdk_allowlist.sh

7.8 共识异常模拟

关闭node2,node3后共识异常

在这里插入图片描述
将异常点改为观察点

# 关闭node0,node1
# 分别在node0 ,和node1上修改观察者。
update _sys_consensus_ set type='observer' where id ='10006'
# 重新再启动node0,node1后可以执行合约
#node2,node3恢复后,在node2,node3上将改为共识节点

在这里插入图片描述

7.9 WeBASE管理平台

#节点前置服务部署
unzip webase-front.zip
cp ../nodes/127.0.0.1/sdk/* ./conf/
bash start.sh
bash status.sh
tail -f log/WeBASE-Front.log |grep success
http://localhost:5002/WeBASE-Front
# 管理部署
unzip webase-deploy.zip
cd webase-deploy
vim common.properties
........
配置数据库
........
python3 deploy.py installALL
localhost:5800

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac安装ipa包【金铲铲为例】

mac安装ipa包 安装PlayCover 链接:https://github.com/PlayCover/PlayCover 1、点最新Releases 2、cmd ↓,拉到最下面下载dmg 3、安装 图标拖拽到Applications里 IPA下载 以金铲铲为例,良心砸壳包站点,有能力可以支持一下…

Modbus-TCP——Libmodbus安装和使用(Ubuntu22.04)

1、简介 Modbus是一种通信协议,广泛用于工业自动化和过程控制领域,允许不同设备之间进行数据交换。libmodbus是一个用于 Modbus 协议的开源库,主要用于开发和实现 Modbus 协议的客户端和服务器应用程序。libmodbus 以 C 语言编写&#xff0c…

Gartner发布2024年终端和工作空间安全成熟度曲线:24项相关技术发展和应用状况及趋势

由于攻击者使用人工智能来增强网络钓鱼和终端攻击,企业需要高级安全措施来阻止入侵行为。此技术成熟度曲线可帮助安全和风险管理领导者识别可增强终端和工作空间保护的技术。 需要知道什么 网络安全创新层出不穷,但区分真正的进步与短暂的趋势却很困难。…

66 IPV4/6 OSPFV2/3 实操

一 网络括谱图 二 IPV6 一 华为IPV6地址的配置思路 1 全局上开启IPV6功能 # ipv6 # 2 在指定的接口上配置IPV6地址上的接口上配置IPV6地址 ipv6 enable 3 在接口上配置IPV6地址 ipv6 address 2001:1::254/64 脚本 # interface GigabitEthernet0/0/1 ipv6 enable ip add…

Ajax基础案例

接口文档 欢迎使用 - AJAX阶段 地区查询 图解 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

libLZMA库iOS18平台编译

1.下载xz源码: 使用autogen.sh生成configure文件 2.生成makefile rm -rf ./build/iOS && mkdir -p ./build/iOS && cd ./build/iOS && ../../configure --host=arm-apple-darwin64 --prefix=`pwd`/Frameworks/lzma CC="xcrun -sdk iphoneos cl…

熟悉Labview工具用

目录复制 目录 0.0&#xff1a;快捷键0.1&#xff1a;全局非图标显示0.2&#xff1a;小技巧&#xff1a;图片导入为程序1.2&#xff1a;事件结构1.2.0&#xff1a;超时分支&#xff1a;当事件结构框左上角设置为1时&#xff0c;单位毫秒&#xff0c;即理解为1ms内没有其他的事件…

ES+FileBeat+Kibana日志采集搭建体验

1.环境准备 需要linux操作系统&#xff0c;并安装了docker环境 此处使用虚拟机演示。&#xff08;虚拟机和docker看参考我之前写的文章&#xff09; VirtualBox安装Oracle Linux 7.9全流程-CSDN博客 VirtualBox上的Oracle Linux虚拟机安装Docker全流程-CSDN博客 简单演示搭建ES…

Linux_Shell三剑客grep,awk,sed-08

三剑客的概述&#xff1a; awk、grep、sed是linux操作文本的三大利器&#xff0c;合称文本三剑客&#xff0c;也是必须掌握的linux命令之一。三者的功能都是处理文本&#xff0c;但侧重点各不相同&#xff0c;其中属awk功能最强大&#xff0c;但也最复杂。grep更适合单纯的查找…

好用又便宜的平替苹果笔推荐:2024开学季盘点五款高性价比电容笔

​随着网络学习的不断发展&#xff0c;电容笔是一种常见的数字书写工具&#xff0c;受到许多学生党广泛欢迎&#xff0c;因为它可以与平板电脑完美配对&#xff0c;满足用户在平板上的书写、绘画等需求。可是原装笔的价格略贵&#xff0c;平替苹果笔的品牌又很多&#xff0c;很…

Java:循环练习

目录 1. 回文判断 2. 减法求商余 3. 求平方根 4.求质数 5. 猜数字 1. 回文判断 输入一个数字&#xff0c;判断是否为回文&#xff0c;回文就是正着读和反着读都一样&#xff0c;如121是回文&#xff0c;123则不是。 import java.util.Scanner;public class DemoNew {publ…

LUA的使用

背景 LUA刚流行起来的时候&#xff0c;想学习一下LUA。就找了一款使用LUA脚本引擎的游戏玩。希望从中了解LUA的使用 结果 熟悉了LUA的同时也熟悉了这款游戏。 准备工作 使用detoured withdll注入LUAK.dll。LUAK.dll用于管理LUA环境 procedure PROCESS_ATTACH(); stdcall …

Python 实现自定义异常

在Python编程中&#xff0c;异常处理是保证程序健壮性的重要机制。Python提供了一些内置的异常类&#xff0c;如ValueError、TypeError、IndexError等&#xff0c;开发者可以直接使用这些类来捕获和处理程序运行中出现的各种错误。然而&#xff0c;某些场景下&#xff0c;内置的…

无人机使用材料与结构特点详解,看完这篇文你就懂了!!!

一、常用材料 无人机的常用材料主要包括机身材料&#xff08;结构材料和非结构材料&#xff09;、发动机材料和涂料&#xff0c;其中最主要的是机身结构材料和发动机材料。 机身结构材料 低速无人机&#xff1a;主要使用木材、塑料、玻璃纤维或碳纤维复合材料蜂窝夹层结构。…

SQL Server数据库查询常用语句汇总

这里&#xff0c;汇总了在使用SQL Server数据库的过程中经常会写的查询语句。 情形1 根据时间查询最新一条数据 &#xff08;dtime类型为datetime&#xff09; select top 1 名称 as name,列名1 as parname1,列名2 as parname2,dtime,col1,col2 from demo order by dtime …

【基础算法总结】多源 BFS_多源最短路问题

多源 BFS_多源最短路问题 1.多源 BFS_多源最短路问题2.01 矩阵3.飞地的数量4.地图中的最高点5.地图分析 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&…

NtripShare全站仪自动化监测之气象改正

最近有幸和自动化监测领域权威专家进行交流&#xff0c;讨论到全站仪气象改正的问题&#xff0c;因为有些观点与专家不太一致&#xff0c;所以再次温习了一下全站仪气象改正的技术细节。 气象改正的概念 全站仪一般利用光波进行测距&#xff0c;首先仪器会处理测距光波的相位漂…

SpingBoot 两种方式配置多数据源

第一种&#xff1a;使用与MyBaits-Plus师出同门的“dynamic-datasource-spring-boot-starter” 官网地址&#xff1a; 基础必读&#xff08;免费&#xff09; dynamic-datasource 看云 1&#xff1a;引入依赖 <!-- 苞米豆多数据源 --> <dependency><group…

科技大厂对AI的垄断

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

ios白苹果修复办法有哪些?

在这个数字化时代&#xff0c;iPhone作为智能手机的佼佼者&#xff0c;早已融入了我们生活的方方面面。然而&#xff0c;当那熟悉的开机画面——“白苹果”意外地成为了你的日常&#xff0c;无疑让人头疼不已。别担心&#xff0c;今天我们就来聊聊iOS白苹果现象的成因及几种有效…