区块链+Web3学习笔记
学习资料来源于B站:
17小时最全Web3教程:ERC20,NFT,Hardhat,CCIP跨链_哔哩哔哩_bilibili
该课程提供的Github代码地址,相关资料详见README.md:
Web3_tutorial_Chinese/README.md at main · smartcontractkit/Web3_tutorial_Chinese · GitHub
一、区块链技术
简史
比特币提出 -> 以太坊协议(提出智能合约) ->
比特币协议不是图灵完备的,但是以太坊协议是图灵完备的。
比特币的设计哲学:系统简单,使用简洁的脚本语言减少了复杂性,使得系统更易于理解、维护和审计。
以太坊协议:
DeFi(Decentralized Finance):去中心化金融,指利用区块链技术和智能合约构建的一系列金融服务和产品。
预言机:将区块链系统外的数据以去中心化的方式写入智能合约中。
NFT(Non-Fungible Token):非同质化通证,一项通证编程标准,用语承载业务逻辑
跨链:不同区块链之间的智能合约进行相互操作。
区块链设计哲学:区块链是一个点对点的分布式系统,去中心化,共识,女巫攻击。
其他的共识方法:PoW、PoS、PoA、PoH、PBFT
PoS:权益证明
PoW:工作量证明

女巫攻击解决方法:
比特币网络:
需要解决复杂的数学难题来添加交易,这个过程需要大量计算资源和时间,确保只有具备足够计算能力的人才才能参与区块链的维护,提升不诚实节点的作恶资本。
解决这个数学难题的过程就叫挖矿,提供计算资源的叫矿机。
以太坊网络:
以太坊merge,以太坊的共识方式从PoW转变为PoS,这个事件成为Merge(合并)
PoS挖矿过程:不再进行计算数学难题进行挖矿,而是通过抵押资产进行添加交易,错误提交时,会进行罚款,正确提交则获得区块奖励。
特点:安全性高、效率低
Web3:面向资产的互联网
Web1:只读
Web2:可读可写
Web3:可读可写可拥有
在Web3中 : 有所有权的数据 = 资产
智能合约简介
以太坊智能合约:
以太坊的智能合约是一种自执行的合约,合同条款直接写入代码中,并在区块链网络上运行。它们自动执行和强制执行合同中的条款和条件,无需第三方干预。
特点:
去中心化
数据透明
数据安全不可篡改
消除交易对手风险
NFT、DeFi、DAO(去中心化自治组织)
DAO:
通过智能合约在区块链上运行的组织。DAO的决策和管理过程是去中心化的,由所有持有通证的成员共同参与和投票决定。将代码规则融入自治管理。

二、区块链技术学习
1、发起第一笔交易
以太坊的账户类型

对于托管账户:即第三方管理你的账户,拥有你的一切资产。
对于自托管账户:自己管理自己的账户,但是如果丢失了账户(私钥),意味着丢失了账户中的所有资产,获得你的账户就相当于获得了你的一切资产。
安装自托管钱包
安装METAMASK:网址: meatmask.io
相关文章:
区块链+Web3学习笔记
学习资料来源于B站: 17小时最全Web3教程:ERC20,NFT,Hardhat,CCIP跨链_哔哩哔哩_bilibili 该课程提供的Github代码地址,相关资料详见README.md: Web3_tutorial_Chinese/README.md at main sm…...
Redis: 集群高可用之节点与插槽管理
概述 Redis Cluster 集群模式,它使用的是分片来存储数据的,数据都存在多个节点上。而且使用了哈希槽这样的机制,它内部维护了 16384 个插槽那就是说每一个节点其实都具体的分布了一些槽,如果我们添加一个节点的话,槽总…...
HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例
HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例 在某地市的 XX 音乐节保障准备期间,为确保活动期间的网络质量,现场新开了 4.9G HUAWEI 室外基站。在网络优化和测试中,发现UE无法实现从 2.6G 到 4.9G 的正常切换。虽然现场具备 4.9G信号覆…...
Qt C++设计模式->责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象有机会处理请求,而不需要明确指定哪个对象处理。通过将这些对象连成一条链,请求沿着链传递,直到有对象处理它为止。该模式…...
paypal支付v2.0(php)支付代码
第一步:获取access_token: <?php$clientId ; // 替换为你的 PayPal Client ID $clientSecret ; // 替换为你的 PayPal Client Secret// PayPal API 请求的 URL $url "https://api-m.sandbox.paypal.com/v1/oauth2/token";// 初始化 cURL $ch …...
基于Python的自然语言处理系列(23):DrQA
在本篇文章中,我们将实现 DrQA 模型,该模型最初由论文 Reading Wikipedia to Answer Open-Domain Questions 提出。DrQA 是一种用于开放域问答系统的端到端解决方案,最初包括信息检索模块和深度学习模型。本次实现中,我们主要探讨 DrQA 的深度学习模型部分。 1. 数据加载 …...
誉天Linux云计算课程学什么?为什么保障就业?
一个IT工程师相当于干了哪些职业? 其中置顶回答生动而形象地描绘道: 一个IT工程师宛如一个超级多面手,相当于——加班狂程序员测试工程师实施工程师网络工程师电工装卸工搬运工超人。 此中酸甜苦辣咸,相信很多小伙伴们都深有体会。除了典…...
无人机控制和飞行、路径规划技术分析
无人机控制和飞行、路径规划技术是现代无人机技术的核心组成部分,它们共同决定了无人机的性能和应用范围。以下是对这些技术的详细分析: 一、无人机控制技术 无人机控制技术主要涉及飞行控制系统的设计、传感器数据的处理以及指令的发送与执行。飞行控…...
【C++】模拟实现红黑树
🦄个人主页:修修修也 🎏所属专栏:实战项目集 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 📌实现RBTreeNode类模板 🎏构造RBTreeNode类成员变量 🎏实现RBTreeNode类构…...
离线安装docker
背景描述 项目需要在研发环境虚拟机上安装docker部署应用。 所在的服务器是一个内网,无法访问到外网环境。 服务器OS版本是 麒麟V10 linux 安装docker 安装包下载 获取所需版本的docker binary包,官方链接https://download.docker.com/linux/stati…...
MySQL高阶2066-账户余额
目录 题目 准备数据 分析数据 总结 题目 请写出能够返回用户每次交易完成后的账户余额. 我们约定所有用户在进行交易前的账户余额都为0, 并且保证所有交易行为后的余额不为负数。 返回的结果请依次按照 账户(account_id), 日期( day ) 进行升序排序…...
《RabbitMQ篇》Centos7安装RabbitMQ
安装RabbitMQ 安装包网盘下载地址 链接:https://pan.baidu.com/s/1bG_nP0iCdAejkctFp1QztQ?pwd4mlw 先上传安装包到服务器(erlang-23.3.4.11-1.el7.x86_64.rpm和rabbitmq-server-3.9.16-1.el7.noarch.rpm)然后使用指令安装 # 安装 erlang r…...
昇思学习打卡营第31天|深度解密 CycleGAN 图像风格迁移:从草图到线稿的无缝转化
1. 简介 图像风格迁移是计算机视觉领域中的一个热门研究方向,其中 CycleGAN (循环对抗生成网络) 在无监督领域取得了显著的突破。与传统需要成对训练数据的模型如 Pix2Pix 不同,CycleGAN 不需要严格的成对数据,只需两类图片域数据,…...
跟我学C++中级篇——空值的定义
一、空值 在提到c/c的空值时,先扯远一些。谈一谈数学中的0,0的出现要晚于其它的数,而0的出现却引发了数学的极大的发展和进步。而在计算机科学中,在使用一个变量时,它的值的可能性有很多,其中,…...
(三)Mysql 数据库系统全解析
一、Mysql 数据库 数据库的作用和优势 作用:集中化存储结构性的数据。优势: 减小数据冗余,避免数据的重复存储。保证数据的真实有效和唯一性,提高数据的质量。方便数据共享访问,使得不同的用户和应用可以方便地获取所需…...
SAP HCM 0001信息类型一个月内有多个成本中心
一般跨部门调动时候,成本中心都会变化,SAP默认都是读取wpbp的最后一一条数据,但是今天过账会读取两个单位的成本中心,一直都觉得很奇怪,SAP如何都拆分出这样的情况, 没办法只有debug,初始化系统…...
字节输入流
1.是什么 字节输入流(Byte Input Stream)在Java中是用来读取原始字节流的数据。Java的java.io包提供了多种字节输入流类,其中InputStream是所有字节输入流类的超类。以下是关于字节输入流的详细解释和举例: 字节输入流的概念&…...
深度学习-----------------机器翻译与数据集
目录 机器翻译与数据集下载和预处理数据集预处理步骤词元化词汇表该部分总代码 固定长度阶段或填充该部分总代码 转换成小批量数据集用于训练训练模型总代码 机器翻译与数据集 import os import torch from d2l import torch as d2l下载和预处理数据集 #save d2l.DATA_HUB[fr…...
SOMEIP_ETS_151: SD_Send_triggerEventUINT8Reliable_Eventgroup_2
测试目的: 验证DUT在Tester订阅事件组后,能够响应Tester触发的triggerEventUINT8Reliable方法,并将TestEventUINT8Reliable事件发送到订阅请求中端点选项指定的IP地址和端口。 描述 本测试用例旨在确保DUT能够正确处理事件组的订阅请求&am…...
32 C 语言指针的长度与运算(指针加减整数、指针自增自减、同类型指针相减、指针的比较运算)
目录 1 指针的长度 2 指针与整数的加减运算 3 指针自增与自减 4 同类型指针相减 5 指针的比较运算 6 测试题 1 指针的长度 在 C 语言中,sizeof 运算符可以用来计算指针的长度。指针的长度实际上与指针所指向的数据类型无关,而是与系统的位数&…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
