Ipfs: IPFS API ๋ฐ”์ธ๋”ฉ

์— ๋งŒ๋“  2015๋…„ 08์›” 19์ผ  ยท  76์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipfs/ipfs

์šฐ๋ฆฌ๋Š” ๋งค์šฐ ์•ˆ์ •์ ์ธ API์— ๋„๋‹ฌํ–ˆ์œผ๋ฉฐ ์ด์ œ IPFS๊ฐ€ ๋งค์šฐ ์•ˆ์ •์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ https://www.npmjs.com/package/ipfs-api๋ฅผ ํ†ตํ•ด ์ฃผ๋กœ JS์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์–ธ์–ด์˜ IPFS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 

๋” ๋งŽ์€ ์–ธ์–ด์— ๋Œ€ํ•œ API ๋ฐ”์ธ๋”ฉ์„ ์–ป๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์„ ์กฐ์งํ™”ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. REST์™€ ์œ ์‚ฌํ•œ HTTP + JSON API์ž…๋‹ˆ๋‹ค. ์œ„์— ๋‚˜์—ด๋œ ์–ธ์–ด(๋˜๋Š” ๊ธฐํƒ€ ์–ธ์–ด)๋กœ ๋„์›€์„ ์ค„ ์ž์› ๋ด‰์‚ฌ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ์‘๋‹ตํ•ด ์ฃผ์‹ญ์‹œ์˜ค. (๊ทธ๋™์•ˆ ๊ตฌํ˜„์ž๋ฅผ ์œ„ํ•œ ์ง€์นจ ๋ฌธ์„œ๋ฅผ ์ค€๋น„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.) ๊ทธ๋Ÿฌ๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋™์‹œ์— ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž‘์—… ์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•œ ๋ฒˆ์— ๋ชจ๋‘ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

API์˜ Dart ๋ฐ/๋˜๋Š” Elixir ๊ตฌํ˜„์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‘ ์–ธ์–ด ๋ชจ๋‘ ๊ตฌ์ฒด์ ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  76 ๋Œ“๊ธ€

Ruby์— ๋Œ€ํ•œ ์ฝ”๋“œ ๊ฒ€ํ† ๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Rust API ๋ฐ”์ธ๋”ฉ ์˜ ์‹œ์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Ruby ๋ฐ”์ธ๋”ฉ ์ž‘์—…์— ๊ด€์‹ฌ์ด ์žˆ์ง€๋งŒ ์•„์ง ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์•Œ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ง€์นจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

C/C++ ์ž์›๋ด‰์‚ฌํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Julia ์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@lgierth @rschulman @Fryie @PayasR ๋ฐ @rened ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค -- ์—ฌ๊ธฐ์—์„œ ๋น ๋ฅธ ๋„ํฌ๋กœ ํ›„์† ์กฐ์น˜๋ฅผ

๊ทธ ๋™์•ˆ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์š”์ ์€ https://github.com/ipfs/node-ipfs-api ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ฃผ์š” ๋ถ€ํ’ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • https://github.com/ipfs/node-ipfs-api/blob/master/src/index.js -- API ๋ฉ”์†Œ๋“œ. ์™„์ „ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • https://github.com/ipfs/node-ipfs-api/blob/master/src/request-api.js -- ๊ฐ HTTP ์š”์ฒญ์„ API ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. (์ด ์ฝ”๋“œ๋Š” ์•„๋งˆ๋„ ์•ฝ๊ฐ„ ์ •๋ฆฌ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ง์„ ์ ์ž…๋‹ˆ๋‹ค).
  • https://github.com/ipfs/node-ipfs-api/blob/master/src/get-files-stream.js -- ํŒŒ์ผ ์ŠคํŠธ๋ฆผ. ์ด๊ฒƒ์€ ๋งค์šฐ js ์ „์šฉ์ด์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ๋ถ€๋ถ„์— ๋Œ€์ƒ ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ํ—ค๋”๊ฐ€ ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋‹ค์ค‘ ๋ถ€๋ถ„ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋” ์‰ฌ์šด ๊ฒฝ์šฐ go-ipfs ๋Œ€์‹  tar-stream(๊ทธ๋ฆฌ๊ณ  ๊ณง car-stream)์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋ฏธ ํ•ด๋‹น ์ฝ”๋“œ์˜ 50%๊ฐ€ ์žˆ์Œ).

@jbenet ๊ธฐ์กด ๋ฐ”์ธ๋”ฉ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋งํฌ๋กœ OP๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ipfs/py-ipfs ๋“ฑ

@cryptix py-ipfs ๋ฐ”์ธ๋”ฉ์ด ์•„๋‹ˆ๋ผ impl์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€๋Š” ipfs/py-ipfs-api ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์™€์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ™•์ธ,

  • ์›๊ฒฉ ๋ฐ๋ชฌ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ipfs --api <multiaddr> <cmd> ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค( ์ด PR ์ฐธ์กฐ ) -- ์ด๋Š” target nc ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ๋น„ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/ipfs/go-ipfs/blob/master/docs/implement-api-bindings.md
  • ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์ฒด go-ipfs API์˜ ๋งˆํฌ๋‹ค์šด ์‚ฌ์–‘์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ node-ipfs-api ๊ฐ€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Java ๊ตฌํ˜„์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ๋งํฌ๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

API Blueprint ๋Š”

๋งˆํฌ๋‹ค์šด์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด๋ฏ€๋กœ ํ•ญ์ƒ ๋ Œ๋”๋ง๋˜์ง€๋งŒ apiary.io ๋Š” ๋” ๋ณต์žกํ•œ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๊ฒƒ์€ ๋งˆํฌ๋‹ค์šด ์ด๊ณ  ์ด๊ฒƒ์€ ์ œ๊ฐ€ ์ตœ๊ทผ์— ์ž‘์—…ํ•œ ์ฒญ์‚ฌ์ง„์—

๋‚˜๋Š” node-api ์ธ๋ฑ์Šค๋ฅผ ์ •๋…ํ–ˆ๊ณ  ๋์  ์ด๋ฆ„์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋Œ€ํ•ด ๋‹จ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ƒํ˜ธ ์ž‘์šฉ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์ด์— ๋Œ€ํ•œ ์ง์ง“๊ธฐ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์•„์ง ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด Java ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/ianopolous/IPFS-API-Java ์ž์ฒด ํฌํ•จ๋˜๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ดˆ ํŒŒ์ด์ฌ ๋ฐ”์ธ๋”ฉ ์™„๋ฃŒ: https://github.com/amstocker/python-ipfs-api

์–ด๋–ค ์กฐ์–ธ์ด๋‚˜ ํ…Œ์ŠคํŠธ๋„ ํฌ๊ฒŒ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋กœ์ปฌ ์ปดํ“จํ„ฐ(Ubuntu 14.04.2/Python 2.7.6)์—์„œ ์ด๋ฏธ ์–ด๋Š ์ •๋„ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ์—์„œ Ruby ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•ด ๋Š๋ฆฌ์ง€๋งŒ ๊พธ์ค€ํ•œ ์ง„ํ–‰์„ ๊ธฐ๋Œ€ํ•˜๊ณ 

@amstocker python ๋ฐ”์ธ๋”ฉ์„ https://github.com/ipfs/python-ipfs-api/ ๋กœ ์ด๋™ ํ–ˆ์Šต๋‹ˆ๋‹ค (๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!). ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ ์ด์‚ฌ๋ฅผ ์›ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. (์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๋ฐ”์ธ๋”ฉ ์„ธํŠธ๋กœ ํ˜‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค)

@dysbulic ์€ API ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค. #ipfs์— ๋“ค๋ฅด๊ฑฐ๋‚˜ https://github.com/ipfs/go-ipfs ๋˜๋Š” https://github.com/ipfs/node-ipfs-api ์—์„œ ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@Fryie coolio, ๋‚˜๋Š” ๋‹น์‹ ์ด ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด์ง€๋งŒ, ํŠน๋ณ„ํžˆ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด, ์ž์œ ๋กญ๊ฒŒ IRC์— ํ•‘์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

์—ฌ๊ธฐ์—์„œ C++ API ๋ฐ”์ธ๋”ฉ์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/MichaelMure/Arbore-qt/tree/master/src/ipfs

์‹ค์ œ๋กœ ๋ฒ”์šฉ ๋ฐ Qt ๊ธฐ๋ฐ˜์€ ์•„๋‹ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ...

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ์—ฌ๊ธฐ์—์„œ IPFS HTTP-API์šฉ Scala์˜ ๋ž˜ํผ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค: https://github.com/cboddy/scala-ipfs-api/

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ธฐ์—ฌ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ(๋˜๋Š” ์š”์ฒญ์ด๋‚˜ ์ œ์•ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ) ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์™„๋ฃŒ๋˜๋ฉด ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ข‹์•„ ๋ณด์—ฌ! @MichaelMure ๋ฐ @cboddy ๊ฐ€ ์ผ์ • ์ˆ˜์ค€์˜ ์™„๋ฃŒ์— ๋„๋‹ฌํ•˜๋ฉด ์•Œ๋ ค ์ฃผ์‹œ๋ฉด ipfs/ ์กฐ์ง์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์›ํ•˜๋Š” ๊ฒฝ์šฐ).

@jbenet ์ด์ œ Scala/JVM ๋ฐ”์ธ๋”ฉ์ด ๋ฌธ์„œ์— ์—ด๊ฑฐ๋œ ๊ธฐ๋ณธ ๋ช…๋ น์— ๋Œ€ํ•ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ipfs --๋„์›€๋ง

๋ฉ”์‹œ์ง€, ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ช…๋ น ๋ฐ ๊ธฐํƒ€ ์ผ๋ถ€ ๋ช…๋ น๊ณผ ํ•จ๊ป˜. ๋‚˜๋จธ์ง€๋Š” ์ข€ ๋” ๊ณต์‹์ ์ธ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์ฃผ์— ๊ณง๋ฐ”๋กœ ์—ฐ๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ipfs/์— ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”.

@cbody ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค!! ์ €์žฅ์†Œ๋ฅผ ipfs ์กฐ์ง์œผ๋กœ ์ด์ „ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹น์‹ ์„ ์กฐ์ง์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. repo๋ฅผ ipfs ์‚ฌ์šฉ์ž(๋˜๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ €)์—๊ฒŒ ์ „์†กํ•˜๊ธฐ

@jbenet ๋•๋ถ„์— ํ™•์‹คํžˆ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

๋ฉ‹์ง„ ์ƒˆ Python, Java ๋ฐ Scala API ๋ฐ”์ธ๋”ฉ์„ ํฌํ•จํ•˜๋„๋ก ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! :๋ฐ•์ˆ˜::๋ฐ•์ˆ˜:

Go ๋ฐ”์ธ๋”ฉ์„ ๋ฉ‹์ง€๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ...

๋ฃจ์•„ ํ• ๊ฒŒ์š”!

๋ฃจ์•„ ํ• ๊ฒŒ์š”!

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ipfs ์กฐ์ง์— ๋„ฃ์„ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์„ ๋•Œ Lmk! :)

์ €๋Š” Swift API ๋ฐ”์ธ๋”ฉ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์ค„(Linux)์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” cURL์„ ์‚ฌ์šฉํ•˜๋Š” ์žฌ๋ฏธ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋ผ์ด๋„ˆ ์˜ˆ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

ipfs --help ipfs add --help ๋“ฑ์„ ๋ณด๋ฉด
API ๋ฌธ์„œ( https://ipfs.io/docs/api/ )๋ฅผ ์ฐธ์กฐํ•˜๊ณ  HTTP API๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ "์žฌ๋ฏธ" ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋งž์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. :)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,
๋น…ํ„ฐ ๋น„์—˜ํ™€๋ฆ„
(+34) 672 15 90 89

2015๋…„ 11์›” 5์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 8์‹œ 24๋ถ„, bitcoinmeetups.org < [email protected]

์ผ๋‹ค:

cURL์„ ์‚ฌ์šฉํ•˜๋Š” ์žฌ๋ฏธ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋ผ์ด๋„ˆ ์˜ˆ์ œ๋Š” ๋ช…๋ น์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ธ(๋ฆฌ๋ˆ…์Šค)?

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500.

์ €๋Š” PHP์—์„œ API ๋ฐ”์ธ๋”ฉ ์ž‘์—…์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ipfs.pics์— ํ•„์š”ํ•œ IPFS ๋ช…๋ น์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ผ ๋ฟ์ด์ง€๋งŒ ๋” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ping์„ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@cloutier ์›ํ•˜๋Š” ๊ฒฝ์šฐ php-ipfs-api ๋ผ๋Š” ipfs ์กฐ์ง ์•„๋ž˜์— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@whyrusleeping ๋‚˜๋Š” ๋™์ผํ•œ ๊ฐ•๋ ฅํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค๋กœ ๊ทธ๊ฒƒ์„ ์ถœํŒํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„?

์ด์ œ Swift API ๋ฐ”์ธ๋”ฉ ์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋ฉ‹์ง„ iOS/OS X IPFS ํ”„๋กœ์ ํŠธ์™€ ipfs org๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ž์œ ๋กญ๊ฒŒ ๋Œ“๊ธ€์„ ๋‹ฌ๊ณ  ์‚ฌ์šฉํ•˜์„ธ์š”. :)

@whyrusleeping ๋‚˜๋Š” ๋™์ผํ•œ ๊ฐ•๋ ฅํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค๋กœ ๊ทธ๊ฒƒ์„ ์ถœํŒํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„?

ํ . ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฐ์ •ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ์‹ค์ˆ˜๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ipfs org์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋„๋ก ๊ฐ•๋ ฅํ•˜๊ฒŒ ์˜์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@cloutier ๋ฐ”์ธ๋”ฉ์— ๊ฐ•๋ ฅํ•œ ์‚ฌ๋ณธ์ด ํ•„์š”ํ•œ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ญ๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”์ธ๋”ฉ์ด ๊ฐ€์žฅ ํ•„์š”ํ•œ ๊ณณ์ธ ์ƒ์—…์  ์‚ฌ์šฉ์„ ์—„๊ฒฉํžˆ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋” ์ƒ๊ฐํ•ด๋ณด๋ฉด - ์šฐ๋ฆฌ๋Š” ํ—ˆ์šฉ์ ์ธ PHP์˜ ๊ณต์‹ ๋ฐ”์ธ๋”ฉ(MIT/BSD/Apache2)์ด ํ™•์‹คํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. @cloutier ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@cloutier @jbenet LGPL์ด ํ•ฉ๋ฆฌ์ ์ธ ํƒ€ํ˜‘์ด ๋ ๊นŒ์š”?

์•„๋‹ˆ์š”, AFAIK LGPL์€ MIT/BSD/Apache2.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ข€ ๋” ์ƒ๊ฐํ•ด ๋ณด์•˜๊ณ  IPFS์™€ ๊ฐ™์€ ๊ณต๊ฐœ ํ‘œ์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด์— ๋” ๋‚˜์€ ๋Š์Šจํ•œ ๋ผ์ด์„ ์Šค๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„ํŒŒ์น˜ 2.0์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@davidar LGPL์€ ์ข‹์€ ์ƒ๊ฐ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ๋ฐ”์ธ๋”ฉ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋งŽ์€ ๋ผ์ด์„ ์Šค(MIT ๋ฐ ๋…์  ์ฝ”๋“œ ํฌํ•จ)์— ์ž„๋ฒ ๋”ฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ PHP๋Š” ๊ฑฐ์˜ ์„œ๋ฒ„์—์„œ๋งŒ ์‹คํ–‰๋˜๊ณ  copyleft ์ ˆ์€ ๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ดํ•œ ๊ฒฝ์šฐ

@jbenet ์ฐธ๊ณ ๋กœ AGPL์€ ๋น„์˜๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๊ธฐ์ˆ ์ ์ธ ์ด์œ ๋กœ ๊ฐ•๋ ฅํ•œ ์นดํ”ผ๋ ˆํ”„ํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ ์ •์น˜์ ์ธ ์ด์œ ๋กœ ์›ํ•ฉ๋‹ˆ๋‹ค.

@cloutier ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@cloutier ์˜ˆ, copyleft๋Š” ์ด์™€ ๊ฐ™์€ ํ•˜์œ„ ์ˆ˜์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค๋Š” IPFS(์˜ˆ: ipfs.pics)์— ์žˆ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://www.gnu.org/licenses/license-recommendations.html์—์„œ

์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Ogg Vorbis(MP3 ์˜ค๋””์˜ค์™€ ๊ฒฝ์Ÿ) ๋ฐ WebM(MPEG-4 ๋น„๋””์˜ค์™€ ๊ฒฝ์Ÿ)๊ณผ ๊ฐ™์€ ์ œํ•œ๋œ ํ‘œ์ค€๊ณผ ๊ฒฝ์Ÿํ•˜๋Š” ๋ฌด๋ฃŒ ํ‘œ์ค€์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ์€ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋Œ€์˜๋ฅผ ๋ฐœ์ „์‹œํ‚ค๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋ฉฐ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์˜ ์นดํ”ผ๋ ˆํ”„ํŠธ๊ฐ€ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŠน๋ณ„ํ•œ ์ƒํ™ฉ์—์„œ๋Š” Apache License 2.0์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

@davidar ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ฒƒ์„ ์•„์ฃผ ์ž˜

๋‚˜๋Š” PHP ๋ฐ”์ธ๋”ฉ์˜ ์‹œ์ž‘์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/cloutier/php-ipfs-api

๊ธฐ๋ณธ์ ์œผ๋กœ ipfs.pics์—์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์ฝ”๋“œ์ด์ง€๋งŒ Apache 2.0์—์„œ ๋ผ์ด์„ ์Šค๊ฐ€ ๋‹ค์‹œ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

cc @mekarpeles

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ API ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ipfs/ipfs/clients(๋ฐ ์œ ์‚ฌํ•˜๊ฒŒ ipfs/ipfs/implementations) ๋‚ด์˜ ํŒŒ์ผ๋กœ ์ง‘๊ณ„ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

์ด๊ฒƒ์€ (์ด ๋ฌธ์ œ๋ณด๋‹ค) ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋„ ๋” ๋‚˜์€ ๊ฒฝํ—˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ํ† ๋ก ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์„œ์—์„œ ์ด ๋ฌธ์ œ์— ์ถ”๊ฐ€๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€?

C#/.NET ์—ฌ๊ธฐ . ์ €๋Š” ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋ฌด์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ตœ์†Œํ•œ 1~2๋…„ ๋™์•ˆ ์ง€์›/๊ฐœ์„ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ ๊ทธ๋ฆฌ๊ณ  @PayasR @jbenet @MichaelMure ํŠนํžˆ,

https://github.com/vasild/cpp-ipfs-api ์—์„œ C++ API ๋ฐ”์ธ๋”ฉ์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ Travis ๋ฐ Coveralls์™€ ๋ช‡ ๋ฒˆ ์‹ธ์›Œ๋ณธ ํ›„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๊ฐ€ 100%๋กœ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ API(https://github.com/ipfs/interface-ipfs-core/tree/master/API)์˜ ๋ธ”๋ก, ๊ตฌ์„ฑ, ํŒŒ์ผ, ์ผ๋ฐ˜, ๊ฐœ์ฒด, ํ•€ ๋ฐ ์Šค์›œ ๋ฉ”์„œ๋“œ ์ง‘ํ•ฉ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ๋‚ด๊ฐ€ ๊ณง ๋๋‚ด๋ ค๊ณ  ํ•  dag์™€ dhs์ž…๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ!

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”! ๋‚˜๋Š” ๋‹น์‹ ์ด ์ž˜ํ•˜๊ณ  ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! Visual Basic .NET์—์„œ API ๋ฐ”์ธ๋”ฉ์„ ๋งŒ๋“ค ๊ณ„ํš์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

.NET ๊ตฌํ˜„์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@Coder206 https://github.com/richardschneider/net-ipfs-core ๋ฐ https://github.com/richardschneider/net-ipfs-api๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

C#์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ VB.Net์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@jbenet ๋‚ด PHP ํด๋ผ์ด์–ธํŠธ๋ฅผ ipfs https://github.com/digitalkaoz/php-ipfs ์— ๋ฐ”์น˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

MIT ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด repo๊ฐ€ ipfs ์กฐ์ง์œผ๋กœ ์ด์ „๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค...

@digitalkaoz ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ „์†กํ•˜๊ณ  IPFS ์กฐ์ง์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ https://github.com/ipfs/ipfs#api -client-libraries ์˜ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

btw ์—ฌ๋Ÿฌ๋ถ„, ์ด์ œ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ๋กœ๊ณ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/ipfs/ipfs#api -client-libraries์— ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด PRํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ํ•ญ๋ชฉ์ด ์—†์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

๋˜ํ•œ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด https://github.com/ipfs/ipfs#api-client-libraries์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์™„์„ฑ๋„์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :)

@diasdavid ๋Š” ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :) PR์„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@digitalkaoz ๊ฐ€์„ธ์š” :)

@diasdavid https://github.com/vasild/cpp-ipfs-api ๋ฅผ https://github.com/ipfs/cpp-ipfs-api๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€

@vasild ์šฐ๋ฆฌ๋Š” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ lib์˜ ์บกํ‹ด์œผ๋กœ ๊ณ„์† ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@diasdavid ์ตœ๊ทผ์— ์ง์—…์„ ๋ณ€๊ฒฝํ–ˆ๊ณ  cpp-ipfs-api์— ์• ์ •์„ ์ค„ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋ฉ”์ธ API์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ๊ตฌํ˜„). /ipfs/ ์•„๋ž˜๋กœ ์ด๋™ํ•˜๋ฉด ๊ฐ€์‹œ์„ฑ์ด ๋†’์•„์ ธ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OTOH์— ์ ๊ทน์ ์œผ๋กœ ์ž‘์—…ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ฑ„ํƒํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด /vasild/ ์•„๋ž˜์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. IMO๋Š” /ipfs/๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์œผ๋ฉฐ ๊ฒฐ๊ตญ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋‚˜์š”?

@vasild ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ท€ํ•˜์˜ ์ œ์•ˆ์„ ๋”ฐ๋ฅด๊ณ  README์— ๊ตฌํ˜„ ์ƒํƒœ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์•Œ๋ ค์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ณต๊ฐœ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ƒˆ ๊ธฐ์—ฌ์ž๋ฅผ ํ™˜์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด + IPFS ์กฐ์ง์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ IPFS All Hands์—์„œ IPFS ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์–ธ๊ธ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@diasdavid https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575 ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? (์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!)

@diasdavid ๊ฐ€ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก์— ๋Œ€ํ•œ PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

On Mi., 2017๋…„ 8์›” 23์ผ 17:37 Vasil Dimov [email protected] ์ž‘์„ฑ:

@diasdavid https://github.com/diasdavid vasild/ cpp-ipfs-api@b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
์ข‹์•„์š”? (์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!)

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet ์•ˆ๋…•ํ•˜์„ธ์š”! ์ด๋ฏธ 2๋…„ ๋™์•ˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ๋…น ๋งํฌ๋ฅผ ์ƒˆ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.. rust-ipfs-api
๋‚ด ๊ตฌํ˜„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์›์‹œ์ด์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

@rmnoff ๋Œ€๋‹จํ•ด! PR์„ ์—ด์–ด ๋ชฉ๋ก์— ํฌํ•จ์‹œํ‚ค์‹ญ์‹œ์˜ค. (์˜ˆ์‹œ https://github.com/ipfs/ipfs/pull/265)

@vasild ์ž˜

@diasdavid ์™„๋ฃŒ! :)

API์˜ Dart ๋ฐ/๋˜๋Š” Elixir ๊ตฌํ˜„์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‘ ์–ธ์–ด ๋ชจ๋‘ ๊ตฌ์ฒด์ ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งŽ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค :)

2017๋…„ 10์›” 7์ผ ํ† ์š”์ผ ์˜ค์ „ 11:00 Tensor-Programming [email protected]
์ผ๋‹ค:

API์˜ Dart ๋ฐ/๋˜๋Š” Elixir ๊ตฌํ˜„์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? NS
๋‘ ์–ธ์–ด ๋ชจ๋‘ ๊ตฌ์ฒด์ ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ
๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๋‘˜ ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/ipfs/ipfs/issues/83#issuecomment-334917974 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/ABL4HIInzOWvWTAIWjeRqR_mRuz22HC7ks5spy-ZgaJpZM4FuFH9
.

๋‚˜๋Š” Elixir API์—์„œ ์•ฝ๊ฐ„์˜ ์ง„์ „(๋ช…๋ น์˜ ์•ฝ 65-70%)์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„๋ณด๊ณ  ๊ทธ๊ฒƒ์ด ์Šค๋„ˆํ”„์ธ์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด; ๊ฐ์‚ฌ ๋“œ๋ฆฌ๊ณ  ์‹ถ๊ตฐ์š”. ์—ฌ์ „ํžˆ ๋งŽ์€ ๋ช…๋ น๊ณผ ๋ฌธ์„œ, ํ…Œ์ŠคํŠธ ๋ชจ๋“ˆ(๋ฐ circleCI)์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ(๋ฉ€ํ‹ฐํŒŒํŠธ ์–‘์‹ ์ง€์› ๋“ฑ) ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ์˜ ์ƒ๋‹นํ•œ ์–‘์„ ๊ตฌํ˜„ํ•  ๋•Œ๊นŒ์ง€ ์ด ์‹œ์ ์—์„œ ๋ฉฐ์น /๋ช‡ ์ฃผ ๋งŒ์— ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/tensor-programming/Elixir-Ipfs-Api

ํŽธ์ง‘ : ์•„๋ฌด๋„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ €์žฅ์†Œ๋ฅผ ํฌ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹น์‹ ๋“ค๋กœ๋ถ€ํ„ฐ ์‘๋‹ต์„๋ฐ›์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•˜๊ณ  ํ•œ ๋‹ฌ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์€ ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๋ชจ๋“  API ์—”๋“œํฌ์ธํŠธ๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์„ ํ™•์žฅํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

elm-ipfs-binding์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•„์š”ํ•œ ๊ฒฝ์šฐ Perl ๋ฐ”์ธ๋”ฉ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์Šค์ผˆ ์ €๋Š” ๊ธฐ๊บผ์ด ์ž์›๋ด‰์‚ฌ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Objective-C๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์•ผ ํ•  ์ž‘์—… ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/ipfs/ipfs#api -client-libraries ์ฐธ์กฐ

IPFS๋ฅผ ์ด์šฉํ•œ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ ํ˜„ํ™ฉ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
Android ์•ฑ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฝค ์ข‹์Šต๋‹ˆ๋‹ค.
์ฃผ์š” ๋‹จ๊ณ„๋Š” ๋จผ์ € ๋ชจ๋ฐ”์ผ์—์„œ ipfs ๋ฐ๋ชฌ์„ ์‹œ์ž‘ํ•˜๊ณ  ํŒŒ์ผ ์—…๋กœ๋“œ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ Android ์•ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Android SDK๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ œ ์ƒ๊ฐ์—๋Š” ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋‚˜ ํšŒ์‚ฌ๊ฐ€ ๋ชจ๋ฐ”์ผ ์•ฑ์˜ ipfs ์‹œ์Šคํ…œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งŽ์€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด์— ๋Œ€ํ•œ ๊ณ„ํš์ด๋‚˜ ๋…ผ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
@jbenet

Ipfs objc API?

์˜ˆ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ํŒŒ์ผ ๋Œ€์‹  ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํšจ์œจ์ ์ธ.

TomorJM [email protected]ไบŽ2018ๅนด9ๆœˆ13ๆ—ฅๅ‘จๅ›› ไธ‹ๅˆ3:45ๅ†™้“๏ผš

Ipfs objc API?

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

๋‚˜๋Š” ์–ผ๋งˆ ์ „์— ๋˜ ๋‹ค๋ฅธ Common Lisp ๋ฐ”์ธ๋”ฉ ์„ธํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋กœ ์—ฌ๊ธฐ ์— ์žˆ์Šต๋‹ˆ๋‹ค. GitHub ๋ฏธ๋Ÿฌ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ธฐ์—ฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ https://discuss.ipfs.io ์—์„œ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰