Web3通识
共识算法PowPoW 的概念最初并非为加密货币而设计的。它是由 Cynthia Dwork 和 Moni Naor 于 1993 年提出的,旨在阻止针对电子邮件服务的垃圾邮件攻击。 工作量证明所涉及的计算需要一定的时间和资源。对于普通用户来说,这种额外的工作量是可以接受的,因为它不会显著影响正常的邮件操作。然而,对于通常发送数千封垃圾邮件的垃圾邮件发送者来说,这个计算过程会消耗大量的时间和资源。这种机制大大增加了发送垃圾邮件的成本,从而有效减少了垃圾邮件的数量。 2008 年,化名中本聪(Satoshi Nakamoto)的个人或团体在创建比特币时应用了 PoW 机制。 比特币是一个去中心化的分布式网络。发起新交易时,网络内没有中央权威机构来验证和确认交易。为了防范恶意攻击,需要一种机制来确保所有网络参与者(节点)对交易记录的有效性和区块链状态达成一致。PoW 机制解决了这一共识问题,为比特币网络提供了去中心化的安全性,确保其运行不依赖于任何单一实体,并维护了网络的完整性。 图源:HackQuest 最长链原则:在比特币网络中,众多矿工同时挖矿,经常产生多个合法区块,从而导致区块...
前端-回声每周任务总结
Week2(基础表单+鱼)需加强的点 <label> 标签的 for 属性需要与对应表单元素的 id 属性值匹配才能建立关联,否则点击文字不会触发单选按钮的选中状态。 对于单选按钮(type="radio"),需要给同一组选项设置相同的 name 属性(如name="gender"),这样它们才能选了一个就不能选另一个。 下拉框选择: 12345<label for="direction">选择方向:</label><select id="direction" name="direction"> <option value="web-frontend">Web 前端组</option> <option value="web-backend">Web 后端组</option></select><br /> ...
ERC20
什么是ERC20?就是一份技术规范(一键发币模板)。2017年定稿。从此任何钱包交易所与DApp都不再需要为每个新代币进行定制开发,直接用这个模板就行。 EIP-20(全称为 Ethereum Improvement Proposal 20),也常被称为 “ERC-20 标准”(ERC 即 Ethereum Request for Comments,是 EIP 被社区接受后的正式名称)。它定义了 fungible token(可替代代币)的统一接口规范,让不同代币在以太坊网络中能被一致地交互和管理。 内容ERC20标准提供了name、symbol、decimals等元数据接口,用于描述代币的基本信息,如名称、符号和小数位数,方便用户识别和使用。 6个函数 总供应量 1function totalSupply() public view returns (uint256) 转账(从自己账户直接转移代币) 1function transfer(address _to, uint256 _value) public returns (bool success) 余额查询 ...
HardHat框架
开始安装并初始化12cd ...npx hardhat --init 使用 OpenZepplin等第三方库: 1npm install @openzeppelin/contracts --save-dev OpenZepplin官方文档: https://docs.openzeppelin.com/contracts/5.x 在合约里的体现: 1import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 编译合约1npx hardhat compile 成功编译后,会在 artifacts/contracts/ 目录下生成Name.json ,包含了智能合约的 ABI 、字节码(Bytecode)等。 运行测试12npx hardhat testnpx hardhat test <文件名> 其实我们在测试时, 合约已经部署到了 Hardhat 内置的网络上。 部署合约在scripts文件夹,新建一个deploy.js 用来写部署脚本。 12345678# 部署到Hardhat的...
Git版本控制
开始Git 管理文件有 3 个关键区域: 命令学习1.设置账号 12345678git config --global user.name "March" //用户名git config --global user.email 1342454075@qq.com //邮箱git config --global credential.helper store //保存git config --global --list //查看git config --global --unset user.email //删除邮箱(用户名类似) 2.管理文件 12345678910111213141516171819202122git init //初始化:在当前文件夹创建一个Git仓库git status //查看工作区、暂存区的文件状态echo "I am learning git.">test47.txt //写入内容到某一个文件,没有文件则创建,有文件则内容覆盖掉type test47.txt //查看文件内容(WindowsCMD适用)...
Solidity
学习网站:Solidity 官方文档WTF 学院 代码框架123456// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract MyContract {} 第一行是SPDX许可证标识,用于声明该合约使用 MIT 开源许可证。在 Solidity 0.6.8 及以上版本中,推荐显式声明许可证,它告诉用户该合约的使用权限和限制。第二行pragma是 Solidity 中的关键字,用于指定编译器版本规则。 版本号在任何一个Solidity智能合约中,首先需要的就是Solidity的使用版本,它应该被标注在Solidity代码的最上面。 Solidity是一个更新频率很高的语言,和别的语言相比,它总会有新版本,所以我们需要告诉代码,要用哪个版本。 ^0.8.0(最常见的形式):表示支持0.8.0及以上的版本(同 >= 0.8.0)。 0.8.22:表示只支持0.8.22版本。 = 0.8.0 <= 0.9.0:表示支持0.8.0及以上0.9.0及以下的版...




