Fully on chain data store & Data Availability Policy

Japanese follows English. 日本語は英語のあとに掲載されています。

On-chain data storage and data availability policy

Bansho art improves the availability of NFT data in multiple ways to ensure that artists’ work survives as long as possible and that NFT owners can maintain value.

The Bansho team deploys the ERC721 standard NFT contracts on the Ethereum mainnet. Unlike most NFTs, ERC721 metadata is stored on the contract itself, i.e., on-chain; NFT image data is referenced to IPFS due to gas fees, but backups of data stored on IPFS are also stored on the Polygon Network on chain. Therefore, even if data on IPFS is lost, it can be recovered by retrieving data from data storage on Polygon Network and uploading it to IPFS.

IPFS files are pinned on two IPFS nodes: a cloud service pinata and a self-hosted IPFS node.

PinataにおけるPin Policy

Data Storage Contracts

The on-chain data storage contract is at the address below. Data stored on-chain can be retrieved by calling the tokenData function of this contract (it is possible to execute this function from PolygonScan, but it will be represented in hexadecimal on PolygonScan).

Polygon Network (137) 0x9B9BB15b8053c46126A4B37d175C8d3d93e0b588

https://polygonscan.com/address/0x9B9BB15b8053c46126A4B37d175C8d3d93e0b588

Practically, the following JavaScript code can be used to save the data stored on-chain as an image file.

function hexStringToByte(str) {
  if (!str) {
    return new Uint8Array();
  }
  var a = [];
  for (var i = 0, len = str.length; i < len; i += 2) {
    a.push(parseInt(str.substr(i, 2), 16));
  }
  return new Uint8Array(a);
}
const banshoContracts = [
    "0x499D7f2d4105b367599Fd22595129b0BeF092C38",
    "0x92E1E2D55F5187027C1a34E7e35A9A307Fd9B86e",
  ];
const storage = await ethers.getContractAt(
    "BAStorage",
    "0x023759f5944170f8f5Fbe483108170c7ef58b1aD"
  );
let tokenData = await storage.tokenData(banshoContracts[0], tokenId);
let dt = hexStringToByte(tokenData.slice(2));
console.log(dt.length);
fs.writeFileSync("download/sample.svg", dt);

Other.

This storage contract issues an NFT to indicate that data has been stored on-chain. This NFT contains the contract address and token ID of the original NFT, making it visible which contract and which token ID’s data was recorded.

https://opensea.io/collection/bastorage-v2

Example:

https://opensea.io/assets/matic/0x9b9bb15b8053c46126a4b37d175c8d3d93e0b588/12788834083531854566053755177642780680459986868223

オンチェーンデータストレージとデータ可用性ポリシー

Banshoコレクションでは、アーティストの作品をできる限り長く存続させるため、そしてNFTのオーナーが価値を維持できるよう、複数の方法でNFTのデータの可用性を向上させています。

Banshoコレクションでは、ERC721のコレクションをEthereum mainnet上に展開しています。多くのNFTと異なりERC721のメタデータはコントラクト自体つまりオンチェーンに保存しています。NFTの画像データはガスフィーの関係でIPFSを参照していますが、IPFS上に保存しているデータのバックアップをPolygon Network上にもon chainで保管しています。したがって、万一、IPFS上のデータが消失したとしても、Polygon Network上のデータストレージからデータを取り出し、IPFSにアップロードすることで復旧が可能となっています。

IPFSファイルはクラウドサービスのpinataおよびセルフホストのIPFSノードの2つでpinしており、IPFS上のファイルもできる限り消失しないような運用をしています。

PinataにおけるPin Policy

データストレージコントラクト

オンチェーンでのデータストレージコントラクトは下記のアドレスです。本コントラクトのtokenData関数を呼び出すことでオンチェーンに保存されたデータを取り出すことができます(PolygonScanから本関数を実行することも可能ですが、PolygonScan上ではヘキサデシマル表記されます)。

Polygon Network (137) 0x9B9BB15b8053c46126A4B37d175C8d3d93e0b588ef58b1aD

https://polygonscan.com/address/0x9B9BB15b8053c46126A4B37d175C8d3d93e0b588

実際的には下記のようなJavaScriptのコードを用いるとオンチェーンに保存されたデータを画像ファイルとして保存することが可能です。

近日中にデータのダウンロード機能を本HPに実装し、また、ダウンロードスクリプトを公開予定です。

function hexStringToByte(str) {
  if (!str) {
    return new Uint8Array();
  }
  var a = [];
  for (var i = 0, len = str.length; i < len; i += 2) {
    a.push(parseInt(str.substr(i, 2), 16));
  }
  return new Uint8Array(a);
}
const banshoContracts = [
    "0x499D7f2d4105b367599Fd22595129b0BeF092C38",
    "0x92E1E2D55F5187027C1a34E7e35A9A307Fd9B86e",
  ];
const storage = await ethers.getContractAt(
    "BAStorage",
    "0x023759f5944170f8f5Fbe483108170c7ef58b1aD"
  );
let tokenData = await storage.tokenData(banshoContracts[0], tokenId);
let dt = hexStringToByte(tokenData.slice(2));
console.log(dt.length);
fs.writeFileSync("download/sample.svg", dt);

その他

本ストレージコントラクトでは、データをオンチェーンに保存した際にデータが保存されたことを示すNFTを発行しています。このNFTには元のNFTのコントラクトアドレスとトークンIDが記載されており、どのコントラクトのどのトークンIDのデータが記録されているかが可視化されています。

https://opensea.io/collection/bastorage-v2

https://opensea.io/assets/matic/0x9b9bb15b8053c46126a4b37d175c8d3d93e0b588/12788834083531854566053755177642780680459986868223

sha1 hash of IPFS datasha1 hash of On Chain Data
5c853643e156a90a47b53bda76c062cd6ce81b7d 1.jpg
e49ec4fc61ac09eeacc2f9264c3259e65f9d154b 10.jpg
ac46ffc28fecb8a321b7c5efebcbdfd8feed2886 100.jpg
e918c572098dfefce1a77a1cb42ac2849988ad96 101.jpg
b7ae5b7b7750068903379f146ebd079cabf850c0 102.jpg
3ff376e49b0d2dc3e90e16ea677a1f4dddb4c484 103.jpg
5de875fb91167d92171515d4bd19ab8670468950 104.jpg
995c62984b820e3ef4882279dba76939528b7445 105.jpg
c8d59cb3997c71856deff73a536b2cee7707acba 106.jpg
a64bb9e1995806b10fe13e967a60530f60c9b0ab 107.jpg
530d726035dc38578db25e5e485b2076d67dd6aa 108.jpg
ec734e91f3abc6a612d11c8efca5e08683a47478 109.jpg
14f05ff462c4c8477e496a5a1d5883d9e278eeec 11.jpg
838efc75d908fed12767f08a5b0c8741591dc9e5 110.jpg
8d84efcb333db0c2ac341200cc9564b9544acfd5 111.jpg
80980ca57af8d6d323c43d60e9a1b7c2f750d379 112.jpg
ed7eb4fd1e72ec888ec777a8eda0aca15dcb1d83 113.jpg
3ce2eb0727ffb892338e690461efc6a839932ab3 114.jpg
34717f35ac27afe00e854eb3676e191311f4f367 115.jpg
757e3920f7d5e7a055677fe380c9db1147492824 116.jpg
5d3343755fc91506d64cdf75db86c354e6215ff1 117.jpg
f41e2863ef7a2be55ee174c764da634147dfce77 118.jpg
88bf663b449e0198e5397eb248e81690fc60a94b 119.jpg
1795cfa6a028d4cba0d29a7176ad92d7b19ff13e 12.jpg
24e76e48d143e6098e14f0d63bbf0d328a808017 120.jpg
a0581dcfea6d26776c13b421986c1d224ebecf14 121.jpg
02753d861572563ae0798d2cc05adf9b52c000ac 122.jpg
7485eec120323d9a17089eac1659bd26ad3b0bbd 123.jpg
af2c7e5e9986f2b6b3213eff01e22b8c2745ea74 124.jpg
5cdfb0294e1b518be2bc2948c1ca9dd02ee2ac90 125.jpg
ba6d1f1325820e2e5684e4eb64d4217f642832b7 126.jpg
b70e077848a064b6806866e3049072085179e62b 127.jpg
c93ec5c14a9a7d468487cd7e3d84d55628ac2f32 128.jpg
2134d8bbab5f72f537332f70d10e38bdf672b885 129.jpg
803c7113b5967a7fe1795d225b88632456215410 13.jpg
cec4d83b24e55a20bcf63946ce54cf08902f76e2 130.jpg
f8741a5a86de8e4b05e41033eeae06d678c2c59c 131.jpg
bb2de415c6b9b7bf3e95efd5751c7ccc732aedc4 132.jpg
bbe4ae296159d7f57735e47ec3d3897a4a61fdda 133.jpg
6fb950c775ccbfc8249abd5ebbbac0cb501f2d72 134.jpg
5af78e0c66eb87122675501986befc85f7d50368 135.jpg
fb6effe460e685c5db2f0f7849d3ea662c6846b8 136.jpg
4d2c6deca6280d9968e0cfa2005835c29cb43d0d 137.jpg
4d5c21d05e4cffb6a2ad09ac277ebe6cc54b5569 138.jpg
d8f0b6bf78c14a39fe36dcfae54055ae74188fe3 139.jpg
46c840cb76fb0da494837e309f689fd8c08ebd08 14.jpg
7da5853e6fc69df5f841f9b45bf856e09bf5a00a 140.jpg
647f34e1a3d4f4b0840e8cfdf248c48a075e28aa 141.jpg
558329a069376765c8f156f20d96047231c6f57d 142.jpg
9e505f66e2db477cf919501199f715536be0c329 143.jpg
8b5b44237fa394d158c2f4928b35c3c43d165769 144.jpg
151daff92848d8b11b912ef7526644c91c0a281f 145.jpg
10856dda81d4187732ebaf5a4324a68076123c45 146.jpg
13d7b7623c4e054cf757b597a23c22ce98024ca5 147.jpg
c0200a523aff9d8edf8ee176248ccade1b692f01 148.jpg
e4eb9caea9f1e984e15bc7c7d5aa8115f269571e 149.jpg
85685f85c302d17b67fde4ca43f392fff4f987ee 15.jpg
16f851da2f7e6f2d37c7d1ad8a6740249b8aa25d 150.jpg
42d998ffa49e8c383a04fce2d3517ed57bd2a772 151.jpg
be0dbeabc6288b7a4c438db900df9cc35ef736df 152.jpg
03687b4600abf64676d3c8fe97741575fee6a99c 153.jpg
49209f6d55f8a501b1cfd623c8019e30c31b69af 154.jpg
c5845aae49b384f4947eed848edcebf09d1fe977 155.jpg
d138f33acb44283aaec7ff61fe49435d8967f34c 156.jpg
d7db11c97e5d16a1416e54a6f53d8dec6602f23e 157.jpg
10be5559c0b63839b1e9fa8c66422fa24bdd6ada 158.jpg
7e19219b65ac91c09605fc8d1bdbef71cc4d0da9 159.jpg
c8e437dfb5a120e77c317c0f1ac81adf8c944b51 16.jpg
686837e33ad1972963e15284fa75dfe92dbe5306 160.jpg
8c6eecb17afd1957efe15d5a2522b3ff52da891f 161.jpg
72b77b213ff54b453c1b59759ce9a982a7126f6d 162.jpg
e2fc46c76152da92e9df4a667496ceb1086bde88 163.jpg
f2496b4bde7009a631b1d996520811b3ec57f6d6 164.jpg
69d4b9d672d38f6342d16b9cf39f20fa13d3a9a7 165.jpg
d8715fba9a32f17f31d96ed349a994c78ebb3483 166.jpg
e2ac1517a5aafffa131d5357b2968d011a6adc77 167.jpg
481d89e23dbeb17f65791b1cd0a56268dd924a1c 168.jpg
3b956b323645e7458895307cbc9844a4734e445c 169.jpg
5b179d5a4f38ad1c287f39bb5761782d9d44a236 17.jpg
bd0ab21e30e154708c778ccedec817e3bb87d9fa 170.jpg
0354e14590767413a230e29c803f7f920e478c3f 171.jpg
fdf6c128ee27ea023c1afa48a80e89601d93602b 172.jpg
9a00f30cd08d00f88d0088df2c52d2467b4bdc1e 173.jpg
fb973d0b3193496df9e86048cdc4a79262156801 174.jpg
c5ae2b3335b46ac932fd33d2bd13f483ed1d92f0 175.jpg
022666c676d6001fca613e38123be4e3ab309cc7 176.jpg
05cbce09d92b81a30130cb5116d43f33af6a9938 177.jpg
8469fd3f5dce94fd95ec9881524252b7b8ec1790 178.jpg
b5a8b5444e1d969a84c64365581f090a5a5eeaae 179.jpg
6cd3864f1493043efda0cec5caf9b131e783ee0b 18.jpg
ba7842249d3531c702d878930e3d6d491db0e4af 180.jpg
a69d479fa8f30a1ef9a306c4e4580b7a1d3fcfe8 181.jpg
68f7e866fd94f62dc2d15680d66aa2bf09799e2f 182.jpg
4d4cf3172edede74f2122fc5e1ec618aaf623ac6 183.jpg
52ae44391b13ede86ec7264ec8f180647d1d47fa 184.jpg
7f1750359d7293626bbad49f464746de5eb0cb32 185.jpg
3ebea2fb168b4917ca8a4fe1ddeb1291196f933a 186.jpg
f93116d468941636ee2cb231ea1e5ae548eab75e 187.jpg
df1bf646e47be5c099ec4c4f0b44c844e7768295 188.jpg
0f04694d374d0bd9ae3c80b00e1edf09c6cf2e64 189.jpg
ba607aad13512fadb19a2cf93a65cc2a0e253dca 19.jpg
7f78fe0427f1ab22ce04a6888c59b0f169c0a91d 190.jpg
a12e4cebb0a4e6a2f0408fe37d0df8eb0c971a52 191.jpg
0c8a9a08dbc3be138e98b1af598b8daf052f8567 192.jpg
0c8d8290fe7bffb388a4e1849ac4bdc5dceac32e 193.jpg
f28813fde831322ef2a806f45aeb70699acc4f62 194.jpg
30eda777c2683d70a31d432b8e310ad0312d6708 195.jpg
337663832ddd65fa5095ba76040a4160785c60e0 196.jpg
f38a2d28090f4832b808545d0497e9893d6156e7 197.jpg
157616cee8c1b263739fc6bb57703c0486a4ef1f 198.jpg
ad4db692e8ef38712337a3b8876d1f49d8cec02e 199.jpg
83170fcd00353a6a026ecb8f2dbb0c4bc1c5adf4 2.jpg
3d804f0c2079326be945e86d1baa9bc932cb778d 20.jpg
da4cfb1b10a05b3fe58e5f091f08d6e88581c824 200.jpg
b5774883281d25c3577d2ad3862c0d73e820dc3a 21.jpg
cf8f875b7e578ac4ecf48643151a400c6d7b7874 22.jpg
f91e8a73fdf8417c18c6bb8bdca93ac69461ef93 23.jpg
94ffddecc406f9e03666717e0641524ef908abb7 24.jpg
6eb8c3ee689ba75c80f61ce98e1d1e3f3818bf6b 25.jpg
e50bfad2d5defab414b5a0c4057e527c921dc3a9 26.jpg
7db555881cf9636efc7ec92bbf18b13f9019edd9 27.jpg
3bdc223a357a02a15089f564cb4c49aee81b2957 28.jpg
0745bd0441b17e729f028b62115f5541fa11124c 29.jpg
485d08d4ff2e76ef06a1029dd20454aca4c5de94 3.jpg
42683037bcd243535f7ee35fe80be4d6fc63e96d 30.jpg
24113b23096a9ef0d1955d66694d325a6cb164f1 31.jpg
a7840a739ed514f5278583fc290d39114cf5b571 32.jpg
1a6c23384940f35c8d977816ebd4460c5afeec10 33.jpg
c9b0837cbf4cecbc848c0f7660afd27ac8de5777 34.jpg
ca1418b1731d80965363cc65ba0cc01b233de095 35.jpg
eb673256bfb49109f0ba7a40bac3f4b55fe35279 36.jpg
686c8a7054c89478d4031288efe77abe00742b32 37.jpg
bc9e76fdd0c34c81dcbeb81d481f655d14ac93c3 38.jpg
8c3a09ff2d69f456da367b5c1267b9129cafe507 39.jpg
a41e8806a52defe44bbdbb8708337a31badb6b96 4.jpg
86fbcd7993199f4c78589273dbcacae60e84f57b 40.jpg
a9da0297898e195c8c66c67230cbd2c63991698f 41.jpg
63743c4cf31bfa168126778632cffd3f772b395b 42.jpg
f1f129b2d0faca65d2738db619cffcdf70ce1abb 43.jpg
3aab36b136ee71b31828d140b1c44e56d078c4ad 44.jpg
ba19acb6e0e3eaf17cb311dd3b18a188b2f3eb8f 45.jpg
94d45345d6019a7118505b8ceb2537a066fb1d19 46.jpg
5b88df6395d2576df4ca4d5235f537890854a00d 47.jpg
1a7b746f8dfbd75f522cc846d77b98d9e62e158e 48.jpg
99210b4ec14458ab019568497184d506cef282ce 49.jpg
ebe1e1999299e1677609b1e79ddb473bd9e597d0 5.jpg
1fd3324f46f21dd92e20e2035fc1741a8e8a43e6 50.jpg
f2660b1d05b8d6fcf2f89ae022c1bfe26da7c0c5 51.jpg
5d4e46d81391fb7a24c89b771f4adbf6a73ac0c0 52.jpg
5966277191a2e81dfe27b714f110b3d014f7adbf 53.jpg
0ab3f14424ad7b162995ce336bb95f59f8841975 54.jpg
b09b9a9d0b456f8ae204b5c6568131e59c8c8776 55.jpg
ef51e42c82b89661894b13aab6a06afa229f3307 56.jpg
1a9d6808e921f72f4d0b2a51e0d5c0cf28589c09 57.jpg
375030887056db8bf8ed81b24c1a38d2e344cb4a 58.jpg
b6c0f2f9a53992aa1222e92a2ee71acd4be6c3a0 59.jpg
acc362f71f9b91313921023b85a9e34b810cff01 6.jpg
1ac5a68cad9c08c450e2a903c14194cc8497da32 60.jpg
3352ef6d35fe8dc14eb3306a8a3fa592542afc26 61.jpg
97c92c5512945d726117f310879753b33a02dd13 62.jpg
586d1dd7466b9b8dd19fafc1ddb991ef4c1ff9ff 63.jpg
2b63ed3b4a9eff262707f7740a2bc72ce291df6f 64.jpg
14facef93eafbaccc21114e745ca6c363e39e114 65.jpg
20d562f104da3d5b622a9d063af5bc7b15c9099e 66.jpg
4d00b3daa8ce96f433bc326e104957b609b40947 67.jpg
e6c69b439725493fd638eba9a9de749f6577b0ef 68.jpg
6709bc6d63bc59d2bb2fb5c4ee047b24d9412601 69.jpg
5bb9b085335426defaad835b6306809e9154e359 7.jpg
2d52d5954f16a4b30fc39e21be5db9fcc23bd735 70.jpg
8179158e0555960edb49cc85f97ccd74168e88d1 71.jpg
eab1ec54af12fe19c71facac03e96ebd85195bc4 72.jpg
8c7d1a60b1f8454dfb2d77b6460a9bb9326d74c6 73.jpg
c315f2344b57f8f297dedbe0d4fd546ba549b5f2 74.jpg
bd552d4b9baedc4826adbac1d5693bbc3c785163 75.jpg
16a91502899208d0aa176b6fa85683da77a72e73 76.jpg
32a018eea6db26462b729a6f9912006aaca5a6a8 77.jpg
5597fea837a433e84207cc0accadf47e58c1f456 78.jpg
c7ca89adb71a591733ff45346284eadc8df93631 79.jpg
9d7f9916ed144ecc5b9d80da264535b027e76477 8.jpg
6af005b7932cf895d1c9547c9c38d08912236d17 80.jpg
a0e0b92bb159065bb991827c1031149a4e96cafc 81.jpg
54bc583c2251fd0c58523d1bf3f67ee1c20e46b4 82.jpg
8d3b592b122df98afe7c3581a8ee66e7709f577b 83.jpg
109b882d8f37216651d8d0fc4185bb18e4f93672 84.jpg
4af5ae960053233b11fc8f8494bd4a73f2258ddb 85.jpg
780c591e3cb73e968945bb22dde08e5690b1909b 86.jpg
5b2528aa2f3d60ffd08a0d49971d39fc5715df3d 87.jpg
3e56a83e7847badb9ca962f397bee6ceb67d153b 88.jpg
0b0227a7eae9382d5c7feeeb2283dfbf63dc1ceb 89.jpg
eb292b0fd624abdcfeace8c3c608fbcf9b49dc2e 9.jpg
58e74a8ece95b42afef9d320662ab6c102777e93 90.jpg
23a0ba93e3994b53fa56c3da8191475b1a9f32d1 91.jpg
077646e22b40723f79c21b3d74575dd97aaada0b 92.jpg
482dd1bff739c7a014541de0d9bfd853c62b8b37 93.jpg
c9dad2ee48fc4240d398b999572d1e21728d8196 94.jpg
3f0a69d0a32cd4c273fba8dcca4ac622708b9dad 95.jpg
64f7934975f8f8ec44fa4f40c7bd186e2e095026 96.jpg
f70ee3782da34484fba25b9e6c2010d53e89143b 97.jpg
7bbcff57c550ae54f1aec9ca548f2d1bca5bafd6 98.jpg
1d7bd39924cb9c96cc49eca7cd09fbc95dfb80d6 99.jpg
5c853643e156a90a47b53bda76c062cd6ce81b7d 1.jpg
e49ec4fc61ac09eeacc2f9264c3259e65f9d154b 10.jpg
ac46ffc28fecb8a321b7c5efebcbdfd8feed2886 100.jpg
e918c572098dfefce1a77a1cb42ac2849988ad96 101.jpg
b7ae5b7b7750068903379f146ebd079cabf850c0 102.jpg
3ff376e49b0d2dc3e90e16ea677a1f4dddb4c484 103.jpg
5de875fb91167d92171515d4bd19ab8670468950 104.jpg
995c62984b820e3ef4882279dba76939528b7445 105.jpg
c8d59cb3997c71856deff73a536b2cee7707acba 106.jpg
a64bb9e1995806b10fe13e967a60530f60c9b0ab 107.jpg
530d726035dc38578db25e5e485b2076d67dd6aa 108.jpg
ec734e91f3abc6a612d11c8efca5e08683a47478 109.jpg
14f05ff462c4c8477e496a5a1d5883d9e278eeec 11.jpg
838efc75d908fed12767f08a5b0c8741591dc9e5 110.jpg
8d84efcb333db0c2ac341200cc9564b9544acfd5 111.jpg
80980ca57af8d6d323c43d60e9a1b7c2f750d379 112.jpg
ed7eb4fd1e72ec888ec777a8eda0aca15dcb1d83 113.jpg
3ce2eb0727ffb892338e690461efc6a839932ab3 114.jpg
34717f35ac27afe00e854eb3676e191311f4f367 115.jpg
757e3920f7d5e7a055677fe380c9db1147492824 116.jpg
5d3343755fc91506d64cdf75db86c354e6215ff1 117.jpg
f41e2863ef7a2be55ee174c764da634147dfce77 118.jpg
88bf663b449e0198e5397eb248e81690fc60a94b 119.jpg
1795cfa6a028d4cba0d29a7176ad92d7b19ff13e 12.jpg
24e76e48d143e6098e14f0d63bbf0d328a808017 120.jpg
a0581dcfea6d26776c13b421986c1d224ebecf14 121.jpg
02753d861572563ae0798d2cc05adf9b52c000ac 122.jpg
7485eec120323d9a17089eac1659bd26ad3b0bbd 123.jpg
af2c7e5e9986f2b6b3213eff01e22b8c2745ea74 124.jpg
5cdfb0294e1b518be2bc2948c1ca9dd02ee2ac90 125.jpg
ba6d1f1325820e2e5684e4eb64d4217f642832b7 126.jpg
b70e077848a064b6806866e3049072085179e62b 127.jpg
c93ec5c14a9a7d468487cd7e3d84d55628ac2f32 128.jpg
2134d8bbab5f72f537332f70d10e38bdf672b885 129.jpg
803c7113b5967a7fe1795d225b88632456215410 13.jpg
cec4d83b24e55a20bcf63946ce54cf08902f76e2 130.jpg
f8741a5a86de8e4b05e41033eeae06d678c2c59c 131.jpg
bb2de415c6b9b7bf3e95efd5751c7ccc732aedc4 132.jpg
bbe4ae296159d7f57735e47ec3d3897a4a61fdda 133.jpg
6fb950c775ccbfc8249abd5ebbbac0cb501f2d72 134.jpg
5af78e0c66eb87122675501986befc85f7d50368 135.jpg
fb6effe460e685c5db2f0f7849d3ea662c6846b8 136.jpg
4d2c6deca6280d9968e0cfa2005835c29cb43d0d 137.jpg
4d5c21d05e4cffb6a2ad09ac277ebe6cc54b5569 138.jpg
d8f0b6bf78c14a39fe36dcfae54055ae74188fe3 139.jpg
46c840cb76fb0da494837e309f689fd8c08ebd08 14.jpg
7da5853e6fc69df5f841f9b45bf856e09bf5a00a 140.jpg
647f34e1a3d4f4b0840e8cfdf248c48a075e28aa 141.jpg
558329a069376765c8f156f20d96047231c6f57d 142.jpg
9e505f66e2db477cf919501199f715536be0c329 143.jpg
8b5b44237fa394d158c2f4928b35c3c43d165769 144.jpg
151daff92848d8b11b912ef7526644c91c0a281f 145.jpg
10856dda81d4187732ebaf5a4324a68076123c45 146.jpg
13d7b7623c4e054cf757b597a23c22ce98024ca5 147.jpg
c0200a523aff9d8edf8ee176248ccade1b692f01 148.jpg
e4eb9caea9f1e984e15bc7c7d5aa8115f269571e 149.jpg
85685f85c302d17b67fde4ca43f392fff4f987ee 15.jpg
16f851da2f7e6f2d37c7d1ad8a6740249b8aa25d 150.jpg
42d998ffa49e8c383a04fce2d3517ed57bd2a772 151.jpg
be0dbeabc6288b7a4c438db900df9cc35ef736df 152.jpg
03687b4600abf64676d3c8fe97741575fee6a99c 153.jpg
49209f6d55f8a501b1cfd623c8019e30c31b69af 154.jpg
c5845aae49b384f4947eed848edcebf09d1fe977 155.jpg
d138f33acb44283aaec7ff61fe49435d8967f34c 156.jpg
d7db11c97e5d16a1416e54a6f53d8dec6602f23e 157.jpg
10be5559c0b63839b1e9fa8c66422fa24bdd6ada 158.jpg
7e19219b65ac91c09605fc8d1bdbef71cc4d0da9 159.jpg
c8e437dfb5a120e77c317c0f1ac81adf8c944b51 16.jpg
686837e33ad1972963e15284fa75dfe92dbe5306 160.jpg
8c6eecb17afd1957efe15d5a2522b3ff52da891f 161.jpg
72b77b213ff54b453c1b59759ce9a982a7126f6d 162.jpg
e2fc46c76152da92e9df4a667496ceb1086bde88 163.jpg
f2496b4bde7009a631b1d996520811b3ec57f6d6 164.jpg
69d4b9d672d38f6342d16b9cf39f20fa13d3a9a7 165.jpg
d8715fba9a32f17f31d96ed349a994c78ebb3483 166.jpg
e2ac1517a5aafffa131d5357b2968d011a6adc77 167.jpg
481d89e23dbeb17f65791b1cd0a56268dd924a1c 168.jpg
3b956b323645e7458895307cbc9844a4734e445c 169.jpg
5b179d5a4f38ad1c287f39bb5761782d9d44a236 17.jpg
bd0ab21e30e154708c778ccedec817e3bb87d9fa 170.jpg
0354e14590767413a230e29c803f7f920e478c3f 171.jpg
fdf6c128ee27ea023c1afa48a80e89601d93602b 172.jpg
9a00f30cd08d00f88d0088df2c52d2467b4bdc1e 173.jpg
fb973d0b3193496df9e86048cdc4a79262156801 174.jpg
c5ae2b3335b46ac932fd33d2bd13f483ed1d92f0 175.jpg
022666c676d6001fca613e38123be4e3ab309cc7 176.jpg
05cbce09d92b81a30130cb5116d43f33af6a9938 177.jpg
8469fd3f5dce94fd95ec9881524252b7b8ec1790 178.jpg
b5a8b5444e1d969a84c64365581f090a5a5eeaae 179.jpg
6cd3864f1493043efda0cec5caf9b131e783ee0b 18.jpg
ba7842249d3531c702d878930e3d6d491db0e4af 180.jpg
a69d479fa8f30a1ef9a306c4e4580b7a1d3fcfe8 181.jpg
68f7e866fd94f62dc2d15680d66aa2bf09799e2f 182.jpg
4d4cf3172edede74f2122fc5e1ec618aaf623ac6 183.jpg
52ae44391b13ede86ec7264ec8f180647d1d47fa 184.jpg
7f1750359d7293626bbad49f464746de5eb0cb32 185.jpg
3ebea2fb168b4917ca8a4fe1ddeb1291196f933a 186.jpg
f93116d468941636ee2cb231ea1e5ae548eab75e 187.jpg
df1bf646e47be5c099ec4c4f0b44c844e7768295 188.jpg
0f04694d374d0bd9ae3c80b00e1edf09c6cf2e64 189.jpg
ba607aad13512fadb19a2cf93a65cc2a0e253dca 19.jpg
7f78fe0427f1ab22ce04a6888c59b0f169c0a91d 190.jpg
a12e4cebb0a4e6a2f0408fe37d0df8eb0c971a52 191.jpg
0c8a9a08dbc3be138e98b1af598b8daf052f8567 192.jpg
0c8d8290fe7bffb388a4e1849ac4bdc5dceac32e 193.jpg
f28813fde831322ef2a806f45aeb70699acc4f62 194.jpg
30eda777c2683d70a31d432b8e310ad0312d6708 195.jpg
337663832ddd65fa5095ba76040a4160785c60e0 196.jpg
f38a2d28090f4832b808545d0497e9893d6156e7 197.jpg
157616cee8c1b263739fc6bb57703c0486a4ef1f 198.jpg
ad4db692e8ef38712337a3b8876d1f49d8cec02e 199.jpg
83170fcd00353a6a026ecb8f2dbb0c4bc1c5adf4 2.jpg
3d804f0c2079326be945e86d1baa9bc932cb778d 20.jpg
da4cfb1b10a05b3fe58e5f091f08d6e88581c824 200.jpg
b5774883281d25c3577d2ad3862c0d73e820dc3a 21.jpg
cf8f875b7e578ac4ecf48643151a400c6d7b7874 22.jpg
f91e8a73fdf8417c18c6bb8bdca93ac69461ef93 23.jpg
94ffddecc406f9e03666717e0641524ef908abb7 24.jpg
6eb8c3ee689ba75c80f61ce98e1d1e3f3818bf6b 25.jpg
e50bfad2d5defab414b5a0c4057e527c921dc3a9 26.jpg
7db555881cf9636efc7ec92bbf18b13f9019edd9 27.jpg
3bdc223a357a02a15089f564cb4c49aee81b2957 28.jpg
0745bd0441b17e729f028b62115f5541fa11124c 29.jpg
485d08d4ff2e76ef06a1029dd20454aca4c5de94 3.jpg
42683037bcd243535f7ee35fe80be4d6fc63e96d 30.jpg
24113b23096a9ef0d1955d66694d325a6cb164f1 31.jpg
a7840a739ed514f5278583fc290d39114cf5b571 32.jpg
1a6c23384940f35c8d977816ebd4460c5afeec10 33.jpg
c9b0837cbf4cecbc848c0f7660afd27ac8de5777 34.jpg
ca1418b1731d80965363cc65ba0cc01b233de095 35.jpg
eb673256bfb49109f0ba7a40bac3f4b55fe35279 36.jpg
686c8a7054c89478d4031288efe77abe00742b32 37.jpg
bc9e76fdd0c34c81dcbeb81d481f655d14ac93c3 38.jpg
8c3a09ff2d69f456da367b5c1267b9129cafe507 39.jpg
a41e8806a52defe44bbdbb8708337a31badb6b96 4.jpg
86fbcd7993199f4c78589273dbcacae60e84f57b 40.jpg
a9da0297898e195c8c66c67230cbd2c63991698f 41.jpg
63743c4cf31bfa168126778632cffd3f772b395b 42.jpg
f1f129b2d0faca65d2738db619cffcdf70ce1abb 43.jpg
3aab36b136ee71b31828d140b1c44e56d078c4ad 44.jpg
ba19acb6e0e3eaf17cb311dd3b18a188b2f3eb8f 45.jpg
94d45345d6019a7118505b8ceb2537a066fb1d19 46.jpg
5b88df6395d2576df4ca4d5235f537890854a00d 47.jpg
1a7b746f8dfbd75f522cc846d77b98d9e62e158e 48.jpg
99210b4ec14458ab019568497184d506cef282ce 49.jpg
ebe1e1999299e1677609b1e79ddb473bd9e597d0 5.jpg
1fd3324f46f21dd92e20e2035fc1741a8e8a43e6 50.jpg
f2660b1d05b8d6fcf2f89ae022c1bfe26da7c0c5 51.jpg
5d4e46d81391fb7a24c89b771f4adbf6a73ac0c0 52.jpg
5966277191a2e81dfe27b714f110b3d014f7adbf 53.jpg
0ab3f14424ad7b162995ce336bb95f59f8841975 54.jpg
b09b9a9d0b456f8ae204b5c6568131e59c8c8776 55.jpg
ef51e42c82b89661894b13aab6a06afa229f3307 56.jpg
1a9d6808e921f72f4d0b2a51e0d5c0cf28589c09 57.jpg
375030887056db8bf8ed81b24c1a38d2e344cb4a 58.jpg
b6c0f2f9a53992aa1222e92a2ee71acd4be6c3a0 59.jpg
acc362f71f9b91313921023b85a9e34b810cff01 6.jpg
1ac5a68cad9c08c450e2a903c14194cc8497da32 60.jpg
3352ef6d35fe8dc14eb3306a8a3fa592542afc26 61.jpg
97c92c5512945d726117f310879753b33a02dd13 62.jpg
586d1dd7466b9b8dd19fafc1ddb991ef4c1ff9ff 63.jpg
2b63ed3b4a9eff262707f7740a2bc72ce291df6f 64.jpg
14facef93eafbaccc21114e745ca6c363e39e114 65.jpg
20d562f104da3d5b622a9d063af5bc7b15c9099e 66.jpg
4d00b3daa8ce96f433bc326e104957b609b40947 67.jpg
e6c69b439725493fd638eba9a9de749f6577b0ef 68.jpg
6709bc6d63bc59d2bb2fb5c4ee047b24d9412601 69.jpg
5bb9b085335426defaad835b6306809e9154e359 7.jpg
2d52d5954f16a4b30fc39e21be5db9fcc23bd735 70.jpg
8179158e0555960edb49cc85f97ccd74168e88d1 71.jpg
eab1ec54af12fe19c71facac03e96ebd85195bc4 72.jpg
8c7d1a60b1f8454dfb2d77b6460a9bb9326d74c6 73.jpg
c315f2344b57f8f297dedbe0d4fd546ba549b5f2 74.jpg
bd552d4b9baedc4826adbac1d5693bbc3c785163 75.jpg
16a91502899208d0aa176b6fa85683da77a72e73 76.jpg
32a018eea6db26462b729a6f9912006aaca5a6a8 77.jpg
5597fea837a433e84207cc0accadf47e58c1f456 78.jpg
c7ca89adb71a591733ff45346284eadc8df93631 79.jpg
9d7f9916ed144ecc5b9d80da264535b027e76477 8.jpg
6af005b7932cf895d1c9547c9c38d08912236d17 80.jpg
a0e0b92bb159065bb991827c1031149a4e96cafc 81.jpg
54bc583c2251fd0c58523d1bf3f67ee1c20e46b4 82.jpg
8d3b592b122df98afe7c3581a8ee66e7709f577b 83.jpg
109b882d8f37216651d8d0fc4185bb18e4f93672 84.jpg
4af5ae960053233b11fc8f8494bd4a73f2258ddb 85.jpg
780c591e3cb73e968945bb22dde08e5690b1909b 86.jpg
5b2528aa2f3d60ffd08a0d49971d39fc5715df3d 87.jpg
3e56a83e7847badb9ca962f397bee6ceb67d153b 88.jpg
0b0227a7eae9382d5c7feeeb2283dfbf63dc1ceb 89.jpg
eb292b0fd624abdcfeace8c3c608fbcf9b49dc2e 9.jpg
58e74a8ece95b42afef9d320662ab6c102777e93 90.jpg
23a0ba93e3994b53fa56c3da8191475b1a9f32d1 91.jpg
077646e22b40723f79c21b3d74575dd97aaada0b 92.jpg
482dd1bff739c7a014541de0d9bfd853c62b8b37 93.jpg
c9dad2ee48fc4240d398b999572d1e21728d8196 94.jpg
3f0a69d0a32cd4c273fba8dcca4ac622708b9dad 95.jpg
64f7934975f8f8ec44fa4f40c7bd186e2e095026 96.jpg
f70ee3782da34484fba25b9e6c2010d53e89143b 97.jpg
7bbcff57c550ae54f1aec9ca548f2d1bca5bafd6 98.jpg
1d7bd39924cb9c96cc49eca7cd09fbc95dfb80d6 99.jpg
Data comparison between IPFS-stored and On-chain-stored data


記事:Nuko