7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)
7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)
- 7-1 ipfs介绍
- 7-2 IPFS-desktop使用
- 7-3 react+ipfs-api浏览器和ipfs交互
7-1 ipfs介绍
IPFS区块链上的文件系统
https://ipfs.io/
这个网站本身是需要科学上网的
Ipfs是点对点的分布式系统
无限大的全球分布式的百度云盘
在这里储存我们的图片和视频
Ipfs上传文件后,会保留此文件的哈希值,整个文件会被打散
全球分布在各个地方
不会丢失
可以看其官网

Ipfs整个系统在github开源的
Ipfs的理想是取代http
一行访问未来是ipfs://
有了ipfs网络后,会将文件存储到本地挂载的一个节点

在github开源了
Js-ipfs是ipfs的nodejs实现

直接安装到全局(ipfs 的nodejs实现)
npm install ipfs -g

安装完后
启动jsipfs

Ipfs项目主目录中的js-ipfs
新建一个learn-ipfs目录,再建个html

内容如上
Jsipfs init
Jsipfs add index.html
完成后在
使用ipfs将html加入

added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH index.html
中间的值是哈希值
全球有N个ipfs的节点,每个节点都有ipfs的小碎片,本地获取的哈希值,来获取内容
Jsipfs add
如何查看(后面跟着哈希即可)
jsipfs cat QmPAaKh7zNeYyGbVfvP9QqbRXh2a5Jz6vz57RSLuVQ3zEg

就从ipfs网络上将其读取
我们也可以尝试着在公网上找我们的文件
格式如下(只有记住哈希值文件就永远不会丢)
https://ipfs.io/ipfs/QmPAaKh7zNeYyGbVfvP9QqbRXh2a5Jz6vz57RSLuVQ3zEg
现在是访问不到的,因为添加完后没有进行同步
需要执行同步到公网的操作
jsipfs daemon
如下本地网络同步完成

https://blog.csdn.net/weixin_30852451/article/details/96953573
关于IPFS官网ipfs.io无法访问的解决办法
https://ipfsdrop.com/practice/cloudflare-goes-interplanetary-introducing-cloudflares-ipfs-gateway/
IPFS快速入门 | 通过Cloudflare直接从浏览器访问IPFS文件
如何访问ipfs的官网
https://blog.csdn.net/weixin_30852451/article/details/96953573
209.94.90.1 ipfs.io
有时ip不是上需要查询https://www.ipaddress.com/
更改hosts文件
注意不关机重启的话要刷新DNS在cmd下
ipconfig /flushdns
上方的步骤完全可行的,访问能成功
下方的示例在7-5成功执行
https://ipfs.io/ipfs/QmYkMuFZj7tyHFJRVe7ucqMNYGEiSXrjKdudm2mu7UD7er

7-2 IPFS-desktop使用
将之前的上传的一个图片打开
https://ipfs.io/ipfs/QmSM1YwAo77Gt64ca16pBxQBXZ5V7Q4cfxQEvBBJXDv8hC

视频中的浏览器可以访问,可能是需要翻墙才能看到
文件存到哪里了,谁在存,有什么激励机制
发展过程后
现在是存储免费的,后续可能类似比特币的奖励机制,或者贡献部分硬盘带宽来进行
这是命令行的操作
若觉得操作繁琐
可以在github使用ipfs-desktop
桌面
此ipfs-desktop和之前的命令行是一一对应的,此处是以可视化的形式展现的
解决github下载缓慢的问题如下
https://www.jianshu.com/p/0493dcc15d6f
140.82.113.3 github.com
199.232.69.194 github.global.ssl.fastly.net
安装ipfsdesk之后如下

既然已经进入了ipfs就需要有存储和共享文件的责任

我们可以直接上传文件使用界面化的ipfs
节点与自己通信的节点

任何文件都是存在全球的CDN之上,可以加速访问节点内容
在文件可以上传本地文件
Js调用配置文件

这里是手动拖上去上传文件的
下面如何在js中手动拖拽上传文件
7-3 react+ipfs-api浏览器和ipfs交互
Ipfs在命令行的上传同步文件等
可以发网站,文件夹静态文件管理
此节课堂主要任务就是浏览器和ipfs的交互
Js-ipfs-api(github上,官方提供)进行上传内容,使用react搭建简单网络

能上传一个小文件到ipfs之上,拿到其哈希值,并通过哈希获取文件内容
Npm install -g create-react-app
之前已经安装过了就不用了
直接执行创建一个react项目
create-react-app ipfs-demo
创建完成

Cd ipfs-demo
Npm start 启动此react项目
主要在其App.js更改代码

http://localhost:3000/
在浏览器可以看到
将ipfs-api安装在创建的react项目下,而不是全局变量
npm install ipfs-api --save


在react就可以直接使用此内容了
在


上方有错误App.css应该导入
代码不够全,如下
import React,{Component} from 'react';
import './App.css';class App extends Component
{constructor(props){super(propos)//状态,上传内容,上传后的哈希this.state = {content:''hash:''}//绑定按钮(否则会this穿透)this.handleClick = this.handleClick.bind(this)//this.handleReadClick = this.handleReadClick.bind(this) 若不想绑定可以使用下方的箭头函数,两种方式}handleClick(){}handleReadClick(){}render(){return(<div className='App'><input type="text"/><button onClick={this.handleClick}>提交数据到ipfs</button><hr/><p>{this.state.hash}</p><button onClick={()=>this.handleReadClick()}>从ipfs读取数据</button><p>{this.state.content}</p></div>);}
}
export default App
相关文章:
7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)
7-1、2、3 IPFS介绍使用及浏览器交互(react区块链实战) 7-1 ipfs介绍7-2 IPFS-desktop使用7-3 reactipfs-api浏览器和ipfs交互 7-1 ipfs介绍 IPFS区块链上的文件系统 https://ipfs.io/ 这个网站本身是需要科学上网的 Ipfs是点对点的分布式系统 无限…...
CentOS 7 中出现 cannot open Packages database in /var/lib/rpm 错误
转载自:https://www.jianshu.com/p/423306f43e72 # 进入 rpmdb 所在目录 [roothostbase ~]# cd /var/lib/rpm [roothostbase rpm]# ls Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5 Conflictname __db.002 Dirnames Ins…...
【java深入学习第6章】深入解析Spring事件监听机制
在Spring框架中,事件监听机制是一个强大且灵活的功能,允许我们在应用程序中发布和监听事件。这种机制可以帮助我们实现松耦合的设计,使得不同模块之间的通信更加灵活和可维护。本文将详细介绍Spring的事件监听机制,并通过代码示例…...
Flask与Celery实现Python调度服务
文章目录 Flask与Celery实现Python调度服务一、前言1.组件2.场景说明3.环境 二、安装依赖1.安装Anaconda3.安装redis2.安装依赖包 三、具体实现1.目录结构2.业务流程3.配置文件4.Celery程序5.Flask程序6.测试脚本7.程序启动1)Windows开发调试2)Linux服务…...
Eureka应用场景和优势
Eureka是一款由Netflix开源的服务注册与发现框架,在微服务架构中扮演着至关重要的角色。以下是Eureka的应用场景和优势: Eureka的应用场景 Eureka主要应用于微服务架构中,特别是在大型、复杂的分布式系统中,用于管理和发现服务。…...
prompt第三讲-PromptTemplate
文章目录 前提回顾PromptTemplateprompt 模板定义以f-string渲染格式以mustache渲染格式以jinja2渲染格式直接实例化PromptTemplatePromptTemplate核心变量 prompt value生成invokeformat_prompt(不建议使用)format(不建议使用) batchstreamainvoke PromptTemplate核心方法part…...
卷积神经网络图像识别车辆类型
卷积神经网络图像识别车辆类型 1、图像 自行车: 汽车: 摩托车: 2、数据集目录 3、流程 1、获取数据,把图像转成矩阵,并随机划分训练集、测试集 2、把标签转为数值,将标签向量转换为二值矩阵 3、图像数据归一化,0-1之间的值 4、构造卷积神经网络 5、设置图像输入…...
【接口设计】用 Swagger 实现接口文档
用 Swagger 实现接口文档 1.配置 Swagger1.1 添加 Swagger 依赖1.2 创建 Swagger 配置类 2.编写接口文档 在项目开发中,一般都是由前后端工程师共同定义接口,编写接口文档,之后大家根据这个接口文档进行开发、维护。为了便于编写和维护稳定&a…...
TensorFlow系列:第四讲:MobileNetV2实战
一. 加载数据集 编写工具类,实现数据集的加载 import keras""" 加载数据集工具类 """class DatasetLoader:def __init__(self, path_url, image_size(224, 224), batch_size32, class_modecategorical):self.path_url path_urlself…...
Redis+Caffeine 实现两级缓存实战
RedisCaffeine 实现两级缓存 背景 事情的开始是这样的,前段时间接了个需求,给公司的商城官网提供一个查询预计送达时间的接口。接口很简单,根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口ÿ…...
SpringBoot:SpringBoot中如何实现对Http接口进行监控
一、前言 Spring Boot Actuator是Spring Boot提供的一个模块,用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点(endpoints),用于获取应用程序的健康状态、性能指标、配置信息等,并支持通过 HTTP …...
STM32-I2C硬件外设
本博文建议与我上一篇I2C 通信协议共同理解 合成一套关于I2C软硬件体系 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担 特点: 多主机功能&#x…...
暑假第一次作业
第一步:给R1,R2,R3,R4配IP [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R1-Serial4/0/0]ip address 15.0.0.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R2-Serial4/0/0]ip address 25.0.0.1 24 [R3-GigabitEthernet0/0/0]ip address 192.…...
【算法专题】快速排序
1. 颜色分类 75. 颜色分类 - 力扣(LeetCode) 依据题意,我们需要把只包含0、1、2的数组划分为三个部分,事实上,在我们前面学习过的【算法专题】双指针算法-CSDN博客中,有一道题叫做移动零,题目要…...
debian 12 PXE Server 批量部署系统
pxe server 前言 PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,…...
【Pytorch】RNN for Image Classification
文章目录 1 RNN 的定义2 RNN 输入 input, h_03 RNN 输出 output, h_n4 多层5 小试牛刀 学习参考来自 pytorch中nn.RNN()总结RNN for Image Classification(RNN图片分类–MNIST数据集)pytorch使用-nn.RNNBuilding RNNs is Fun with PyTorch and Google Colab 1 RNN 的定义 nn.…...
基于Java的飞机大战游戏的设计与实现论文
点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication ,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机…...
初识影刀:EXCEL根据部门筛选低值易耗品
第一次知道这个办公自动化的软件还是在招聘网站上,了解之后发现对于办公中重复性的工作还是挺有帮助的,特别是那些操作非EXCEL的重复性工作,当然用在EXCEL上更加方便,有些操作比写VBA便捷。 下面就是一个了解基本操作后ÿ…...
nginx的四层负载均衡实战
目录 1 环境准备 1.1 mysql 部署 1.2 nginx 部署 1.3 关闭防火墙和selinux 2 nginx配置 2.1 修改nginx主配置文件 2.2 创建stream配置文件 2.3 重启nginx 3 测试四层代理是否轮循成功 3.1 远程链接通过代理服务器访问 3.2 动图演示 4 四层反向代理算法介绍 4.1 轮询࿰…...
中职网络安全B模块Cenots6.8数据库
任务环境说明: ✓ 服务器场景:CentOS6.8(开放链接) ✓ 用户名:root;密码:123456 进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root&#x…...
收藏!前端打工人破局指南:转AI Agent,告别重复劳动,薪资翻倍
作为前端打工人,那种深陷内耗的痛,真的只有自己懂👇 每天围着页面布局、接口联调死磕,需求堆成山,兼容问题调不停,看似忙碌的日子,全是机械的重复劳动,没有一点成长空间。 干得越久越…...
ORA-12518:Oracle 监听程序无法分发客户端连接原因及解决方法
本文主要讲解ORA-12518:Oracle监听程序无法分发客户端连接的原因分析及解决方法。问题描述数据中台的同步任务有时会报错如下:ORA-12518, TNS:listener could not hand off client connection。意即Oracle监听程序无法分发客户端连接,原因分析只是有时候…...
如何通过GDScript游戏开发入门成为独立游戏开发者
如何通过GDScript游戏开发入门成为独立游戏开发者 【免费下载链接】learn-gdscript Learn Godots GDScript programming language from zero, right in your browser, for free. 项目地址: https://gitcode.com/gh_mirrors/le/learn-gdscript 对于许多游戏爱好者来说&am…...
Vue-Weixin 朋友圈功能实现全解析:图片上传与点赞评论交互详解
Vue-Weixin 朋友圈功能实现全解析:图片上传与点赞评论交互详解 【免费下载链接】vue-weixin Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天 项目地址: https://gitcode.com/gh_mirrors/vu/vue-weixin Vue-Weixin 是一个基于 Vue2 全家…...
返回多个值:让函数输出更丰富又不复杂
一般来说,Python允许函数返回多个值,实质是返回一个元组(tuple)。调用方可直接通过拆包获得各值,这在数据处理与建模中非常常见。实战案例:假设你要实现一个数据分析函数,既返回最大值ÿ…...
【Hot 100 刷题计划】 LeetCode 128. 最长连续序列 | C++ 哈希表 O(N) 题解
LeetCode 128. 最长连续序列 | C Set 与哈希表 O(N) 双解法题解 📌 题目描述 题目级别:中等 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度…...
强强联合:在快马平台用AI模型驱动你的下一代智能agent应用
最近在尝试用AI辅助开发时,发现了一个特别有意思的方向——智能agent框架。这类框架就像是AI应用的"骨架",而平台内置的AI模型则为其注入了"灵魂"。今天想分享下在InsCode(快马)平台上实现的一个创作辅助agent,整个过程让…...
Local Moondream2快速部署:VS Code Dev Container一键开发环境
Local Moondream2快速部署:VS Code Dev Container一键开发环境 1. 项目简介 Local Moondream2是一个基于Moondream2构建的超轻量级视觉对话Web界面。它能够让你的电脑拥有"眼睛",可以对上传的图片进行详细描述、反推绘画提示词,或…...
2026年济南本凡科技小程序开发前10大推荐,助您拥抱智能时代新风尚
在当今快速发展的智能时代,企业在市场竞争中需要不断创新以满足客户的需求。济南本凡科技小程序开发服务,凭借其多元化的功能和高效的技术架构,为各类企业提供了灵活的解决方案。本文将深入探讨十家领先的小程序开发公司,包括聚翔…...
NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的5个关键技术维度
NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的5个关键技术维度 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector作为一款功能强大的显卡配置工具࿰…...
