最新要闻
- 买房不如买车、50万交利息税等:年轻人为什么越来越反感专家?
- 【新要闻】集成ChatGPT威力惊人:微软Bing下载量激增10倍
- 环球热门:QLC便宜即是王道 1728个SSD组成106PB超大硬盘阵列
- 环球速看:又有巨头扛不住了!迪士尼宣布裁员7000人:省了55亿成本
- 日本耗资万亿的国产大飞机失败内幕:重大安全缺陷 美国拒绝发证
- 当前动态:《三国演义》“关羽”陆树铭去世百天 妻子晒全家福:网友感叹
- 要涨价!《塞尔达传说:王国之泪》新实机出炉:能造汽车、飞机了
- 每日消息!趋势难挡!美国、法国等公司推行每周4天工作制:不减薪 提升幸福度
- 天天即时看!比ChatGPT差很多 谷歌Bard AI丢人了:回答错误致股价大跌
- 谷歌首公布Android 14:续航、流畅度激增、对折叠屏更好支持!
- 变天了!x86 PC陨落:ARM大暴走
- 高通憋出新大招:4G杀手来了
- 国美电器多个破产申请被驳回 苏泊尔在列
- 当前关注:脸都不要了!《黑棉花:悟能》无耻碰瓷《黑神话:悟空》
- Intel中国特供新U i7-13790F开卖:缓存多3MB 竟贵了150元!
- 最资讯丨吴京与粉丝合照被滤镜坑惨:没有明星能逃过美颜摧残
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
区块链安全前传之从Web3.0到创造自己的数字货币
互联网发展的三个阶段
web1.0
静态页面,内容只能供用户去阅读,类似于在网络上读报纸或者看书。
web2.0
动态互联网,实现用户之间的互动,比如twitter,facebook,titok等。
web2.0中厂商用免费或极低的成本吸引用户,通过获取到用户的信息来推流广告从而获得利润。
(资料图片)
打个比方就是 厂商在一片地上种了很多草,吸引羊来吃,趁着羊吃草的功夫把羊身上的毛薅下来拿去卖钱,而羊自己并不在意这些毛,可以说是一种双向互利的方式。
web3.0
web3.0是一个很模糊的概念,随着区块链技术的发展,基于区块链的web3.0诞生。
接着用上面的例子来说,随着web2.0的发展壮大,稀缺的不再是草,而是羊毛,也就是用户身上的数据。那么羊毛的重要性愈加突出,所以提出web3.0的概念,也就是拥有自己的一片空间,别人无论如何都无法修改,也就是将羊毛(数据)存放在了一个非常安全的地方中,相比于web2.0,不但实现了动态的交互,也实现了数据的“拥有”。
web3的概念非常模糊,可以说是一个大方向,按照我个人的理解可以说是在互联网创造了一个虚拟的世界,这个虚拟的世界拥有和现实世界一样的货币交易系统以及其他体系,能够自主维持运转的这样一个“虚拟生态系统”,而这个生态系统的生存法则就是“去中心化”。
什么是去中心化?
比如现在市面上的app都由一个厂家负责,厂商可以随意删除控制用户数据,形成了以厂商为中心的服务体系,去中心化就是没有中心厂商作为核心,而是所有用户形成一个能够自力更生的体系。
密码货币
随着web2.0发展,数字货币使用越来越多,而在区块链技术的支持下,数字货币也出现了全新的存在形式,去中心化的密码货币,世界上第一种密码货币就是比特币。像纸币有防伪印一样,密码货币通过密码学的散列计算出的hash值并且和智能合约进行绑定,密码货币基于去中心化的机制,与依赖中心监管体系的银行金融系统相对。之后出现的数种密码货币被创造,它们通常被称为altcoins。
区块链
区块链的防篡改机制一个区块中储存了三样东西:数据,前一个区块的hash值,自身的hash值(由数据和前一区块的哈希值共同决定),如果要更改某一区块的内容,那么该区块(a区块)的hash值就会改变,下一区块(b区块)储存的a区块的hash值无法对应a区块当前哈希值,那么这两个区块间的链接就会断开。
如果想要篡改某一区块的数据,我们就要将这一区块以及后续所有区块的hash值进行重算,比如一条区块链里面有abcde五个区块,当我们篡改了b区块的数据,那么我们就要带着b区块的新hash值和c区块的数据重新计算出c区块的新hash值,然后再带着c区块的新hash值和d区块的数据重新计算d区块的新hash值,再带着d区块的新hash值和e区块的数据重新计算e区块的hash值…………………..其实在重新计算某一区块的hash值的过程也就相当于创造了一个新的区块,因此篡改一个区块以及后续区块所需的时间取决于创造一个区块所需要的时间。
这个看起来对算力要求似乎非常庞大,但是现代计算机其实是可以做到这一点的,如果我们有一台超大算力的计算机,那么是不是轻松就可以改变区块链的内容了?为了防止这种情况的出现,区块链加入了工作量证明机制(proof of work)简称 pow
我们用游戏举例说明一下pow,我们刚才说到用超大算力计算机来篡改区块链,这就好比你拿着满级神装在新手村乱杀,区块链是不允许这种情况出现的,因此它会上调怪物属性,也就是会增加创造一个区块所需的难度,使每一新区块被创造时都保持在十分钟左右(当然这个时间是可以更改的),因此即使是一台超高算力的计算机想要篡改一个区块所需的时间仍然是
创造一个区块的时间✖️n min
。
那我们所说的挖矿是什么呢?上面提到的情况是想要篡改区块中的数据,那么我没有恶意,我只是单纯的创造区块去给自己或者他人使用,这个创造区块的过程牺牲了我电脑的算力和一些其他资源,所以作为补偿,创建区块的人会得到密码货币的奖励,这就是我们所说的挖矿。
区块链的点对点网络结构
在传统的web服务中,传统的链接对象基本都是客户端和服务端,众多客户端访问一个服务端来进行交互,而在区块链的点对点网络结构(peer to peer)中,不再有客户端与服务端的概念,每一个节点间相互平等,并且包含完整的区块链数据存储,也就是说每一个节点中都储存了整个区块链网络中的所有信息,这样即使一个节点出现故障,其他所有节点也在帮他记录信息,这些记录了所有节点区块链的节点叫做全节点,当然也有只储存了自己信息的轻节点,比如区块链用来储存转账记录,那么每一节点都储存了所有节点之间的转账记录,每一节点储存的内容也是相同的,如果某一节点与其他节点出现差异,那么该节点或许就有被篡改过的可能了,但是被篡改几乎是不可能发生的,原因看下面。
点对点网络结构下的所有节点拥有判断区块是否被篡改的能力,当一个新区块想要加入某一节点的区块链时,该节点会向其他所有节点进行广播,所有的节点进行判断,如果50%以上的节点都认为该区块没有被篡改,那么这个区块就可以成功的加入区块链当中,反言之如果想要篡改某一区块的数据,你首先要将这一区块后的所有哈希重新计算,并且还要更改超过百分之五十节点的这一区块后的所有区块的哈希,那么就要拥有超过全网50%以上的算力才可以,这付出的代价是相当高的,这就是区块链网络系统的少数服从多数原则。
DAPP
Dapp 是什么?
APP (Application) 指的是手机里的应用程序,像是微信、微博、抖音…等都是日常生活中常会使用到的 App。
而 Dapp 的全名为去中心化应用程序(Decentralized Application),是建立在区块链系统网络上,所提供的服务都具有公开透明、不可篡改的特性。
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
① 网安学习成长路径思维导图 ② 60+网安经典常用工具包 ③ 100+SRC漏洞分析报告 ④ 150+网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南+题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集(含答案) ⑧ APP客户端安全检测指南(安卓+IOS)
以下是 Dapp 所具有的要素:
1. 代码开源:程序代码皆公开透明,任何人都可以查阅及审核,避免项目方说到没做到。
2. 分布式帐本:降低数据遗失的风险,且没有任何其他第三方有权能够窜改数据。
3. 数据所有权:除本人(私钥持有者)外,任何人皆无法动用该帐号的数据。
为什么 Dapp 会崛起?
事实上,App 都是中心化的应用服务,用户所使用的数据都会存储在单一服务器系统里,代表公司能掌控用户的所有数据,但相关问题也随之浮出水面。
数据所有权归属问题
用户在 App 上的个人资料、搜索浏览纪录等信息都会存储在中心化系统的服务器里,这也意味着软件公司能够借由这些数据来营利。
也导致像是微博、抖音等企业,能透过搜集的用户数据来投放广告,并借此获利。等于企业能用你的信息来赚钱,但你却分不到任何好处,甚至还可能受到影响(例如被疯狂投放广告、或个人资料被平台外泄)。
另外,传统手游的游戏道具、帐号数据也都属于公司所有,一旦宣布停止营运,这些资产也会随着官方服务器关闭而消失。
但在 Dapp 中,你的游戏道具、帐号都会以 NFT 形式储存在链上,因此只要区块链不倒,你就能持续拥有这些资产。换句话说,Dapp 能够让数据的所有权回归到用户身上。额外提醒,虽然你仍拥有这些资产,但可能会因为游戏已经关闭,导致这些资产的现值趋近于零,你能保有的仍以回忆居多。
过度中心化
App 是由中心化服务器来进行管理,因此企业有时可以专断独行,但用户却没有任何反制的手段:例如可以随意植入广告,或是删除用户的内容、帐号。
而 Dapp 的数据都存在区块链上,因此项目方没办法任意删除用户资料,目前也没有任何广告植入的问题(但不确定未来是否会有项目开始植入广告)。
由于上述几点原因,也让许多人开始对传统的 App 感到不满,于是就有人打算通过区块链“去中心化”的特性来研发能解决上述问题的 App,于是 Dapp 就此诞生。
不过同时也要注意,不是每个 Dapp 都一定符合公开、去中心化的规范,例如 Opensea 就能下架用户的 NFT 和限制用户登陆。
Dapp 与 App 的差异
App 的应用服务是使用中心化服务器,代表软件公司必须要承担存储用户的数据量的营运成本,否则将无法持续地运行。
例如抖音服务器的成本就百万以上,因此必须想办法创造各种营收管道来支持各项支出,像是通过大数据将广告推广到潜在用户面前,借此吸引更多广告商进驻。
而 Dapp 是建立在区块链上,用户在链上进行交易、换币等行为时,是需要自行负担手续费(Gas 费)的,也就代表开发商的运营成本会比传统 App 来得更低(不过有些开发商为了吸引用户,会帮用户负担使用时的手续费)。
智能合约
智能合约,是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控,类似于传统web的后端代码。
简单区块链实现
我们用Javascript来手写一个建议的区块链出来,其实和写一个链表很像:
const sha256 = require("crypto-js/sha256")Date = new Date()class block{ constructor(data,time,previousHash) { this.data = data this.time = time this.previousHash = previousHash this.myHash = this.currHash() } currHash() { return sha256(this.data + this.time + this.previousHash).toString() }}class blockCahin{ constructor() { this.chain = [this.createBlockchain()]; } createBlockchain() { return new block("Genesisblock",Date.toLocaleString(),0o0000000) } getLatestblock() { return this.chain[this.chain.length - 1] } addBlock(newBlock) { newBlock.previousHash = this.getLatestblock().myHash newBlock.myHash = newBlock.currHash() this.chain.push(newBlock) }}BlockChain = new blockCahin()BlockChain.addBlock(new block("this is a test",Date.toLocaleDateString(),"anything"))console.log(BlockChain)
接下来我们用代码实现一下简易的POW:
const sha256 = require("crypto-js/sha256")function proofOfwork(){ let seed = "y1zh3e7" let x = 1 // x为自增变量 while (true){ if(sha256(seed + x).toString().substring(0,4) != "0000") // 定义难度,比如我现在要求通过不断自增x去计算seed+x的哈希值 { // 当哈希值前四位都为0000时则代表成功 如果想提高难度我们就可以让前x位为xxxx x += 1 }else{ console.log(sha256(seed + x).toString()) break } } console.log(x) // 输出计算多少次后成功}proofOfwork()
实现防篡改机制:
/***********************************************验证区块链防篡改需要检测两项: 1.重新计算区块的hash值,判断与区块中储存的hash是否相同 2.判断当前区块的previousHash是否和上一区块的hash相同 ***********************************************/function validateBlock(validBlockchain){ if (validBlockchain.chain.length == 1) { if(validBlockchain.chain[0].myHash != validBlockchain.calcHash()) { console.log("数据篡改") return false } }else { for (let i=1; i<=validBlockchain.chain.length-1; i++) { if(validBlockchain.chain[i].myHash != validBlockchain.chain[i].calcHash()) { console.log("数据篡改") return false } if (validBlockchain.chain[i].previousHash != validBlockchain.chain[i-1].myHash) { console.log("前后区块链断裂") return false } } } console.log("数据无篡改且区块链结构完整") return true}
将完整的POW整合到区块链当中并实现挖矿功能,最终实现的完整区块链:
const sha256 = require("crypto-js/sha256")Date = new Date()class block{ constructor(data,time,previousHash) { this.data = data this.time = time this.nonce = 1 this.previousHash = previousHash this.myHash = this.calcHash() } calcHash() { return sha256(this.data + this.time + this.previousHash + this.nonce).toString() } /** **/ getAnswer(difficulty){ let answer = "" for(let i=0; i
数字货币的简单实现
比特币
我们前面说到区块链是用来记录信息的,如果它记录的是转账记录那么它就成了一个账本。
一笔转账信息需要以下四个信息:
付款人 收款人 转账金额 转账时间
我们前面提到了POW,比特币会通过POW将产生一个区块的时间控制在十分钟左右,比特币的工作机制基本如下:
整个区块链是一个网状的网络结构,其中有一个中心,每十分钟发布一个问题(类似于我们之间生成的目标Hash),当问题发布后,该网状网络中的所有结点会来解这个问题(挖矿,爆破目标Hash值),此时就是各结点间的算力比拼,当有一个结点解出该问题后则代表挖矿成功,一个新区块被创造出来,这时该新区块内会自动生成一笔转账记录,其中的收款人就是该区块的挖出者,这时区块链就会自动把奖励发放到收款人的账户上,并且该区块会在整个区块链网络中进行广播,区块链中的每一个结点会对该区块进行验证其合法性,经过验证后该新区块就会被加到区块链上。每四年比特币的奖励会减半一次,最后的比特币总量大约是在2100万个左右。
那么这里会有一个问题,如果过了几年之后,比特币越来越少,每次挖矿后几乎得不到比特币了,那还会有人来挖矿吗?
其实比特币只是比特币区块链中的一个额外奖励机制,整个区块链货币依赖的是每一笔转账记录的手续费,当一个新区块被挖出时那么这个新区块的转账信息(我们刚才说到的比特币奖励机制)就会记录在这个新区块上(以转账的方式发放奖励货币),后续也会记录其他的转账信息,并且会产生手续费,手续费归记录该笔转账信息的区块的挖出者所有。
说到动态调整难度,比特币是怎么调整的呢?
比特币会在每2016个区块诞生后验证一下难度,如果说本来预期中mine这2016个区块所需要的时间是两个星期,而实际只用了一个星期,那么此时比特币区块链就会调整难度,使其达到预期,基本上比特币区块链会每两个星期调整一次难度。
创建自己的数字货币
首先我们要新建一个Transaction类来进行转账记录:
class Transaction{ constructor(from, to , amount) { this.from = from this.to = to this.amount = amount }}
更改区块中data的含义,此时要记录的是转账信息transaction,并且由于transaction是一个对象,因此在参与计算哈希时要转为字符串(这里将时间改为了Date.now,这样在区块创造时就记录了这笔转账记录的时间):
class Block{ constructor(transaction,previousHash) { this.transactions = transaction this.time = Date.now() this.nonce = 1 this.previousHash = previousHash this.myHash = this.calcHash() } // 计算hash时要将data转换为字符串类型,此时的data是一个transaction calcHash() { return sha256(JSON.stringify(this.transactions) + this.time + this.previousHash + this.nonce).toString() }
上面说到奖励货币的发放是通过转账的方式实现的,所以我们在链上实现逻辑:
class blockChain{ constructor() { this.chain = [this.createBlockchain()] this.difficulty = 5 this.transactionPool = [] //挖矿成功的转账信息 this.mineReward = 50 //每次挖矿成功的奖励货币数 }mineTransaction(minerAddress) { const minerRewardTransaction = new Transaction("", minerAddress, this.mineReward) this.transactionPool.push(minerRewardTransaction) }
之前我们是在外部传入一个区块,在整个货币系统的实现后区块应该是在挖矿时在区块链内部产生的,修改代码:
//将Transaction添加到Transaction Pool中 addTransaction(Transaction) { this.transactionPool.push(Transaction) } mineTransaction(minerAddress) { const minerRewardTransaction = new Transaction("", minerAddress, this.mineReward) this.transactionPool.push(minerRewardTransaction) //挖矿 /******************************************************** * 这里新区块记录了整个区块链的转账信息,但在实际情况中区块的存储 * 容量是有限制的,所以在挖矿时记录的转账记录会选择手续费最高的transaction * 我们这里先不考虑这种情况 *******************************************************/ const newBlock = new Block(this.transactionPool,this.getLatestBlock().myHash) newBlock.mine() //添加到区块链,并清空Transaction Pool this.chain.push(newBlock) this.transactionPool = [] }
整个写好的数字代币:
const sha256 = require("crypto-js/sha256")class Transaction{ constructor(from, to , amount) { this.from = from this.to = to this.amount = amount }}class Block{ constructor(transaction,previousHash) { this.transactions = transaction this.time = Date.now() this.nonce = 1 this.previousHash = previousHash this.myHash = this.calcHash() } // 计算hash时要将data转换为字符串类型,此时的data是一个transaction calcHash() { return sha256(JSON.stringify(this.transactions) + this.time + this.previousHash + this.nonce).toString() } /** 获取相应难度hash **/ getAnswer(difficulty){ let answer = "" for(let i=0; i
更多靶场实验练习、网安学习资料,请点击这里>>
-
天天快资讯:“采访”ChatGPT看看它对我们GreatSQL社区有什么看法
什么是ChatGPT?ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习...
来源: -
焦点热文:开发过程中安装的依赖包
vue借助插件js-table2excel实现导出excel,并导出图片到excel安装npminstalljs-table2excel(yarnaddjs-table2excel)
来源: 区块链安全前传之从Web3.0到创造自己的数字货币
天天快资讯:“采访”ChatGPT看看它对我们GreatSQL社区有什么看法
关于小程序变现方式你还知道哪些?
焦点热文:开发过程中安装的依赖包
每日热议!Spring源码第一章:创建简单的 Bean 容器
买房不如买车、50万交利息税等:年轻人为什么越来越反感专家?
【新要闻】集成ChatGPT威力惊人:微软Bing下载量激增10倍
环球热门:QLC便宜即是王道 1728个SSD组成106PB超大硬盘阵列
环球速看:又有巨头扛不住了!迪士尼宣布裁员7000人:省了55亿成本
日本耗资万亿的国产大飞机失败内幕:重大安全缺陷 美国拒绝发证
当前动态:《三国演义》“关羽”陆树铭去世百天 妻子晒全家福:网友感叹
要涨价!《塞尔达传说:王国之泪》新实机出炉:能造汽车、飞机了
每日消息!趋势难挡!美国、法国等公司推行每周4天工作制:不减薪 提升幸福度
天天即时看!比ChatGPT差很多 谷歌Bard AI丢人了:回答错误致股价大跌
读Java实战(第二版)笔记05_Collection API的增强功能
谷歌首公布Android 14:续航、流畅度激增、对折叠屏更好支持!
全球快播:Linux-ansible
天天视点!Python教程:selenium模块用法教程
世界报道:带你体验下来自人工智能ChatGPT的魅力
【全球热闻】小白也能做应用(一)之fusion app介绍
高层次综合器(Vivado HLS)的设计流程[原创www.cnblogs.com/helesheng]
变天了!x86 PC陨落:ARM大暴走
高通憋出新大招:4G杀手来了
国美电器多个破产申请被驳回 苏泊尔在列
当前关注:脸都不要了!《黑棉花:悟能》无耻碰瓷《黑神话:悟空》
Intel中国特供新U i7-13790F开卖:缓存多3MB 竟贵了150元!
当前快报:【Windows】Microsoft Store无法打开:关闭自动更新(请联系系统管理员更改此设置)
最资讯丨吴京与粉丝合照被滤镜坑惨:没有明星能逃过美颜摧残
环球时讯:明天上映!《流浪地球2》发布港版预告片:MOSS竟然说英文
资讯:log4cxx配置日期回滚策略中增加MaxFileSize属性
天天看点:MySQL索引的基本理解
当前关注:强大的Excel工具,简便Vlookup函数操作:通用Excel数据匹配助手V2.0
通过python,将excel中的数据写入二维列表
天天日报丨爬虫基础
科大讯飞:类ChatGPT技术今年5月落地 AI学习机产品先用
天天速看:31.98万元!理想L7 Air发布:性能不变 无空气悬架
天天速读:三星S23 Ultra拍月亮100倍变焦的效果:把马斯克都惊艳到了
世界今头条!分布式配置nacos搭建踩坑指南(上)
焦点消息!TVS二极管
(七)elasticsearch 源码之元数据CulsterState
暴雪关停国服后 CEO发声:游戏行业被亚洲主宰 东西方竞争不平衡
累计交付27万台 李想:理想成为国内家庭消费者首选豪华SUV
世界最新:高通全球首发5G NR-Light基带:主打中端物联网、峰值速率220兆
城市行驶每公里仅1毛钱!理想L7出行成本不足宝马X5十分之一
消息!drf认证/权限/频率/分页-过滤-排序
报道:【时间基准】NTP网络时钟服务器助力智能农业系统
快播:C和Python实现快速排序-三数中值划分选择主元(非随机)
宗申新款电动车闪电侠发布:续航超200公里 仪表盘可手机投屏
环球观速讯丨丢失两年的手机半夜仍被人试图解锁 被系统远程拍下照片
网友吐槽快递派送延误 韵达总部:人手紧张正调配
《狂飙》蜚声海外 英国小伙们沉迷剧集无法自拔:竟被打斗画面吸引
今日热文:大货车实线变道 女子科三被别停挂科当场发飙
全球热消息:土耳其一城市震后被海水倒灌:汽车泡在水里
环球观焦点:漂浮在数万米高空 你见到的“不明飞行物”:很可能就是一只气球
一加Ace 2支持双频GPS:发布会上没讲 结果被很多网友误伤
【天天播资讯】太火爆!ChatGPT多次因访问量激增而宕机
程序员常用的6款效率工具,准时下班不是梦
世界看点:春节假期“清零”,任务管理飞项快速助你回到高效状态
全球最新:win10系统,软件不可用,无法调用摄像头
Linux内核跟踪和性能分析
要闻:14年了:“千年老二”微软终于有机会扳倒谷歌搜索
热消息:微星推出Cubi 5 12M迷你主机:仅0.66L、配备双网口
世界热点评!女生应聘被问是否单身!当事公司:要求单身正常 将起诉举报者
【全球时快讯】近50年来首次!日本沙滩惊现大量沙丁鱼 原因未知:开排核废水、也要大地震?
最新资讯:国产车开门红:1月比亚迪称王 大众沦落第三 合资腰斩
03-Pandas详解
今日热讯:ChatGPT能做什么?零基础教你免费使用ChatGPT和账号注册
当前速看:美团面试失败后,翻了两年前的面试题,发现根本不是一个难度的
当前简讯:Linux安装
Spring Boot发送GET/POST请求——RestTemplate的基本使用
当前报道:自研指令集没有侵权MIPS 国产CPU龙芯赢了:摆脱官司
当前讯息:自燃车辆引燃邻车 损失谁来赔?法院释疑
天天最新:基于 eBPF 的 Serverless 多语言应用监控能力建设
世界最新:构建亿级别的消息推送基础模型
全球热文:Linux开源工具之nethogs命令介绍
精选!COBOL教程_编程入门自学教程_菜鸟教程-免费教程分享
华硕发布新款Vivobook 13 Slate笔记本:Intel 7W超低功耗U
今日精选:3岁女童喊脚疼被确诊癌症晚期:神经母细胞瘤 儿童癌症之王
天天微速讯:剧版《三体》弹幕互动量破2000万!豆瓣涨至8.3分
【热闻】iPhone 15 Ultra狂堆料!价格可能贵出天际
环球热议:全球不足50人!宝鸡发现1例罕见黄金血型:比熊猫血更稀有
环球资讯:ASP.Net Core 教程_编程入门自学教程_菜鸟教程-免费教程分享
ChatGPT保姆级注册教程
group by 、concat_ws()、 group_caoncat()的使用
全球热头条丨Jedis那么低性能,还在用吗? lettuce时代开幕啦
热资讯!阿里IM技术分享(十):深度揭密钉钉后端架构的单元化演进之路
强震已致超7700人遇难!土耳其地震背后的人祸 建筑不达标、豆腐渣工程多
全球热议:全球首架国产大飞机C919首飞三亚 民航最高接待礼“过水门”接风
环球关注:iPhone 15 Pro系列拿到三星顶级屏幕!超出S23系列整整两代
全球消息!高级Excel教程_编程入门自学教程_菜鸟教程-免费教程分享
重点聚焦!Serverless 时代开启,云计算进入业务创新主战场
【天天报资讯】Go的参数是传值还是传引用问题
【环球聚看点】【踩坑记录】单测中@PostConstruct多次执行
免费无广告 微软电脑管家2.7公测版发布:任务栏被意外修改有救了
4599元!佳能EOS R50发布:329克超轻便 支持无裁切6K
天天信息:研发10几年、花费千亿:日本国产大飞机为何失败?就是畸形产物
全球微速讯:LV将涨价?国人排长龙抢购 买万元包像在赶集:世界首富曾感慨中国用户有钱
高级Excel图表教程_编程入门自学教程_菜鸟教程-免费教程分享
Apache ANT 教程_编程入门自学教程_菜鸟教程-免费教程分享
焦点播报:算法学习笔记(15): Trie(字典树)