ã€ãŒãµãªã¢ã ãããã¯ãã§ãŒã³ã¯ãã¹ããŒãã³ã³ãã©ã¯ããšãåæ£åDAppã¢ããªã±ãŒã·ã§ã³ïŒåæ£åã¢ããªã±ãŒã·ã§ã³ïŒãäœæããæ©èœã«é¢ããŠèå³æ·±ããã®ã§ãã ãã ãããã®ãããªã¢ããªã±ãŒã·ã§ã³ã«ã¯ãåæ£ããŒã¿ãŠã§ã¢ããŠã¹ãå¿ èŠã§ãã
ãããã¯ãã§ãŒã³ã«å€§éã®ããŒã¿ãä¿åãããšãå€å€§ãªè²»çšããããå¯èœæ§ããããŸãã Ethereum Swarmãªã©ã®åæ£ã¹ãã¬ãŒãžãå©ãã«ãªããŸãïŒãswarmãã¯ãswarmãããheapããæå³ããŸãïŒã ã€ãŸããEthereum Swarmã¯ãEthereumãã¢ããŒãã¢ãããã¯ãŒã¯äžã§å®è¡ããããœãããŠã§ã¢ã§ãã ããŒãã®ãã£ã¹ã¯äžã«ããŒã¿ã®åæ£ã¹ãã¬ãŒãžãæäŸãããã®ææè ã¯ãªãœãŒã¹ãäžè¬çã«äœ¿çšããŸãã
ãã®èšäºã§ã¯ããã¯ãããžãŒããã¹ãããEthereum Swarmã«ããŒã¿ãä¿åããåæ£ã¢ããªã±ãŒã·ã§ã³ãéçºããããã«ãEthereumãã©ã€ããŒããããã¯ãŒã¯ã®ããŒã«ã«Ethereum Swarmãã¹ããã»ããã¢ããããæ¹æ³ã«ã€ããŠèª¬æããŸãã
DAppã«åæ£åããŒã¿ãŠã§ã¢ããŠã¹ãå¿ èŠãªçç±
Ethereumãããã¯ãã§ãŒã³ïŒä»ã®ãããã¯ãã§ãŒã³ãšåæ§ïŒã¯ãæªæã®ãããŠãŒã¶ãŒã«ããåœé ãæ»æããéåžžã«ããä¿è·ãããåæ£ãžã£ãŒãã«ã§ãã
ãã®ä¿è·ã¯ãäžæ¹ã§ã¯ããã·ã¥ã¢ã«ãŽãªãºã ãšæå·åã¢ã«ãŽãªãºã ãæ°ãããããã¯ããããã¯ãã§ãŒã³ã«è¿œå ããããã®ã¢ã«ãŽãªãºã ããããŠä»æ¹ã§ã¯ããŒã¿ã¹ãã¬ãŒãžãšãã©ã³ã¶ã¯ã·ã§ã³åŠçãæäŸããå€æ°ã®ã€ãŒãµãªã¢ã ããŒãã䜿çšããŠéæãããŸãã ãããã®ãµã€ãã¯äžçäžã«ãããŸãã ãããã¯ãã§ãŒã³ããç Žå£ãããã®ã«ååãªãªãœãŒã¹ã¯èª°ãæã£ãŠããããããã¯ããã«èšé²ãããæ å ±ã«èªä¿¡ãäžããŸãã
ãSkyNetã¯ã©ãã§ããã©ãã§ãåäžã®ã»ã³ã¿ãŒã§ã¯ãããŸããã ãªãã«ãããã®ã¯äœããããŸããããïŒã¿ãŒãããŒã¿ãŒ3ïŒãã·ã³ã®å°é ïŒ
ããããåè¿°ããããã«ããããã¯ãã§ãŒã³ã¯ããã¥ã¡ã³ããç»åã補åã®èª¬æã泚æãªã©ã®å€§éã®ããŒã¿ãä¿åããã®ã«ã¯é©ããŠããŸããã ãã¡ãããçè«çã«ã¯ããããã¯ãã§ãŒã³ã«æžã蟌ãããšãã§ããŸãããèšé²ã®ã³ã¹ããé«ãããŸãã
倧容éã®DAppããŒã¿ãã©ãã«ä¿åããŸããïŒ
ããšãã°ããããã¯ãã§ãŒã³ã䜿çšããŠç»åã®èäœæš©ãä¿®æ£ãããããªã³ã©ã€ã³ã¹ãã¢ã§ã®æ³šæã®è©³çŽ°ãæ°žä¹ ã«ä¿åããããçŽã®ããã¥ã¡ã³ãã®ã¹ãã£ã³ãä¿åãããããŸãã ããã§ã¯ãä»ã®ããŒã¿ãŠã§ã¢ããŠã¹ãå¿ èŠã§ãã
ãã¡ãããDAppããŒã¿ãä¿åããã«ã¯ããµãŒããŒãã¯ã©ãŠãã¹ãã¬ãŒãžå ã®å Žæãã¬ã³ã¿ã«ããããä»ã®åŸæ¥ã®ã¹ãã¬ãŒãžã䜿çšã§ããŸãã ãã ãããµãŒããŒãã¯ã©ãŠããããã³ã¹ãã¬ãŒãžã¯ãäŒæ¥ãŸãã¯å人ã«ãã£ãŠå¶åŸ¡ãããŸãã äœããã®çç±ã§ãããã¯ãããããäŸµå ¥è ã«æ»æããããããå ŽåããããŸãã
éäžåã¹ãã¬ãŒãžã䜿çšããå ŽåãDAppã®äž»ãªå©ç¹ã¯å€±ãããŸã-æ»æãæªæã®ããã¢ã¯ã·ã§ã³ã«å¯Ÿããæµæåã ããã«ãã¢ããªã±ãŒã·ã§ã³ã¯åæ£åãããªããªããŸãã ã€ãŸããDAppãžã®ä¿¡é Œã倱ãããŸãã çµå±ãéäžåã¹ãã¬ãŒãžã®æäœããããã¯ãŸãã¯äžæãããšããããã¯ãã§ãŒã³ã䜿çšããŠDAppã«ãã£ãŠèšé²ãããäžéšã®æ å ±ãžã®ã¢ã¯ã»ã¹ã倱ãããDAppã䜿çšãããã¹ãŠã®ãã€ã³ãã倱ãããŸãã
Ethereum Swarmã®ä»çµã¿
æ°äžã®Ethereum Swarmãããã¯ãŒã¯ããŒããäžçäžã«æ£åšããŠããããŠãŒã¶ãŒãããŠã³ããŒãããããŒã¿ãä¿åããããã®ãªãœãŒã¹ãæäŸããŠãããšããŸãã ããŒã¿ãæçš¿ããã³ã¹ãã¯åŸæ¥ã®ã¯ã©ãŠãã¹ãã¬ãŒãžãããäœããªããŸããããµã€ãææè ã¯ãªãœãŒã¹ãæäŸããããšã«å¯Ÿããå ±é ¬ãåãåããšæ³å®ãããŠããŸãã
ãŠãŒã¶ãŒããã¡ã€ã«ãEthereum Swarmãããã¯ãŒã¯ã«ã¢ããããŒããããšããã®ãã¡ã€ã«ã¯æåã«ããããã®ããŒãã«ç§»åããŸãã 次ã«ãåæäžã«ãã¡ã€ã«ãä»ã®ãããã¯ãŒã¯ããŒãã«è€è£œãããŸãã Ethereumãããã¯ãŒã¯äžã§å®è¡ãããbzzãããã³ã«ã䜿çšããŸãã
å°ãªããšã1ã€ã®Ethereum Swarmãã¹ããå®è¡ãããŠããéããããŠã³ããŒãããããã¡ã€ã«ã¯åŒãç¶ã䜿çšå¯èœã§ãã ããã«ãããããŒã¿ã¹ãã¬ãŒãžã®ä¿¡é Œæ§ã確ä¿ãããŸãã èšå€§ãªæ°ã®Ethereum SwarmããŒããç¡å¹åãŸãã¯ãããã¯ããããšã¯ã»ãšãã©äžå¯èœã§ãã
ããã«ã€ããŠã¯ã Ethereum Swarm Webãµã€ãã§è©³ããèªãããšãã§ããŸãã
ææžã¯ããããŸã§ã®ãšãããEthereum Swarmã¯æŠå¿µå®èšŒïŒPOCãæŠå¿µå®èšŒïŒãšããŠããŒãžã§ã³0.2ã§å®è£ ãããŠãããšè¿°ã¹ãŸããã ãã®ããŒãžã§ã³ã§ã¯ãããŠã³ããŒãããããŒã¿ã®å®å šæ§ã¯ä¿èšŒãããŸããã 2018幎ã®ç¬¬2ååæã«ã¯å®å®ãããªãªãŒã¹ãäºå®ãããŠãããããããã»ã©é·ãã¯ããããŸããã åæã«ãEthereum Swarmãããã¯ãŒã¯ã«ãªãœãŒã¹ãæäŸããããã®å ±é ¬ã·ã¹ãã ãäœæããäºå®ã§ãã
ãã ããäœãåŸ ã€ããšã¯ãããŸããããä»ããEthereum Swarmã®ãã¹ããéå§ããŸãã ãã©ã€ããŒãEthereumãããã¯ãŒã¯ã«ç¬èªã®Ethereum SwarmããŒããäœæããŸãã
Debianããã³Ubuntuãžã®Ethereum Swarmããã³Gethã®ã€ã³ã¹ããŒã«
Debianããã³UbuntuãµãŒããŒãžã®Ethereum Swarmã®ã€ã³ã¹ããŒã«ã«ã€ããŠèª¬æããŸãã äžè¬ã«ããã®æ瀺ã«åŸãå¿ èŠããããŸãããããã€ãã®ãã¥ã¢ã³ã¹ããããŸãã
ã€ã³ã¹ããŒã«ã«è¡ã
äœæ¥ãéå§ããåã«ã1.9.2以äžã®æ°ããããŒãžã§ã³ã®Goãã€ã³ã¹ããŒã«ããããšãéåžžã«éèŠã§ãã Debianããã³Ubuntuãªããžããªã«ã¯Goã®å€ãããŒãžã§ã³ãååšããå¯èœæ§ãããããããœãŒã¹ããã€ã³ã¹ããŒã«ããŠãã ããã
éç¹æš©ãŠãŒã¶ãŒãšããŠãœãŒã¹ã³ãŒããããŠã³ããŒãããŠè§£åããŸãã
$ curl -O https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz $ sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
ãŠãŒã¶ãŒãã£ã¬ã¯ããªgoãäœæããç°å¢å€æ°ãèšå®ããŸãã
$ mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc $ echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc $ source ~/.bashrc
ç°å¢å€æ°ãèšå®ãããŠããããšã確èªããŸãã
$ printenv | grep go PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/frolov/go/bin:/usr/local/go/bin GOPATH=/home/frolov/go
Debianãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ã.bashrcãã¡ã€ã«ã®ä»£ããã«.profileãã¡ã€ã«ã䜿çšããŸãã åçŽã«ã³ããŒã§ããŸãïŒ
cp .bashrc .profile
goããŒãžã§ã³ã確èªããŸãã
$ go version go version go1.9.2 linux/amd64
goããŒãžã§ã³ã¯å°ãªããšã1.9.2ã§ãªããã°ãªããŸããã
以åã«goã®å€ãããŒãžã§ã³ãOSãªããžããªããã€ã³ã¹ããŒã«ããå Žåã¯ã次ã®ããã«åé€ããŸãã
$ sudo apt-get remove golang-go $ sudo apt-get remove --auto-remove golang-go
Gethããã³Ethereum Swarmãã€ã³ã¹ããŒã«ããŸã
ãªããžããªãããœãŒã¹ã³ãŒããããŠã³ããŒãããŸãã
$ mkdir -p $GOPATH/src/github.com/ethereum $ cd $GOPATH/src/github.com/ethereum $ git clone https://github.com/ethereum/go-ethereum $ cd go-ethereum $ git checkout master $ go get github.com/ethereum/go-ethereum
gethã¯ã©ã€ã¢ã³ããšswarmããŒã¢ã³ã®ã³ã³ãã€ã«ãéå§ããŸãã
$ go install -v ./cmd/geth $ go install -v ./cmd/swarm
ã€ã³ã¹ããŒã«ãããŠããgethããã³swarmã®ããŒãžã§ã³ã確èªããŸãã
$ geth version Geth Version: 1.8.0-unstable Architecture: amd64 Protocol Versions: [63 62] Network Id: 1 Go Version: go1.9.2 Operating System: linux GOPATH=/home/frolov/go GOROOT=/usr/local/go $ swarm version Swarm Version: 1.8.0-unstable Network Id: 0 Go Version: go1.9.2 OS: linux GOPATH=/home/frolov/go GOROOT=/usr/local/go
Ethereum Swarmãèµ·åããããã®ãã©ã€ããŒããããã¯ãã§ãŒã³ã®æºå
ãŸãããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã«geneis.jsonãã¡ã€ã«ãäœæããŸãã
{ "config": { "chainId": 1907, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "40", "gasLimit": "5100000", "alloc": {} }
次ã«ãããŒã ãã£ã¬ã¯ããªã«ãµããã£ã¬ã¯ããªnode1ãäœæããŸãã
$ mkdir node1
ããŒãã¯ãinit_node.shããããã¡ã€ã«ã䜿çšããŠåæåã§ããŸãã
geth --datadir node1 account new geth --datadir node1 init genesis.json
ãã®ãã¡ã€ã«ãå®è¡ãããšãã¢ã«ãŠã³ããäœæããããã¹ã¯ãŒããèŠæ±ãããŸãããã¹ã¯ãŒãã¯å®å šãªå Žæã«ä¿åããå¿ èŠããããŸãã
ããŒããéå§ããstart_node.shãã¡ã€ã«ãäœæããŸãã
geth --datadir node1 --nodiscover --mine --minerthreads 1 --maxpeers 0 --verbosity 3 --networkid 98765 --rpc --rpcapi="db,eth,net,web3,personal,web3" console
ãã®ãã¡ã€ã«ãå®è¡ããDAGçæãå®äºããã®ãåŸ ã¡ãŸãã
attach_node.shãã¡ã€ã«ã䜿çšããŠãgethã³ã³ãœãŒã«ãéãããã©ã€ããŒãããŒãã«æ¥ç¶ã§ããŸãã
geth --datadir node1 --networkid 98765 attach ipc://home/frolov/node1/geth.ipc
swarmããŒã¢ã³ã®å®è¡
ããã§ã¯ããµã€ãã®åæå段éã§äœæãããã¢ã«ãŠã³ãã®ã¢ãã¬ã¹ãå¿ èŠã«ãªããŸãã ä¿åããŠããªãå Žåã¯åé¡ãããŸããã attach_node.shã¹ã¯ãªããã§éãããgethã³ã³ãœãŒã«ã«ç§»åããããã§æ¬¡ã®ã³ãã³ããçºè¡ããŸãã
> web3.eth.accounts ["0xcd9fcb450c858d1a7678a2bccf36ea5decd2b09b"]
ãã®ã³ãã³ãã¯ãäœæãããã¢ã«ãŠã³ãã®ã¢ãã¬ã¹ã衚瀺ããŸãã åæåçŽåŸãã¢ãã¬ã¹ã¯1ã€ã ãã«ãªããŸãã
Ethereum SwarmããŒã¢ã³ãã·ã³ã°ã«ããŒãã¢ãŒãïŒã·ã³ã°ã«ãã³ïŒã§èµ·åããã«ã¯ãswarm_start.shã³ãã³ããã¡ã€ã«ãæºåããŸãã
swarm --bzzaccount cd9fcb450c858d1a7678a2bccf36ea5decd2b09b --datadir "/home/ethertest/data/node1" --maxpeers 0 -nodiscover --verbosity 4 --ens-api /home/ethertest/data/node1/geth.ipc
ãµã€ãã«äœæãããã¢ã«ãŠã³ãã®ã¢ãã¬ã¹ãã0xããªãã§ç€ºããŸãã
ããŒã¢ã³ãèµ·åãããšãã«ã以åã«äœæããã¢ã«ãŠã³ãã®ãã¹ã¯ãŒããå ¥åããå¿ èŠããããŸãã
$ sh swarm_start.sh Unlocking swarm account 0xCD9Fcb450C858D1A7678a2bCCf36EA5decd2B09B [1/3] Passphrase:
Ethereum Swarmãžã®ãã¡ã€ã«ã®ã¢ããããŒã
ãã¡ã€ã«ãã¢ããããŒãããæãç°¡åãªæ¹æ³ã¯ãupãã©ã¡ãŒã¿ãŒãæå®ããswarmã³ãã³ãã䜿çšããããšã§ãã ããã«ãããŠã³ããŒããããã¡ã€ã«ãžã®ãã¹ãæå®ããå¿ èŠããããŸãã
$ swarm up start_node.sh f2073b8f0cf0cfe1e165060882da71a37bb6fd97bdec6be71b4f66ebcf0aba9f
ãã®ã³ãã³ãã¯ãããŠã³ããŒããããã¡ã€ã«ã®ããã·ã¥ãè¿ããŸãã ããã·ã¥ã䜿çšããŠãã¡ã€ã«ãèªã¿åãããšãã§ããŸãã ãããè¡ãã«ã¯ãwgetãŸãã¯curlã³ãã³ãã䜿çšããŸãã
$ wget http://localhost:8500/bzz:/f2073b8f0cf0cfe1e165060882da71a37bb6fd97bdec6be71b4f66ebcf0aba9f/ $ curl http://localhost:8500/bzz:/f2073b8f0cf0cfe1e165060882da71a37bb6fd97bdec6be71b4f66ebcf0aba9f/
wgetã³ãã³ãã䜿çšãããšããã¡ã€ã«ã®å 容ãããŒã«ã«ãã£ã¹ã¯ã«ä¿åã§ããŸãã -Oãªãã·ã§ã³ã䜿çšããŠããã¡ã€ã«åãæå®ããŸãã curlã³ãã³ãã¯ãã¡ã€ã«ã®å 容ãã³ã³ãœãŒã«ã«åºåããããããã®åœ¢åŒã§ã¯ãã€ããªãã¡ã€ã«ã®å 容ã衚瀺ããããã«äœ¿çšããªãã§ãã ããã URLã®æåŸã«ã¹ã©ãã·ã¥ãå¿ èŠã§ããããã§ãªãå Žåããªãã€ã¬ã¯ããçºçããŸãã
äžèšã®ããã«ãã¡ã€ã«ãEthereum Swarmã«ã¢ããããŒãããããšããããããããã§ã¹ããäœæãããŠä¿åãããŸãã ããã¯ãæå®ãããèå¥åã«ãã£ãŠãªããžããªã§å©çšå¯èœãªã³ã³ãã³ãã説æããããããŒã§ãã
以äžã«ãåçŽãªswarm upã³ãã³ãã§Net-Ethereum-0.28.tar.gzãã¡ã€ã«ãããŠã³ããŒãããŸããã
$ swarm up Net-Ethereum-0.28.tar.gz 8da3713d49c62740f5ab594b06173975ac97cb3dd3848ae996484ec264a10e2f
ããã§ãbzz-listãããã³ã«ãæå®ããããšã«ããããããã§ã¹ãã衚瀺ã§ããŸãã
$ curl http://localhost:8500/bzz-list:/8da3713d49c62740f5ab594b06173975ac97cb3dd3848ae996484ec264a10e2f/ {"entries":[{"hash":"543ee6e744f93de76ac132b8ab71982e32beaf90d1005e771dde003b2a4a54c3","path":"/","contentType":"application/gzip","mode":420,"size":12403,"mod_time":"2018-01-13T14:57:54+03:00"}]}
ãããã§ã¹ãã¯JSON圢åŒã§è¡šç€ºãããŸãã
ãããã§ã¹ãã§ã¯ããã¡ã€ã«ïŒãã¡ã€ã«åïŒããµã€ãºãã¿ã€ãïŒã³ã³ãã³ãã¿ã€ãïŒãå€æŽæ¥æãããã³ãã¡ã€ã«ã®ããã·ã¥ã«ä¿åã§ããŸãã
ãã¡ã€ã«ã®å 容ãèå¥åã§æœåºããt.tar.gzãšããååã§ä¿åããã«ã¯ã次ã®ããã«ããŸãã
$ wget -O t.tar.gz http://localhost:8500/bzz:/8da3713d49c62740f5ab594b06173975ac97cb3dd3848ae996484ec264a10e2f/
ãµããã£ã¬ã¯ããªããããã£ã¬ã¯ããªãããŠã³ããŒããã
Ethereum SwarmãªããžããªãŒã®å 容ãå«ããã£ã¬ã¯ããªãŒãååž°çã«ããŒãããã«ã¯ã-recursiveãã©ã¡ãŒã¿ãŒãæå®ããŸãã
$ swarm --recursive up Net-Ethereum/ 4fb1f2270381c022461037151f70ce081082f0ae1a2a23d8c7ea602da69b4115
ãããã§ã¹ãã«ã¯ãããŒãããããµããã£ã¬ã¯ããªå ã®ãã¹ãŠã®ãã¡ã€ã«ã«é¢ããæ å ±ã衚瀺ãããŸãã
é衚瀺ã®ããã¹ã
$ curl http://localhost:8500/bzz-list:/4fb1f2270381c022461037151f70ce081082f0ae1a2a23d8c7ea602da69b4115/ {"common_prefixes":["blib/","lib/","t/"],"entries":[{"hash":"feea799e7d53fa8465489baf13f66becda29f94695d6ddad161af4bfc51556b4","path":"Changes","mode":420,"size":314,"mod_time":"2018-01-13T14:56:39+03:00"},{"hash":"11fe71c1ab60779eb7b055c96a6fe0fe88d498ca60ece51d79db62d6677f1bf9","path":"MANIFEST","mode":420,"size":241,"mod_time":"2018-01-09T18:38:06+03:00"},{"hash":"1fa030391282faa61b01c1ca07bc483db54c04173801e90477be0919bb9fa2b8","path":"META.json","contentType":"application/json","mode":420,"size":822,"mod_time":"2018-01-09T18:38:06+03:00"},{"hash":"261487aa0cb7218ee3953ac1a67b757cc59d19aadca0b6b4272b8751ba4dfe64","path":"META.yml","mode":420,"size":470,"mod_time":"2018-01-09T18:38:06+03:00"},{"hash":"4a4ef37333596472a6a5bcee20456621f039f2f3bb9a331f0afc289a1e122af5","path":"MYMETA.json","contentType":"application/json","mode":420,"size":862,"mod_time":"2018-01-13T14:57:41+03:00"},{"hash":"374603f37acd044b3605dc0c051b9996625c9dfcce4919e80ba84bda21b4bbcd","path":"MYMETA.yml","mode":420,"size":510,"mod_time":"2018-01-13T14:57:41+03:00"},{"hash":"18cdc7c003810e53974187bcee1b7d2c536c4b952fe0f199d264e5af21d6548c","path":"Makefile.PL","contentType":"text/x-perl; charset=utf-8","mode":420,"size":664,"mod_time":"2018-01-13T12:24:37+03:00"},{"hash":"44481e1b88e2c00cd30717108d8490d839358bb4cb9895962e4fa64c2be6ed73","path":"Makefile","mode":420,"size":27605,"mod_time":"2018-01-13T14:57:41+03:00"},{"hash":"543ee6e744f93de76ac132b8ab71982e32beaf90d1005e771dde003b2a4a54c3","path":"Net-Ethereum-0.28.tar.gz","contentType":"application/gzip","mode":420,"size":12403,"mod_time":"2018-01-13T14:57:54+03:00"},{"hash":"c6ff1f1742a156aeaf98fcfb480cfb168857029a8790ac8c3bc7a00aef415021","path":"README","mode":420,"size":1303,"mod_time":"2018-01-13T14:57:31+03:00"},{"hash":"011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce","path":"pm_to_blib","mode":420,"mod_time":"2018-01-13T14:57:49+03:00"}]}
Ethereum Swarmã®ãã®ä»ã®æ©èœ
ãã®èšäºã§ã¯ãEthereum Swarmã®ãã¹ãŠã®æ©èœã«ã€ããŠã¯èª¬æããŸããã§ããã
åã ã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªã®å 容ãããŒãããããšã«å ããŠããããã§ã¹ãã«ããŒã¿ãè¿œå ã§ããŸãã ããã«ãããæ¡åŒµããããããã§ã¹ããšãã¡ã€ã«ãè¿œå ãããæ°ããããŒã¿é ç®ãäœæãããŸãã
ãããã§ã¹ããªãã§ãã¡ã€ã«ãããŠã³ããŒããããããããããçã®ã圢åŒã§ããããèªãããšãã§ããŸãã
ãã¡ã€ã«ãèªã¿åããšãã«ããã®ååïŒå šäœãŸãã¯äžéšïŒãæå®ã§ããŸãã ãã®å ŽåãENSïŒEthereum Name ServiceïŒããŒã ãµãŒãã¹ãé¢ä¿ããŸãã ãã®æ©èœã«ããããããã¯ããäžéšã®ãã¡ã€ã«ã®ã¿ãååŸããå ±éã®ãããã§ã¹ãã§çµåã§ããŸãã
ãŸããSWarm Accounting ProtocolïŒSWAPïŒããã³ãã®ä»ã®æ©èœã«ã€ããŠã説æããŸããã§ããã Ethereum Swarmãããžã§ã¯ãã¯æŽ»çºã«éçºãããŠãããåæ£åã¢ããªã±ãŒã·ã§ã³ã®éçºè ã«ãšã£ãŠèå³æ·±ãäœãã確å®ã«ããããã§ãããã
Perl Net :: Ethereum :: Swarmã¢ãžã¥ãŒã«
Perlã·ã¹ãã ã§Ethereum Swarmåæ£ããŒã¿ãŠã§ã¢ããŠã¹ã䜿çšããããã«ãCPANã§Net :: Ethereum :: Swarmã¢ãžã¥ãŒã«ãéçºããŠæçš¿ããŸããã
ãã®ã¢ãžã¥ãŒã«ã䜿çšãããšãããã¹ããã¡ã€ã«ãšãã€ããªãã¡ã€ã«ãEthereum Swarmã«ã¢ããããŒãããããããŠã³ããŒãããããŒã¿ã®ãããã§ã¹ããåä¿¡ããããEthereum Swarmããèå¥åã§ãã¡ã€ã«ãã¢ããããŒããããã§ããŸãã
Net :: Ethereum :: Swarmã¢ãžã¥ãŒã«ã¯ãHTTP GETããã³POSTãªã¯ãšã¹ãã䜿çšããŠEthereum Swarmãã¹ããšé£æºããŸãã ãªã¯ãšã¹ãã®äœ¿çšã«ã€ããŠã¯ãããã¥ã¡ã³ãã®ãHTTP APIãã»ã¯ã·ã§ã³ã§èª¬æããŠããŸãã
HTTPãªã¯ãšã¹ããä»ããçžäºäœçšã¯ãã»ãšãã©ãã¹ãŠã®ããã°ã©ãã³ã°èšèªã§ç°¡åã«å®è£ ã§ããŸãã