国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

IPFS數(shù)據(jù)模型-IPLD

Salamander / 882人閱讀

摘要:的內(nèi)容尋址允許加密完整性檢查解析鏈接的值可以通過(guò)哈希來(lái)測(cè)試。例子使用以下數(shù)據(jù)集路徑的一個(gè)例子將遍歷第一個(gè)對(duì)象并獲取字符串。數(shù)據(jù)模型也非常簡(jiǎn)單易用。由于基于數(shù)據(jù)模型,因此它完全可以通過(guò)與和關(guān)聯(lián)數(shù)據(jù)標(biāo)準(zhǔn)兼容。

ipld.io

Github:ipld

原文:IPLD specs

有許多系統(tǒng)使用merkle-treehash-chain受啟發(fā)的數(shù)據(jù)結(jié)構(gòu)(例如git,bittorrent,ipfs,tahoe-lafs,sfsro)。IPLD(星際鏈接數(shù)據(jù))定義:

merkle-links:merkle-graph的核心單元

merkle-dag:任何邊為merkle-links的圖。dag代表“有向無(wú)環(huán)圖”

merkle-paths:使用命名的merkl-links來(lái)遍歷merkl-dags的unix風(fēng)格的路徑。

IPLD格式:可以表示IPLD對(duì)象的一組格式,例如JSON,CBOR,CSON,YAML,Protobuf,XML,RDF等。

IPLD規(guī)范格式:一種序列化格式的確定性描述,確保相同的邏輯對(duì)象始終被序列化到相同的位序列。這對(duì)于鏈接和所有加密應(yīng)用程序都是至關(guān)重要的。

介紹 什么是merkle-link?

merkl-link是兩個(gè)對(duì)象之間的鏈接,它們是由目標(biāo)對(duì)象的加密散列處理的,并嵌入到源對(duì)象中。merkl-links的內(nèi)容尋址允許:

加密完整性檢查:解析鏈接的值可以通過(guò)哈希來(lái)測(cè)試。反過(guò)來(lái),這可以實(shí)現(xiàn)廣泛,安全和可靠的數(shù)據(jù)交換(例如git或bittorrent),因?yàn)槠渌瞬荒芙o你任何不會(huì)散列到鏈接值的數(shù)據(jù)。

不可變的數(shù)據(jù)結(jié)構(gòu):帶有merkle鏈接的數(shù)據(jù)結(jié)構(gòu)不能改變,這對(duì)于分布式系統(tǒng)來(lái)說(shuō)是一個(gè)不錯(cuò)的屬性。這對(duì)于版本控制,表示分布式可變狀態(tài)(例如CRDT)和長(zhǎng)期存檔很有用。

一個(gè)merkle-link在IPLD對(duì)象模型中由包含一個(gè)key/mapped到“鏈接值”的映射表示。例如:

一個(gè)以json表示的“鏈接對(duì)象”的鏈接

{ "/" : "/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k" }
// "/" is the link key
// "/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k" is the link value

對(duì)象為foo/baz的鏈接

{
  "foo": {
    "bar": "/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k", // not a link
    "baz": {"/": "/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k"} // link
  }
}

對(duì)象在files/cat.jpg/link的實(shí)際鏈接以及files/cat.jpg中的偽“鏈接對(duì)象”。

{
   “ files ”: {
      “ cat.jpg ”: { //將鏈接屬性封裝在另一個(gè)對(duì)象中
      “ link ”: { “ / ”: “ / ipfs / QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k ” },//鏈接
      “ mode ”: 0755,
      “owner”: “ jbenet ”
    }
  }
}

當(dāng)取消鏈接時(shí),映射本身將被它指向的對(duì)象替換,除非鏈接路徑無(wú)效。

該鏈接可以是multihash,在這種情況下,假設(shè)它是/ipfs層次結(jié)構(gòu)中的鏈接,或者直接指向?qū)ο蟮慕^對(duì)路徑。目前,只允許使用/ipfs層次結(jié)構(gòu)。

如果應(yīng)用程序想要將具有單個(gè)/key的對(duì)象用于其他目的,則應(yīng)用程序本身應(yīng)負(fù)責(zé)轉(zhuǎn)義/IPLD對(duì)象中的/key,這樣應(yīng)用程序的key就不會(huì)與IPLD的特殊/key發(fā)生沖突。

什么是merkle-graph或merkle-dag?

帶有merkl-links的對(duì)象形成一個(gè)Graph(merkle-graph),如果加密散列函數(shù)的屬性保持不變,則這些對(duì)象必然都是定向的,并且可以認(rèn)為它是非循環(huán)的,即merkle-dag。因此,所有使用merkle-linking(merkle-graph)的圖必定也是有向無(wú)環(huán)圖(DAG,因此為merkle-dag)。

什么是merkle路徑?

merkl-path是一種unix風(fēng)格的路徑(例如,/a/b/c/d),它最初通過(guò)merkl-link進(jìn)行引用,并允許訪問(wèn)被引用節(jié)點(diǎn)和其他節(jié)點(diǎn)的元素。

我們鼓勵(lì)通用文件系統(tǒng)在IPLD上設(shè)計(jì)一個(gè)對(duì)象模型,該模型將專門(mén)用于文件操作,并有特定的路徑算法來(lái)查詢?cè)撃P汀?/p> merkle-paths如何工作?

merkl-path是一種unix風(fēng)格的路徑,最初通過(guò)merkl-link進(jìn)行引用,然后在中間對(duì)象中命名merkl-links。名稱后面的意思是查找對(duì)象,查找名稱并解析相關(guān)的merkl-link。

例如,假設(shè)我們有這個(gè)merkle-path:

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/c/d

路徑表述:

ipfs 是一個(gè)協(xié)議命名空間(允許計(jì)算機(jī)識(shí)別要做什么)

QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k 是一個(gè)加密哈希。

a/b/c/d是一個(gè)路徑遍歷,就像在unix中一樣。

路徑遍歷,用符號(hào)表示/,發(fā)生在兩種鏈接上:

對(duì)象內(nèi)遍歷遍歷同一對(duì)象內(nèi)的數(shù)據(jù)。

跨對(duì)象遍歷從一個(gè)對(duì)象遍歷到另一個(gè)對(duì)象,通過(guò)merkle-link解析。

例子

使用以下數(shù)據(jù)集:

> ipfs object cat --fmt=yaml QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k
---
a:
  b:
    link:
      /: QmV76pUdAAukxEHt9Wp2xwyTpiCmzJCvjnMxyQBreaUeKT
    c: "d"
    foo:
      /: QmQmkZPNPoRkPd7wj2xUJe5v5DsY6MX33MFaGhZKB2pRSE

> ipfs object cat --fmt=yaml QmV76pUdAAukxEHt9Wp2xwyTpiCmzJCvjnMxyQBreaUeKT
---
c: "e"
d:
  e: "f"
foo:
  name: "second foo"

> ipfs object cat --fmt=yaml QmQmkZPNPoRkPd7wj2xUJe5v5DsY6MX33MFaGhZKB2pRSE
---
name: "third foo"

路徑的一個(gè)例子:

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/c將遍歷第一個(gè)對(duì)象并獲取字符串d

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/c將遍歷兩個(gè)對(duì)象并獲取字符串e

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/d/e遍歷兩個(gè)對(duì)象并獲取字符串f

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/link/foo/name遍歷第一個(gè)和第二個(gè)對(duì)象并獲取字符串second foo

/ipfs/QmUmg7BZC1YP1ca66rRtWKxpXp77WgVHrnv263JtDuvs2k/a/b/foo/name遍歷第一個(gè)和最后一個(gè)對(duì)象并獲取字符串third foo

什么是IPLD數(shù)據(jù)模型?

IPLD數(shù)據(jù)模型為所有merkle-dag定義了一個(gè)簡(jiǎn)單的基于JSON的結(jié)構(gòu),并標(biāo)識(shí)了一組格式來(lái)將結(jié)構(gòu)編碼進(jìn)去。

限制和期望

一些限制:

IPLD路徑必須是明確的。給定的路徑字符串必須總是確定性地遍歷到同一個(gè)對(duì)象。(例如避免重復(fù)鏈接名稱)

IPLD路徑必須是通用的,避免對(duì)非英語(yǔ)國(guó)家不友好(例如使用UTF-8,而不是ASCII)。

IPLD路徑必須在UNIX和Web上干凈地分層(使用/,對(duì)ASCII系統(tǒng)具有確定性的變換)。

考慮到JSON的廣泛成功,大量的系統(tǒng)提供了JSON接口。IPLD必須能夠?qū)SON進(jìn)行簡(jiǎn)單的導(dǎo)入和導(dǎo)出。

JSON數(shù)據(jù)模型也非常簡(jiǎn)單易用。IPLD必須一樣易于使用。

定義新數(shù)據(jù)結(jié)構(gòu)必須非常簡(jiǎn)單。要在IPLD上嘗試新的定義,不應(yīng)該很麻煩,也不需要太多的知識(shí)。

由于IPLD基于JSON數(shù)據(jù)模型,因此它完全可以通過(guò)JSON-LD與RDF和關(guān)聯(lián)數(shù)據(jù)標(biāo)準(zhǔn)兼容。

IPLD序列化格式(在磁盤(pán)上和在線上)必須快速且節(jié)省空間。(不應(yīng)該使用JSON作為存儲(chǔ)格式,而應(yīng)使用CBOR或類似的格式)

IPLD密碼哈希必須是可升級(jí)的(使用multihash)

一些不錯(cuò)的點(diǎn):

IPLD不應(yīng)該犯下錯(cuò)誤,例如JSON中缺少整數(shù)。

IPLD應(yīng)該是可升級(jí)的,例如,如果出現(xiàn)更好的磁盤(pán)格式,系統(tǒng)應(yīng)該能夠遷移到它之上并且最小化這樣做的成本。

IPLD對(duì)象應(yīng)該能夠解析路徑的屬性,而不僅僅是merkle links。

IPLD Canonical Format應(yīng)該易于編寫(xiě)解析器。

IPLD Canonical Format應(yīng)該能在不解析完整對(duì)象的情況下進(jìn)行查找。(CBOR和Protobuf允許)。

格式定義

(注意:這里我們將使用JSON和YML來(lái)顯示格式是什么樣的。我們顯式地使用這兩種方法來(lái)顯示不同格式的對(duì)象的等價(jià)性。)

IPLD數(shù)據(jù)模型“是JSON”,它(a)也是基于樹(shù)的文檔,具有一些基本類型,(b)1:1映射到JSON, (c)用戶可以通過(guò)JSON本身使用它。它“不是JSON”(a)在某些錯(cuò)誤上有所改進(jìn),(b)具有高效的序列化表示,(c)實(shí)際上并沒(méi)有指定單一的on-wire格式,因?yàn)楸娝苤@個(gè)世界正在改進(jìn)。

基本的節(jié)點(diǎn)

以下是JSON中的示例IPLD對(duì)象:

{
   “ name ”:“ Vannevar Bush ” 
}

假設(shè)它散列的multihash值QmAAA...AAA。注意,它根本沒(méi)有鏈接,只是一個(gè)字符串名稱值。但是我們?nèi)匀荒軌颉敖馕觥彼旅娴膋ey name:

> ipld cat --json QmAAA...AAA
{
  "name": "Vannevar Bush"
}

> ipld cat --json QmAAA...AAA/name
"Vannevar Bush"

當(dāng)然,我們可以用其他格式來(lái)查看它

> ipld cat --yml QmAAA...AAA
---
name: Vannevar Bush

> ipld cat --xml QmAAA...AAA
 

  Vannevar Bush
鏈接節(jié)點(diǎn)之間

節(jié)點(diǎn)之間的Merkle-Linking是IPLD存在的原因。IPLD中的鏈接只是一種特殊格式的嵌入式節(jié)點(diǎn):

{
  "title": "As We May Think",
  "author": {
    "/": "QmAAA...AAA" // links to the node above.
  }
}

假設(shè)這個(gè)散列值為multihash值QmBBB...BBB。該節(jié)點(diǎn)通過(guò)子路徑author鏈接到QmAAA...AAA,上面這一節(jié)的節(jié)點(diǎn)。所以我們現(xiàn)在可以做到:

> ipld cat --json QmBBB...BBB
{
  "title": "As We May Think",
  "author": {
    "/": "QmAAA...AAA" // links to the node above.
  }
}

> ipld cat --json QmBBB...BBB/author
{
  "name": "Vannevar Bush"
}

> ipld cat --yml QmBBB...BBB/author
---
name: "Vannevar Bush"

> ipld cat --json QmBBB...BBB/author/name
"Vannevar Bush"
鏈接屬性約定

IPLD允許用戶構(gòu)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以及與鏈接相關(guān)的其他屬性。這對(duì)編碼其他信息以及鏈接(例如關(guān)系類型或鏈接中所需的輔助數(shù)據(jù))很有用。這與下面討論的“鏈接對(duì)象約定”不同,它們本身非常有用。但有時(shí)候,你只是想在鏈接上添加一些數(shù)據(jù)而不必創(chuàng)建另一個(gè)對(duì)象。IPLD不會(huì)妨礙你。您可以簡(jiǎn)單地通過(guò)將實(shí)際的IPLD鏈接嵌套在另一個(gè)對(duì)象中,并使用其他屬性來(lái)完成。

重要提示:鏈接屬??性不允許直接在鏈接對(duì)象中使用,因?yàn)榇嬖诿黠@的歧義。閱讀規(guī)格歷史,了解有關(guān)難點(diǎn)的討論。

例如,假設(shè)您有一個(gè)文件系統(tǒng),并希望在對(duì)象之間的鏈接中分配類似于權(quán)限或所有者的元數(shù)據(jù)。假設(shè)你有一個(gè)哈希值為QmCCC...CCC的目錄對(duì)象像這樣:

{
  "foo": { // link wrapper with more properties
    "link": {"/": "QmCCC...111"} // the link
    "mode": "0755",
    "owner": "jbenet"
  },
  "cat.jpg": {
    "link": {"/": "QmCCC...222"},
    "mode": "0644",
    "owner": "jbenet"
  },
  "doge.jpg": {
    "link": {"/": "QmCCC...333"},
    "mode": "0644",
    "owner": "jbenet"
  }
}

或YML

---
foo:
  link:
    /: QmCCC...111
  mode: 0755
  owner: jbenet
cat.jpg:
  link:
    /: QmCCC...222
  mode: 0644
  owner: jbenet
doge.jpg:
  link:
    /: QmCCC...333
  mode: 0644
  owner: jbenet

雖然我們?cè)谔囟ㄓ诖藬?shù)據(jù)結(jié)構(gòu)的鏈接中擁有新屬性,但我們?nèi)匀豢梢院芎玫亟馕鲦溄?

> ipld cat --json QmCCC...CCC/cat.jpg
{
  "data": "u0008u0002u0012??u0008????u0000u0010JFIFu0000u0001u0001u0001u0000Hu0000H..."
}

> ipld cat --json QmCCC...CCC/doge.jpg
{
  "subfiles": [
    {
      "/": "QmPHPs1P3JaWi53q5qqiNauPhiTqa3S1mbszcVPHKGNWRh"
    },
    {
      "/": "QmPCuqUTNb21VDqtp5b8VsNzKEMtUsZCCVsEUBrjhERRSR"
    },
    {
      "/": "QmS7zrNSHEt5GpcaKrwdbnv1nckBreUxWnLaV4qivjaNr3"
    }
  ]
}

> ipld cat --yml QmCCC...CCC/doge.jpg
---
subfiles:
  - /: QmPHPs1P3JaWi53q5qqiNauPhiTqa3S1mbszcVPHKGNWRh
  - /: QmPCuqUTNb21VDqtp5b8VsNzKEMtUsZCCVsEUBrjhERRSR
  - /: QmS7zrNSHEt5GpcaKrwdbnv1nckBreUxWnLaV4qivjaNr3

> ipld cat --json QmCCC...CCC/doge.jpg/subfiles/1/
{
  "data": "u0008u0002u0012??u0008????u0000u0010JFIFu0000u0001u0001u0001u0000Hu0000H..."
}

但是我們無(wú)法像其他屬性那樣很好地提取鏈接,因?yàn)殒溄邮且ㄟ^(guò)解析的。

重復(fù)屬性keys

注意,有兩個(gè)同名的屬性是不允許的,但實(shí)際上不可能阻止(有人會(huì)這樣做并將它提供給解析器),所以為了安全起見(jiàn),我們定義了路徑遍歷的值作為序列化表示中的第一個(gè)條目。例如,假設(shè)我們有對(duì)象:

{
  "name": "J.C.R. Licklider",
  "name": "Hans Moravec"
}

假設(shè)這是規(guī)范格式(不是json,而是cbor)的準(zhǔn)確順序,并且它的散列為QmDDD…DDD。我們總是得到:

> ipld cat --json QmDDD...DDD
{
  "name": "J.C.R. Licklider",
  "name": "Hans Moravec"
}
> ipld cat --json QmDDD...DDD/name
"J.C.R. Licklider"
路徑限制

Unix和Web中的路徑描述有一些重要的問(wèn)題。有關(guān)討論,請(qǐng)參閱此討論。為了與unix和web的模型和期望兼容,IPLD明確禁止具有特定路徑組件的路徑。請(qǐng)注意,數(shù)據(jù)本身可能仍然包含這些屬性(有人會(huì)這樣做,并且有合法用途)。所以只有路徑解析器不能通過(guò)這些路徑來(lái)解析。這些限制與典型的unix和UTF-8路徑系統(tǒng)相同:

todo:

[ ] 列表路徑解析限制

[ ] show示例

JSON中的整型

IPLD可以直接與JSON兼容,以利用JSON的成功,但它不需要因?yàn)镴SON的錯(cuò)誤而受到限制。這是我們可以遵循格式慣用選擇的地方,但必須注意確保始終存在定義明確的1:1映射。

關(guān)于整數(shù),在JSON中存在多種表示整數(shù)為字符串的格式,例如EJSON。這些可以被使用和轉(zhuǎn)換到其他格式,這是自然發(fā)生的- 也就是說(shuō),將JSON轉(zhuǎn)換為CBOR時(shí),應(yīng)該將EJSON整數(shù)自然地轉(zhuǎn)換為合適的CBOR整數(shù),而不是將其表示為字符串值的映射。

序列化數(shù)據(jù)格式

IPLD通過(guò)multicodec支持各種序列化數(shù)據(jù)格式。這些可以使用,但是對(duì)于格式是慣用的,例如CBOR,我們可以使用CBOR類型tags來(lái)表示merkl-link,并避免寫(xiě)出完整的字符串鍵@link。鼓勵(lì)用戶充分使用這些格式,并以最有意義的任何格式存儲(chǔ)和傳輸IPLD數(shù)據(jù)。唯一的要求是必須有一個(gè)明確定義的IPLD規(guī)范格式的一對(duì)一映射。這樣就可以將數(shù)據(jù)從一種格式轉(zhuǎn)換為另一種格式,而不必改變其含義或密碼哈希值。

帶標(biāo)簽的序列化CBOR

在CBOR中,可以使用定義在RFC 7049 section 2.4.中的標(biāo)記來(lái)表示IPLD鏈接。

標(biāo)簽被定義。這個(gè)標(biāo)簽可以是一個(gè)文本字符串(主類型3)或者是對(duì)應(yīng)于鏈接目標(biāo)的字節(jié)字符串(主類型2)。

將IPLD“鏈接對(duì)象”編碼到CBOR時(shí),請(qǐng)使用以下算法:

提取鏈接值。

如果鏈接值是一個(gè)有效的multiaddress,并且將該鏈接文本轉(zhuǎn)換為多地址二進(jìn)制字符串,并返回到文本將保證產(chǎn)生完全相同的文本,則該鏈接將轉(zhuǎn)換為存儲(chǔ)在CBOR中的二進(jìn)制多地址字節(jié)字符串(主類型2)。

否則,鏈接值被存儲(chǔ)為文本(主類型3)

由此產(chǎn)生的編碼是鏈接值的CBOR表示

當(dāng)解碼CBOR并將其轉(zhuǎn)換為IPLD時(shí),的每一個(gè)事件都由以下算法轉(zhuǎn)換:

以下值必須是提取的鏈接值。

如果鏈接是二進(jìn)制字符串,則將其解釋為多地址并轉(zhuǎn)換為文本格式。否則,直接使用文本字符串。

用一個(gè)鍵值對(duì)創(chuàng)建一個(gè)映射。關(guān)鍵是標(biāo)準(zhǔn)的IPLD鏈接key/,該值是包含鏈接值的文本字符串。

當(dāng)一個(gè)IPLD對(duì)象以這里所述的方式包含這些標(biāo)記時(shí),用于表示對(duì)象編解碼器的multicodec頭必須是/cbor/ IPLD -tagsv1,而不僅僅是/cbor。讀者應(yīng)該能夠使用優(yōu)化的閱讀過(guò)程來(lái)檢測(cè)使用這些標(biāo)簽的鏈接。

規(guī)范格式

為了保持merkle-linking的能力,我們必須確保IPLD文檔有一個(gè)單一的規(guī)范序列化表示。這可確保應(yīng)用程序獲得相同的加密哈希。應(yīng)該指出的是,這是一個(gè)系統(tǒng)范圍的參數(shù)。未來(lái)的系統(tǒng)可能會(huì)改變它來(lái)演進(jìn)表示。不過(guò),我們估計(jì)這需要十年不超過(guò)一次。

IPLD規(guī)范格式是帶tags的規(guī)范化CBOR。

除了此處定義的規(guī)則外,規(guī)范CBOR格式必須遵循RFC 7049 section 3.9中定義的規(guī)則。

這種格式的用戶不應(yīng)該期望keys的任何特定排序,因?yàn)閗eys可能以不同的非標(biāo)準(zhǔn)格式排序。

傳統(tǒng)的規(guī)范格式是protocol buffers。

這種規(guī)范格式用于決定首次創(chuàng)建對(duì)象并計(jì)算其哈希時(shí)使用的格式。一旦為IPLD對(duì)象決定了格式,它必須在所有通信中使用,以便發(fā)送者和接收者可以根據(jù)散列來(lái)檢查數(shù)據(jù)。

例如,當(dāng)發(fā)送一個(gè)在protocol buffers中編碼的傳統(tǒng)對(duì)象時(shí),發(fā)送方不得發(fā)送CBOR版本,因?yàn)榻邮辗綄o(wú)法檢查文件的有效性。

同樣,當(dāng)接收者存儲(chǔ)對(duì)象時(shí),它必須確保該對(duì)象的規(guī)范格式與對(duì)象一起存儲(chǔ),以便能夠與其他節(jié)點(diǎn)共享該對(duì)象。

用它們的格式存儲(chǔ)這些對(duì)象的一種簡(jiǎn)單方法是用它們的multicodec頭存儲(chǔ)它們。

數(shù)據(jù)結(jié)構(gòu)示例

重要的是,IPLD是一種簡(jiǎn)單,靈活和可擴(kuò)展的格式,不會(huì)妨礙用戶定義新的或?qū)肱f數(shù)據(jù)文件的方式。為此,下面我將展示一些示例數(shù)據(jù)結(jié)構(gòu)。

Unix文件系統(tǒng)

一個(gè)小文件

{
   “ data ”: “ hello world ”,
   “ size ”: “ 11 ” 
}

一個(gè)分塊文件
分割成多個(gè)獨(dú)立的子文件。

{
  "size": "1424119",
  "subfiles": [
    {
      "link": {"/": "QmAAA..."},
      "size": "100324"
    },
    {
      "link": {"/": "QmAA1..."},
      "size": "120345",
      "repeat": "10"
    },
    {
      "link": {"/": "QmAA1..."},
      "size": "120345"
    },
  ]
}

目錄

{
   “ foo ”: {
     “ link ”: { “ / ”: “ QmCCC ... 111 ” },
     “ mode ”: “ 0755 ”,
     “ owner ”: “ jbenet ”
  },
  “ cat.jpg ”: {
     “ link ”: { “ / ”: “ QmCCC ... 222 ” },
     “ mode ”: “ 0644 ”,
     “ owner ”: “ jbenet ”
  },
  “ doge.jpg ”: {
     “ link ”: { “ / ”: “ QmCCC ... 333 ” },
     “ mode ”: “ 0644 ”,
     “ owner ”: “ jbenet ”
  }
}
git

git blob

{
   “ data ”: “ hello world ” 
}

git tree

{
   “ foo ”: {
     “ link ”: { “ / ”: “ QmCCC ... 111 ” },
     “ mode ”: “ 0755 ”
  },
  “ cat.jpg ”: {
     “ link ”: { “ / ”: “ QmCCC ... 222 ” },
     “ mode ”: “ 0644 ”
  },
  “ doge.jpg ”: {
     “ link ”: { “ / ”: “ QmCCC ... 333 ” },
     “ mode ”: “ 0644 ”
  }
}

git commit

{
  "tree": {"/": "e4647147e940e2fab134e7f3d8a40c2022cb36f3"},
  "parents": [
    {"/": "b7d3ead1d80086940409206f5bd1a7a858ab6c95"},
    {"/": "ba8fbf7bc07818fa2892bd1a302081214b452afb"}
  ],
  "author": {
    "name": "Juan Batiz-Benet",
    "email": "juan@benet.ai",
    "time": "1435398707 -0700"
  },
  "committer": {
    "name": "Juan Batiz-Benet",
    "email": "juan@benet.ai",
    "time": "1435398707 -0700"
  },
  "message": "Merge pull request #7 from ipfs/iprs

(WIP) records + merkledag specs"
}
比特幣

比特幣block

{
   “ parent ”: { “ / ”: “ Qm000000002CPGAzmfdYPghgrFtYFB6pf1BqMvqfiPDam8 ” },
   “ transactions ”: { “ / ”: “ QmTgzctfxxE8ZwBNGn744rL5R826EtZWzKvv2TF2dAcd9n ” },
   “ nonce ”: “ UJPTFZnR2CPGAzmfdYPghgrFtYFB6pf1BqMvqfiPDam8 ” 
}

比特幣交易

這一次,在YML中。TODO:讓它是一個(gè)真正的txn

---
inputs:
  - input: {/: Qmes5e1x9YEku2Y4kDgT6pjf91TPGsE2nJAaAKgwnUqR82}
    amount: 100
outputs:
  - output: {/: Qmes5e1x9YEku2Y4kDgT6pjf91TPGsE2nJAaAKgwnUqR82}
    amount: 50
  - output: {/: QmbcfRVZqMNVRcarRN3JjEJCHhQBcUeqzZfa3zoWMaSrTW}
    amount: 30
  - output: {/: QmV9PkR2gXcmUgNH7s7zMg9dsk7Hy7bLS18S9SHK96m7zV}
    amount: 15
  - output: {/: QmP8r8fLUnEywGnRRUrHB28nnBKwmshMLiYeg8udzYg7TK}
    amount: 5
script: OP_VERIFY

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24134.html

相關(guān)文章

  • 【戴嘉樂(lè)】詳解IPFS的本質(zhì)、技術(shù)架構(gòu)以及應(yīng)用

    摘要:戴嘉樂(lè)去年月參與了的眾籌,從而了解到技術(shù),獨(dú)立開(kāi)發(fā)了兩款基于的開(kāi)源應(yīng)用,一個(gè)是與有關(guān)的系統(tǒng),另一個(gè)是相關(guān)的地理位置檢索系統(tǒng)。現(xiàn)在支持的數(shù)據(jù)結(jié)構(gòu),支持比特幣以太坊的區(qū)塊數(shù)據(jù)。 戴嘉樂(lè)是前百度高級(jí)研發(fā)工程師,ipfser.org&巴比特專欄作者。戴嘉樂(lè)去年8月參與了FileCoin的眾籌,從而了解到IPFS技術(shù),獨(dú)立開(kāi)發(fā)了兩款基于IPFS的開(kāi)源應(yīng)用,一個(gè)是與IPFS有關(guān)的wiki系統(tǒng),另一...

    whlong 評(píng)論0 收藏0
  • LibP2P規(guī)范文檔 - 中文翻譯

    摘要:要完成這些,實(shí)現(xiàn)必須支持中繼,雖然它應(yīng)該是可選的,并且能夠被終端用戶關(guān)閉連接中繼應(yīng)該作為傳輸來(lái)實(shí)現(xiàn),以便對(duì)上層透明中繼的實(shí)現(xiàn),可參考啟用多種網(wǎng)絡(luò)拓?fù)洳煌南到y(tǒng)有不同的需求,進(jìn)而導(dǎo)致不同的拓?fù)浣Y(jié)構(gòu)。 目前進(jìn)度為80%, 持續(xù)更新... 1 介紹 在開(kāi)發(fā)IPFS(星際文件系統(tǒng))的過(guò)程中,我們遇到了很多在異構(gòu)設(shè)備之上運(yùn)行分布式文件系統(tǒng)所帶來(lái)的若干挑戰(zhàn),這些設(shè)備具有不同的網(wǎng)絡(luò)設(shè)置和能力。在這個(gè)...

    fevin 評(píng)論0 收藏0
  • IPFS安裝與概覽

    摘要:安裝與概覽由于我使用的實(shí)現(xiàn)為,所以首先要安裝配置環(huán)境。六安裝輔助工具和,前者是一個(gè)桌面客戶端,后者是一個(gè)瀏覽器插件,可以在及等瀏覽器上安裝。你可以新開(kāi)一個(gè)終端使用下等功能好了,本次對(duì)的安裝配置到此結(jié)束,后續(xù)會(huì)更新更多內(nèi)容。 IPFS安裝與概覽 由于我使用的IPFS實(shí)現(xiàn)為go-ipfs,所以首先要安裝配置Golang環(huán)境。 我使用的系統(tǒng)為Ubuntu18.04,后面所有操作均在此系統(tǒng)下完...

    leanxi 評(píng)論0 收藏0
  • 【戴嘉樂(lè)】基于IPFS和GeoHash構(gòu)建具有地理位置價(jià)值服務(wù)的DDApp(理論篇)

    摘要:數(shù)據(jù)將具有如下個(gè)特點(diǎn)將二維的經(jīng)緯度轉(zhuǎn)換成字符串,比如下圖展示了北京個(gè)區(qū)域的字符串,分別是,等等,每一個(gè)字符串代表了某一矩形區(qū)域。例如,坐標(biāo)對(duì),位于北京安定門(mén)附近,后形成的值為。 作者簡(jiǎn)介:戴嘉樂(lè)( Mr.Maple ) | 前百度高級(jí)研發(fā)工程師 | IPFS應(yīng)用實(shí)踐者&布道師|個(gè)人網(wǎng)站:https://www.daijiale.cn聯(lián)系方式:微信號(hào):daijiale6239。 show...

    lmxdawn 評(píng)論0 收藏0
  • 【許曉笛】EOS:IPFS落地的重要途徑

    摘要:寫(xiě)在前面,這一篇文章是許曉笛在北京開(kāi)發(fā)者圓桌會(huì)議上的發(fā)言實(shí)錄,感謝主辦方戴嘉樂(lè)和董天一的邀請(qǐng),感謝編輯們。我這次分享題目是有可能有點(diǎn)標(biāo)題黨,前面拉了三個(gè)字有可能是落地的一個(gè)非常重要的途徑。共識(shí)機(jī)制共識(shí)機(jī)制,就是所有代幣持有人選舉。 寫(xiě)在前面,這一篇文章是許曉笛 2018.05.20 在北京 《IPFS開(kāi)發(fā)者圓桌會(huì)議》上的發(fā)言實(shí)錄,感謝主辦方戴嘉樂(lè)和董天一的邀請(qǐng),感謝編輯們。先介紹一下《...

    tuomao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<