好复杂。
### Blossom Uploader 笔记
#### 概览
- **Blossom** 是一种新的协议,旨在通过 Nostr 的简洁性挑战 IPFS。
- 文件通过 SHA-256 哈希值被识别,并上传到多个服务器。如果一个服务器离线,客户端可能能够在其他服务器上找到文件。
#### 使用方法
- **BlossomUploader** 可用于一次性上传文件到多个 Blossom 服务器。
#### 示例代码(TypeScript)
```typescript
import { BlossomUploader } from '@nostrify/nostrify/uploaders';
const uploader = new BlossomUploader({
servers: ['https://blossom.primal.net/' /*, https://cdn.satellite.earth */],
signer: window.nostr,
});
const tags = await uploader.upload(file);
```
#### 选项
- **servers**: Blossom 服务器的 URL 数组。
- **signer**: Nostr 签名实例,用于签署上传请求。
- **fetch** (可选): 自定义 fetch 实现。
- **expiresIn** (可选): 每个上传请求应过期的毫秒数,默认为 60,000。
#### 结果
- 结果以 NIP-94 标签的数组形式返回 (`tags array`)。
- 第一个标签保证是 URL。
#### 标签示例
- **URL**: 文件的公共 URL。
- **x**: 文件的 SHA-256 十六进制编码字符串。
- **ox**: 上传服务器进行任何转换之前的原始文件的 SHA-256 十六进制编码字符串。
- **size**: 文件大小,单位为字节。
- **m**: 表示文件数据类型的字符串。必须使用小写的 MIME 类型格式。
#### 服务器和 MIME 类型
- 服务器示例: `https://blossom.primal.net/`
- MIME 类型示例: `image/png`
#### 补充说明
- Blossom 协议通过在多个服务器上存储文件的副本来提高文件的可用性和持久性。
- 使用 Nostr 签名可以增加上传过程的安全性和可验证性。
- 通过自定义 `fetch` 实现,可以适应不同的网络环境或特定的技术需求。
- `expiresIn` 选项允许设置请求的过期时间,以避免无限期的上传尝试。
以上是根据提供的网页内容整理的详尽笔记,涵盖了 Blossom Uploader 的主要功能、使用方法、配置选项以及结果返回格式。
Discussion
就是定义了5个上传下载查询删除,增删改查http接口,你的文件服务器实现这几个接口就能被nostr客户端使用了。
其实我有一个疑问,为啥不直接兼容S3的对象存储协议?这个协议几乎所有的对象存储厂商都支持,可以无缝接入。
但是看blossom的介绍,应该是为了更好的服务于nostr协议,实现完整的去中心化架构。S3还是中心化的存储架构。
類似torrent、給nostr貢獻存儲嗎?
Torrent和Nostr结合,才能实现真正的去中心化。 现在只是重复中心化而已。其实挺浪费资源的。
用磁盘阵列RAID来类比,relay现在玩得都在RAID0的水平上。
利用Nostr做应用层,Torrent做传输层,就可以把重复多中心化的Nostr,做到类似raid1,raid5的样子。
我一直想干这件事情。可是目前主要精力还是花在学习中医和赚钱上了。
对了, nostr:nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqypvqlyuaw483m85gemkxjkt6fexx34f3e9drr2l4vc4equt7kz8wz3x0758 的relay还在没? 哪位兄告之一下啊?
握草您老哥终于回来看我们了,他的不在了,但是我们几个老人人手一个代理中继了。
哈哈,流弊大了
哈哈
这里发发牢骚,吐槽一下生活和社会,聊一些朋友圈不能聊的话题很合适,我本来也想退出了,但后来觉得有些话没地方发泄憋的难受,就继续混这里了哈哈哈😇
自从推特上出现了李老师建议粉丝取关事件后,这里就是最安全的港湾了。
这是个什么事件? 偶万全不了解。。。
李老师是??
#大陆直连中继推荐
看我这个系列。
我们都是用这个bostr项目搭建的代理转发中继,可以代理N个upstream真实中继,代理转发中继本身不存储数据。
hl还有dashu这个新写的基于cloudflare workers服务的个人中继项目,我也弄了一个。
给你添加了我这个基于bostr项目搭建的代理转发中继的读写权限,你试试看能不能用:wss://bostr.online/
这里查看所有被代理的中继列表:https://bostr.online/
本来是默认全公开读写的,但是我的cloudcone VPS规格太小了,扛不住几十个客户端用户,内存每天oom,就只加了7,8个经常交流的诺友。😇
有一阵儿,linode天天发报警邮件,宽带报警。。。。
把中继转发一关, 恢复如初。
nostr的模型,相当消耗资源的。 连多少个relay,数据就重复存放多少份,带宽消耗多少倍。
说好的绿色节能,环保地球呢?
relay切片多好,切片协议借鉴BT啊。
这个bostr中继项目能部分解决带宽问题,事件进来的多出去的少,能在中继上去重。
感觉作用不是很大,跑路了之后你的文件该丢失还是会丢失,也不太好做文件迁移。
还是 NIP-95 把文件传到中继去比较靠谱,虽然现在很多中继不支持,而且有比较大的性能问题。