自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

  • 博客(312)
  • 收藏
  • 关注

原创 【区块链 | DAPP】Dapp应该怎么开发?分享一篇Dapp开发的逻辑(分享) 更新中~

写在前面本篇文章将带领你从零学会一个Dapp开发,笔者从最初的不了解区块链概念到如今精通Dapp、智能合约开发,中间踩过无数的坑,经历过无数困难!一、什么是Dapp?去中心化应用(decentralized application),或简称DApp,通常与区块链平台例如以太坊相联系,是一个在分布式点对点网络上运行的应用程序,而不是在一台中央计算机上。这样做的主要好处是,网络的用户不依赖于中央计算机来发送和接收信息。为了充分理解去中心化应用程序与中心化应用程序之间的区别,我们可以看一下中心.

2020-12-04 15:13:45 9840 15

原创 【Node.js】node 项目代码如何开启多线程,非常好用?

以上代码演示了如何在 Node.js 中使用多线程。请注意,使用多线程的场景必须慎重考虑,并不是所有的应用都适合使用多线程。的,但是可以通过使用 Worker Threads 模块在 Node.js 应用程序中开启。了这三个 worker 线程,并且等待它们都执行完成后打印出结果。模块创建了三个 worker 线程。文件中,我们可以编写处理数据的逻辑,并将最终结果返回给。文件,它们都会被传递不同的。在上面的示例中,我们使用。

2023-11-02 13:30:08 664

原创 【JS | MD5】使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要.彩虹表(Rainbow Table)是一个用于加密散列函数逆运算的预先计算好的表, 为破解密码的散列值(或称哈希值、微缩图、摘要、指纹、哈希密文)而准备。是一种不可逆的算法。,MD5的安全性大大减弱。

2023-09-26 17:01:11 1828

原创 【服务端 | Redis】如何使用redis 有序集合实现股票交易的订单表(价格优先、时间优先)

在score相同的情况下,redis使用字典排序,而所谓的字典排序其实就是“ABCDEFG”这样的排序,在首字母相同的情况下,redis会再比较后面的字母,还是按照字典排序(如截图所示,beigai和baijing的排列顺序)。根据上图我们可以将价格格式化后设置为score,将时间戳和订单额格式化后合并为一个字段,保持所有订单的此字段格式相同,redis会通过字典自动排序用户交易。时,自己发现了一个问题,redis的有序集合在score相同的情况 下是如何排序的?前两天倒腾redis的有序。

2023-09-25 11:26:16 346

原创 【区块链 | DID】白话数字身份

身份体系重复建设,在浪费资源的同时,也存在诸多数据共享和使用上的障碍,不同身份系统形成“身份孤岛”,阻碍了数字身份的发展。(2) 学校颁发毕业证给小明:学校本身也有自己的DID标识,学校是教育系统里面颁发的DID标识,所以DID Method和小明作为中国公民的DID Method不一样,所有认证过的高校的DID标识都是由高校认证管理DID创建的,所以这相当于传统的根CA,获得认证的正规学校根据小明的学习情况(入学时间、毕业时间、专业、是否结业等信息)以及小明的DID,为小明颁发毕业证,即VC;

2023-09-25 10:33:44 2184 3

原创 【Linux | systemd】systemd(systemctl命令)运行服务的配置文件详解

你有想过服务器上那么多服务在运行,它们都会怎样工作?服务是独立的个体,每个只管自己的死活,如果某个服务自己偷偷死了,会造成很严重的后果,且一种服务一种管理方式,这堆起来会累死老师傅的。所以,Linux的管理服务能力是个香馍馍,就一点都不奇怪了。文章来源地址: https://www.yii666.com/blog/347720.htmllinux 服务器主要的能力之一就是配置并管理系统上运行的各种服务程序。

2023-09-14 09:26:43 2108

原创 【服务器 | 测试】如何在centos 7上面安装jmeter

安装之前需要几个环境,以下是列出的几个环境。

2023-09-12 16:40:47 812

原创 【服务器 | 宝塔】宝塔面板卸载重装教程:清理删除宝塔面板并重新开始

宝塔面板卸载重装怎么操作?我们很多用户可能安装宝塔之后会经常看一下有没有新版本,如果有新版直接右上角我们很多用户可能安装宝塔之后会经常看一下有没有新版本,如果有新版直接右上角”更新”升级一下版本就可以了,升级新版也有助于修复已知的BUG或漏洞。那么除了升级之外,如果我们想卸载宝塔,并且使用其他的建站环境的话,可以看一下本文整理的一键卸载重装教程。目前,卸载方法主要包括直接重装系统法以及使用宝塔提供的卸载命令进行卸载的方法。

2023-09-08 16:48:43 10085

转载 Sidetree协议

转载自 博客链接:

2023-09-07 16:14:13 162

原创 【区块链 | IPFS】IPFS节点搭建、文件上传、节点存储空间设置、节点上传文件chunk设置

​整体的流程。

2023-09-07 14:36:40 3260 5

原创 linux安装wget命令_linux下载文件到本地命令

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181184.html原文链接:https://javaforall.cn。下载地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/

2023-09-06 14:06:49 861

原创 【区块链 | IPFS】IPFS cluster私有网络集群搭建

(每个节点安装) 用于初始化集群 peer 并运行它的守护进程,启动一个cluster对等节点(一个节点安装即可) 管理集群的节点和数据,用于和ipfs-cluster-service进行交互(可选,运行一个follower peer没有写权限,用于加入协作集群)2. 下载安装cluster1. 源代码编译安装我们将ipfs-cluster克隆到 GOPATH 下,然后 make 编译安装(系统已安装 make):查看一下是否安装成功:2. 下载二进制安装3. 初始化。

2023-09-06 10:21:09 1795 2

原创 【区块链 | IPFS】浅谈 | IPFS数据存储原理

IPFS在数据存储方面采用的是分散式的文件存储,区别于HTTP协议的位置寻址,IPFS是基于内容寻址,当文件上传到IPFS节点存储时,节点会对文件进行Merkle DAG(默克尔有向无环图)的格式组织分块存储,在存储完毕后,文件将以Merkle DAG的根哈希数来表示该文件,用户可以从IPFS构建的网络中以DHT(分布式哈希表)的方式获取文件。IPFS并不会要求每一个节点都存储所有的内容,节点的所有者可以自由选择想要维持的数据,在备份了自己的数据之外,自愿的为其他的关注的内容提供服务。

2023-08-31 09:35:33 1446

原创 express服务器中的cors解决跨域步骤---express后端解决跨域问题的方法cors

5. 服务器端没有通过cors解决跨域的话,前端若用的vue可以使用proxy代理[开发环境的跨域解决方案]的方式在前端解决跨域问题。3. ctrl+c退出命令行后,再重新启动服务器,必须退出之后再重启才会生效。4. 这样前端直接使用接口就不会报跨域问题了。2. 服务器的主文件中导入cors。// 项目根目录下运行下列命令行。// 后端解决跨域导入cors包。// 服务器根目录下的终端命令行。1. 安装cors依赖。

2023-07-03 19:14:04 454

原创 【区块链 | GameFi】 - 传统游戏进军链游GameFi的探索之路

早在 2017 年,世界首款区块链游戏《CryptoKitties》上线,开启了 NFT+ 链游赛道,之后市面上的链游产品大多类似传统的卡牌收集类游戏,以 NFT(数字藏品)为核心,主要通过花费时间去收集资源的方式进行,游戏体验单一。2019 年开始,P2E(Play to Earn 边玩边赚)的形式兴起,用单币或双币制的经济系统开启了链游的新体验,代表作《Axie Infinity》在 2021 年时随着 Gamefi 的热度爆发,以单日收入超过《王者荣耀》一举成为全球最吸金手游。

2023-06-25 14:17:30 681

原创 【区块链 | L2】作为Layer2赛道的领跑者,如何理解 Arbitrum?

Rollup 和 AnyTrust 在很多方面都很相似,但有一个关键区别:在 Rollup 中,所有数据都发布在 L1 上(允许任何人以验证者身份无需许可地加入),而在 AnyTrust 中,数据是在链下管理的。事实上,大多数时候,使用 Arbitrum 的体验与使用以太坊的体验相同(重要的例外是它更便宜、更快)。Arbitrum 是一个构建在以太坊之上的区块链网络。用户所做的任何其他事情——例如,将资金从以太坊存入 Arbitrum,或使用部署在 Arbitrum 链上的 dapp——不会导致此延迟期。

2023-06-07 15:10:34 1471

原创 【区块链 | L2】详解Layer 2扩展解决方案Optimism(OP)是如何工作的?

Optimism 核心团队有现实世界的限制,建立在 Optimism 之上的项目有现实世界的需求,而参与 Optimism 的用户有现实世界的问题。一旦一个承诺被认为是最终的,以太坊上的智能合约可以安全地接受基于该承诺的Optimism状态的证明。在 Optimism 上执行交易的过程与在以太坊上相同:我们加载 Optimism 状态,针对该状态应用交易,然后记录由此产生的状态变化。一旦用户的存款在 Optimism 上被检测到并最终确定,用户的账户将在 L2 上获得相应数量的 ETH。

2023-06-07 15:05:32 794

原创 【区块链 | L2】Optimistic Rollups Vs Zero-Knowledge Rollups(乐观汇总与零知识汇总)

在 optimistic rollups 的情况下,交易被认为是有效的,而 zk-rollups 依赖于通过有效性证明对状态转换的计算验证。最重要的是,汇总成本要低得多,因为乐观汇总依赖于在Ethereum上发布最少的数据。ZK rollups 可能在ZK rollups 与 optimistic rollups的加密证明元素比较中具有更好的吸引力。没有固有的有效性证明。另一方面,网络活动的急剧增长也导致了关于确定最佳扩展解决方案的 optimistic rollups 与 ZK rollups 的争论。

2023-06-07 14:54:41 1494

原创 【区块链】以太坊L2扩容方案与零知识证明

简要概述以太坊L2层现有解决方案简要概述以太坊L2未来扩容的方向简要概述零知识证明的基本概念和零知识证明在以太坊的运用简要概述stark ware的两个产品,但并不推荐现有使用和研究简要概述polygon zkEVM,推荐使用和研究。

2023-06-07 09:39:58 1131

原创 【区块链】科普:零知识证明、ZKRollup 与 zkEVM

零知识(ZK)证明是一种验证一方(证明者)知道某些信息的方法,而不要求他们提交这些信息或任何种类的敏感数据,如密码。例如,你如何确定一个用户知道一个被埋藏的海盗宝藏的位置,而不需要他们拿出地图?或者检查对方在银行里的钱是否比你多,而不需要看到他们的账户余额?零知识证明会让你做到这一点,尽管在现实中这种技术主要用于验证区块链数据,如区块链钱包的所有权。术语 "零知识 "来自于另一方(验证者)不需要知道关于你持有的信息的任何具体信息。这在区块链领域至关重要,因为区块链是关于隐私的。

2023-06-07 09:20:16 1252

原创 【区块链 | EVM】深入理解学习EVM - 深入了解 Solidity:堆栈

在深入研究EVM堆栈的特性之前,我们需要了解虚拟机架构的一些基本知识。虚拟机(VM)是在本地操作系统之上的一个高级抽象。它模拟了一个物理机,并使其能够在多个操作系统和硬件架构上运行同一个平台。基于寄存器的虚拟机基于堆栈的虚拟机在执行汇编语言定义的指令时,虚拟机如何存储、检索和使用参数(例如,算术运算的操作数)。用来存储这些参数的数据结构不同当涉及到作为EVM数据位置的 "堆栈 "时,有五个主要特征需要记住。

2023-06-07 08:59:46 1665

原创 【Java】Java代码中如何执行命令行命令

方法二:new ProcessBuilder(String... command).start()方法一:Runtime.getRuntime().exec(String cmdarray[])然后创建java程序:(博主是在macos上实验的)

2023-02-20 17:23:07 1478 3

原创 【区块链 | 审计】智能合约审计指南

这些黑客是由于智能合约中的漏洞导致的,这使得黑客可以窃取存储在这些合约中价值数百万美元的加密货币。这可能导致程序崩溃,或者更糟糕的是,它会消耗所运行的系统的所有资源,造成拒绝服务攻击。例如,如果一个合约被发现容易受到某种特定的攻击,可能会通过改变合约的使用方式来缓解问题,从而使攻击不再可能。有几种不同的方法来保护存储变量,例如使用像 SafeMath 这样的库(0.8 之后 Solidity 内置了 SafeMath),它可以确保所有的数学操作都以安全的方式进行。简而言之,误用智能合约会产生严重的后果。

2023-02-01 10:48:04 1339

原创 【区块链 | 审计】关于审计技术和工具 101事

译文出自:登链翻译计划[1]译者:翻译小组[2]校对:Tiny 熊[3]审计:是对项目代码库的外部安全评估,通常由项目团队要求并支付费用。它检测并描述(在报告中)安全问题,包括潜在的漏洞、严重程度/难度、潜在的利用方案和建议的修复。它还提供了对代码质量、文档和测试的主观见解。审计报告的范围/深度/格式在不同的审计团队中有所不同,但它们通常涵盖类似的方面。审计范围:对于基于以太坊的智能合约项目,范围通常是链上智能合约代码,有时也包括与智能合约交互的链下组件。

2023-02-01 10:12:46 1356

原创 【区块链 | 前端】前端开发人员入门区块链的最佳实践

前端开发人员入门区块链的最佳实践。

2023-01-04 16:04:05 3876

原创 【区块链 | EVM】深入理解学习EVM - 深入Solidity数据位置:Calldata

如果你熟悉web3.js或ethers.js,你可能看过使用或时作为参数传递的data字段。这是calldata(简称),或 "随着消息调用发送的数据"(无论我们用的是staticcall、合约调用,还是任何改变状态(区块链状态或合约状态)的实际交易,在这里都不重要)。黄皮书上,对calldata的解释?(第21页,第4.2节 > 交易 > 数据)。calldata是EVM中的一个特殊数据位置。它指的是在两个地址之间的任何消息调用交易中发送的原始十六进制字节。

2023-01-04 15:51:46 559

原创 【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置:存储

了解以太坊和基于EVM的链中的存储模型对于良好的智能合约开发至关重要。你可以在智能合约上永久地存储数据,以便将来执行时可以访问它。每个智能合约都在自己的永久存储中保持其状态。它就像*"智能合约的迷你数据库 "*,但与其他数据库不同,这个数据库是可以公开访问的。所有存储在智能合约存储器中的值可供外部免费读取(通过静态调用),无需向区块链发送交易。然而,向存储空间写入是相当昂贵的。事实上,就Gas成本而言,它是EVM中最昂贵的操作。存储的内容可以通过调用来改变。这种调用会改变状态。

2023-01-04 15:46:26 469

原创 【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置:内存

在介绍性文章深入Solidity数据存储位置中,我把EVM描述为一个工业工厂。在工厂的某些地方,你会发现由操作员控制的机器和机器人。这些机器将无法加工的大块钢铁/铝材分解成小块。我们可以用同样的例子来说明以太坊。EVM作为一个堆栈机器,它在32字节的字上运行。当EVM遇到大于32字节的数据(复杂的类型,如string,bytes,struct或数组),它不能在堆栈中处理它们,因为这些项目太大。因此,EVM需要把这些数据带到其他地方去处理。它有一个专门的地方:内存(memory)。

2023-01-03 17:08:50 1028

原创 【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置

作为一个对自己事业充满热情的人,一个工业炉的建造者和翻新者,我的父亲决定把我送到工业工厂去工作。非常大的工厂!熔化和制造钢铁和铝的工厂(Arcelor Mittal和Constellium)。你需要一辆车在工业工厂的不同部门之间来回穿梭,比如钢铁厂和轧钢厂。这是取自StackExchange的以太坊和EVM架构的代表图和EVM架构图一样,安赛乐米塔尔工业厂房的道路规划图一开始也是很难理解的!我还记得的是我第一次进入包含轧机的机库(看视频链接!)工业炉是如此巨大,从这头走到那头需要几分钟时间!

2022-12-27 15:49:33 1673

原创 【区块链 | EVM】深入理解学习EVM - 深入理解EVM操作码,让你写出更好的智能合约

如果你已经熟悉 EVM,请随时跳到下个部分:什么是 EVM 操作码?任何一个区块链都是一个基于交易的状态机。区块链递增地执行交易,交易完成后就变成新状态。因此,区块链上的每笔交易都是一次状态转换。简单的区块链,如比特币,本身只支持简单的交易传输。相比之下,可以运行智能合约的链,如以太坊,实现了两种类型的账户,即外部账户和智能合约账户,所以支持复杂的逻辑。外部账户由用户通过私钥控制,不包含代码;而只能合约账户仅受其关联的代码控制。EVM 代码以字节码的形式存储在虚拟ROM中。

2022-12-27 15:39:38 1667

原创 【区块链 | 预言机】从零开始使用Chainlink预言机(3) - 如何使用Chainlink Automation实现智能合约执行的自动化

智能合约不能自己执行,这意味着它们需要一个外部拥有账户、预言机或合约来启动它们自己的功能。这给许多dApp带来了问题,比如这类dApp要求合约在固定时间间隔(如每24小时),或者满足预定条件(如以太坊达到特定价格),或者依据某种计算(如贷款被计算为抵押不足)执行。在过去,开发者会创建并维护他们自己的中心化脚本或者手动触发智能合约的执行以解决问题。然而,这实际上破坏了构建去中心化区块链应用程序的目的,并且如果中心化脚本或手动触发过程失败,就会出现停机的可能。在本教程中,你将学习如何使用Chainlink Au

2022-12-06 16:55:31 472

原创 【区块链 | 预言机】从零开始使用Chainlink预言机(2)- 智能合约中使用更安全的随机数-代码实战

Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。我们先简要介绍一下Chainlink VFR的工作流程。整个过程中有两次的交易提交确认的过程,用户合约需要支付LINK给VRF合约作为交易费用。下面我们就通过写一个猜数字的小游戏,来学习如何使用Chainlink VRF。首先,新建一个truffle项目,安装Chainlink开发包在目录下新建一个合约

2022-12-06 16:45:36 1578

原创 【区块链 | 预言机】从零开始使用Chainlink预言机(1) - 获取价格等数据(公共数据Data Feeds & 外部API)

目录概要一、直接从API获取价格(外部API获取数据)1 创建truffle项目2 安装Chainlink开发库3 创建用户合约4 将用户合约部署到Ropsten测试网络上5 向合约地址转入LINK6 编写测试脚本二、价格参考数据 Chainlink Data Feeds1 新建项目2 新建用户合约文件3 找到我们需要的参考数据合约地址4 配置参考合约地址5 使用参考合约获取价格数据6 完整示例7 编写测试脚本调用合约Chainlink目前提供产品有Chainlink 数据源是将您的智能合约连接到真实世界数

2022-12-06 16:22:41 443

原创 【区块链 | 智能合约】Ethereum源代码(14)- 以太坊Bloom过滤器实现原理及应用场景分析

目录一、Bloom过滤器的数据结构和reciept创建Bloom的过程二、Bloom过滤器的实际应用三、外部调用接口查找log的流程总结:type Bloom [BloomByteLength]byteBloomByteLength = 256Bloom 就是一个256个字节数组。一共2048位。我们看看怎么把庞大的收据日志数据放到bloom过滤器里面的。1,先看看bloom9(b []byte)算法函数。1.1, 首先将传入的数据,进行hash256的运算,得到一个32字节的hash1.2,

2022-12-06 11:01:01 350

原创 【区块链 | 智能合约】Ethereum源代码(13)- 以太坊交易加密签名广播及EVM解析分析

待更新

2022-12-05 17:44:54 633

原创 【区块链 | 智能合约】Ethereum源代码(12)- 以太坊通过EVM执行交易过程分析

目录一、创建EVM,通过EVM执行交易流程二、EVM 的虚拟机解析器通过运行合约指令,执行智能合约代码以太坊虚拟机在执行交易分为两个部分,第一部分是创建EVM,计算交易金额,设置交易对象,计算交易gas花销;第二部分是EVM 的虚拟机解析器通过合约指令,执行智能合约代码,具体来看看源码。上一节分析BlockChain调用processor.Process()(core/state_processor.go:59)遍历block的所有交易首先调用tx.Message()方法产生交易Message。这个方法通过

2022-12-05 17:15:52 720

原创 【区块链 | 智能合约】Ethereum源代码(11)- 以太坊核心BlockChain源码分析

前面几节都在分析以太坊的通信协议,怎么广播,怎么同步,怎么下载。这一节讲讲以太坊的核心模块BlockChain,也就是以太坊的区块链。一,BlockChain的初始化Ethereum服务初始化func init() 的时候会调用core.SetupGenesisBlock来加载创始区块。顾名思义,创始区块就是以太坊区块链中的第一个区块,number值为0。紧接着调用stack, backend := makeFullNode(ctx) utils.RegisterEthService(stack,

2022-12-05 11:00:26 1575

原创 【区块链 | 智能合约】Ethereum源代码(10)- 以太坊Downloader源码分析

上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。2,有两种获取方式,首先走的是skeleton方式,从查找到的共同祖先区块+192个区块位置开始,每隔192个区块,获取128个区块头。6,更新同步状态信息后,把pivot值对应的result 调用commitPivotBlock插入本地区块链中,并调用FastSyncCommitHead,记录这个pivot的hash值。

2022-11-22 11:24:46 1246

原创 【区块链 | 智能合约】Ethereum源代码(9)- 以太坊P2P协议接收广播的处理和Fetcher源码分析

然后每个hash blockdata 调用 h.blockFetcher.Notify(peer.ID(), unknownHashes[i], unknownNumbers[i], time.Now(), peer.RequestOneHeader, peer.RequestBodies) 方法,除了传入block的hash值和block的number值,还需要传入当前的时间戳,peer.go的两个函数指针。3,如果本节点已经有这个hash的block,则放弃这个hash。

2022-11-17 22:39:46 641

原创 【区块链 | 智能合约】Ethereum源代码(8)- Ethereum服务和以太坊P2P协议发送广播源码分析

在“”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。

2022-11-17 18:56:27 1885

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除