- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个与 IPFS 兼容的 mutihash,但它不匹配。我在这里问是因为我还没有找到一个从散列到最终结果的例子。
echo -n multihash > multihash.txt
ipfs add multihash.txt
added QmZLXzjiZU39eN8QirMZ2CGXjMLiuEkQriRu7a7FeSB4fg multihash.txt
sha256sum multihash.txt
9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47 multihash.txt
node
> var bs58=require('bs58')
bs58.encode(new Buffer('9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47','hex'))
'BYptxaTgpcBrqZx9tghNCWFfUuYBcGfLydEvDjXqBV7k'
> var mh=require('multihashes')
mh.toB58String(mh.encode(new Buffer('9cbc07c3f991725836a3aa2a581ca2029198aa420b9d99bc0e131d9f3e2cbe47','hex'), 'sha2-256'))
'QmYtUc4iTCbbfVSDNKvtQqrfyezPPnFvE33wFmutw9PBBk'
QmZLXzjiZU39eN8QirMZ2CGXjMLiuEkQriRu7a7FeSB4fg
使用 multihashes 包。
QmYtUc...9PBBk
如此处的示例所示:
https://github.com/multiformats/multihash#example
最佳答案
IPFS 使用 multihash格式如下:
base58(<varint hash function code><varint digest size in bytes><hash function output>)
sha2-256 size sha2-256("hello world")
0x12 0x20 0xb94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
连接这三个项目将产生
1220b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
然后将其编码为
base58
QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4
const crypto = require('crypto')
const bs58 = require('bs58')
const data = 'hello world'
const hashFunction = Buffer.from('12', 'hex') // 0x20
const digest = crypto.createHash('sha256').update(data).digest()
console.log(digest.toString('hex')) // b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
const digestSize = Buffer.from(digest.byteLength.toString(16), 'hex')
console.log(digestSize.toString('hex')) // 20
const combined = Buffer.concat([hashFunction, digestSize, digest])
console.log(combined.toString('hex')) // 1220b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
const multihash = bs58.encode(combined)
console.log(multihash.toString()) // QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4
$ go get github.com/multiformats/go-multihash/multihash
$ echo -n "hello world" | multihash -a sha2-256
QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4
add
要将文件上传到 IPFS,数据具有元数据包装器,当您对其进行多重散列时,它会给您不同的结果。
$ echo -n "hello world" | ipfs add -Q
Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD
ipfs add
完全相同的多重哈希的示例。 :
const Unixfs = require('ipfs-unixfs')
const {DAGNode} = require('ipld-dag-pb')
const data = Buffer.from('hello world', 'ascii')
const unixFs = new Unixfs('file', data)
DAGNode.create(unixFs.marshal(), (err, dagNode) => {
if (err) return console.error(err)
console.log(dagNode.toJSON().multihash) // Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD
})
关于ipfs - 如何创建与 IPFS 兼容的多哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40998621/
这是我的测试 tokenURI.json 文件,其中包含我传递给 token 合约的 imageURI。setTokenURI(): { "attributes": [ { "t
给定一个相当大的文件夹,该文件夹已被推送到网络,并在本地删除。如何在不重新下载整个文件夹的情况下将文件添加到该文件夹? 最佳答案 您只能在使用ipfs get重新下载后使用ipns来执行此操作,如
IPFS cli/http api 有一个 ipfs pin ls列出固定哈希的命令。但是,这只适用于查询本地节点。有没有办法对远程节点运行相同的命令,例如,类似 $ ipfs pin ls 其作用
我一直在尝试实现和理解 IPFS 的工作,但有一些不清楚的地方。 我尝试过的事情: 在我的系统上实现 IPFS 并在其上存储文件。即使我从系统中删除文件并关闭 ipfs 守护进程,我仍然可以通过 IP
我想使用 (js-ipfs-http-client) 模块将目录上传到浏览器上的 ipfs。 我发现了这个老问题。 https://github.com/ipfs/js-ipfs/issues/277
我有一个调用 _getFile 函数的输入字段 获取文件 _getFile(event) { this.loading = true; const file = event.target.f
根据https://docs.ipfs.io/guides/concepts/pinning/ , 运行命令 ipfs add hello.txt显然“固定”了文件“hello.txt”,但是为什么我
假设我像这样向 IPFS 添加数据: $ echo Hello World | ipfs add 这会给我 QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u
我们正在 Electron 上构建一个桌面应用程序,以在 IPFS 上共享媒体。我们想要激励人们,他们通过 IPFS 添加或固定,将数据提供给其他用户,实际上是在“播种”数据。我们希望以编程方式和定期
我正在尝试创建一个与 IPFS 兼容的 mutihash,但它不匹配。我在这里问是因为我还没有找到一个从散列到最终结果的例子。 echo -n multihash > multihash.txt ip
为了测试,我希望能够在一台机器上运行多个 IPFS 节点。 这是场景: 我正在 IPFS 核心库之上构建小型服务,遵循 Making your own IPFS service指导。当我尝试将客户端和
我通过 ipfs add 添加了一堆文件.如何一次取消固定和删除所有这些? 最佳答案 取消固定所有添加的内容: ipfs pin ls --type recursive | cut -d' ' -f1
我有一个关于 IPFS 内容的新手问题。我可以请求带有哈希地址的内容。是不是哈希地址返回的内容总是加密的?或者返回的内容可以是加密的,也可以是不加密的,如果加密,则需要私钥才能解码和查看内容。 最佳答
如何完全卸载 IPFS 并从头开始重新启动所有内容并获得新的对等 ID?我试图删除 go-ipfs 文件夹,但仍然出现错误:ipfs 配置文件已经存在!当我执行 ipfs init 时。 最佳答案 数
IPFS中有两个概念,其中的联系我不是很清楚:IPFS pin和IPFS MFS。 据我了解,ipfs pin允许您将内容保留在您的节点上,保护它不被垃圾收集器自动删除。在这种情况下,如果我使用 ip
我们希望允许用户根据他们维护的 IPFS key 名称从 IPNS 指针恢复他们的数据库。但是,由于 IPNS name/resolve 和 name/publish 只有两个端点,因此似乎无法在不重
当在 node.js 应用程序中使用以下代码以编程方式启动 js-ipfs 节点时,它会启动 swarm,允许添加文件并查询它们。 // code from the docs: https://git
初始化 ipfs 节点时,ipfs 似乎也会生成 RSA key 对: $ jsipfs init initializing ipfs node at /Users/pascalprecht/.j
初始化 ipfs 节点时,ipfs 似乎也会生成 RSA key 对: $ jsipfs init initializing ipfs node at /Users/pascalprecht/.j
我正在使用 js-ipfs 服务器端在 IPFS 上“上传”文件,但它的效率似乎不如命令行 ipfs daemon 和 ipfs add someFile. 服务器端,我实例化了一个 Ipfs 对象,
我是一名优秀的程序员,十分优秀!