'2017/09/01'에 해당되는 글 1건

  1. 2017.09.01 dapp테스트를 위한 Swarm 실행하기 183
블록체인2017. 9. 1. 11:14


https://medium.com/@codeAMT/how-to-launch-swarm-for-dapp-testing-8003e55380e2


이더리움은 최근에 web3.0 기반 기술의 에코시스템에 포함되기 위해 쭈욱 개발되어져 왔다. 브라우저내장의 Mist지갑, dapp messaging package인 Whisper, 탈중앙화된 데이터스토리지인 Swarm등이 있다.


다음은 web3.0에서 dapp개발을 위한 거룩한 삼위일체를 보여준다.



Swarm이 무엇이고 어떻게 동작하는가?


Peer to peer, low latency, 네트웍 데이터 공유를 가능하게 하는 서버같은 노드이고  해시주소로 최종사용자가 리소스에 접근가능하게 해준다.

실서버는 불필요.

파일공유나 데이터자장소를 투명하고 비용효율이 좋은 서비스를 만들 수 있는 잠재력을 가지고 있다. 분산은 피어간의 연결을 통해서 중단없는 서비스가 가능하다.

최종사용자는 새로운 리소스를 배포하는데 비용을 지불한다.

개발자는 이 경로에 게시하는 데이터에 대한 민감도를 고려해야 한다. 데이터는 해시주소에 저장되면 삭제할 수 없다.

비트코인처럼 테스트넷에서 테스트가 가능하며 테스트넷에 swarm을 적재하고 web 3.0dapp으로 게이트웨이를 사용하는 법을 안내할것이다.


TestNet에 Swarm처음 적재하기


1 : go-ethereum 설치


go언어를 설치해야 한다. 다음 링크를 참조하라.


* Go workspace 폴더 생성

* $GOPATH환경변수에 등록

* .bash_profile에 추가

* 작업폴더 생성 (src/github.com/ethereum)

* 작업폴더로 이동 하여 go-ethereum clone

* cd go-ethereum, grab 프로젝트 의존성




2. geth 와 swarm 패키지 컴파일


geth는 노드를 적재하기 위해 swarm은 파일공유를 하기 위해 컴파일 한다.


* run "go install -v ./cmd/geth"

* run "go install -v ./cmd/swarm"



백그라운드에서 go isntall명령이 geth와 swarm 바이너리를 만든다. 



3. 데이터 폴더와 Swarm TestNet계정 만들기


* 폴더를 만들고 testnet 모드로 노드를 시작

* 계정 생성

* 비밀번호 입력



계정이 생성되면 새로 생성된 계정주소를 반환한다.


4. geth node 적재


여기서 geth에 fast 옵션을 추가로 시작하였으며 이는 fast 동기화 다운로드를 수행한다는 뜻이다.



잠시후에 테스트넷 폴더가 데이터 폴더에 자동으로 생성된것을 알 수 있다. 


5. Swarm testnet 시작

새로운 터미널탭에서 swarm을 시작한다. 3가지 옵션이 필요하다

* bzzaccount : geth 계정 주소
* 데이터폴더 경로
* ethapi(테스트넷 폴더내의 geth.ipc로 불리는 파일의 경로)

실행후 계정 비밀번호를 입력한다. 



p2p 네트웍이기 때문에 피러들과 연결되려면 조금 기다려야 한다. 연결이 완료되면 아래와 같은 화면을 볼수 있다.






이제 데이터 폴더에 블랙체인을 모두 다운받아야 한다. 그러면 브라우져를 실행할 준비가 완료된다.


6. 로컬호스트에 억세스하기 위해 브라우저 실행


브라우저를 열고 8500포트에 접속하면 다음화면을 볼수 있다.




이제 서버가 동작하고 있다.


"bzz:/"프록시로 해시나 도메인주소를 입력하면 웹컨텐츠를 볼수 있다.




web3.0브라우저를 사용하면 bzz 스키마로 바로 접근이 가능하다.


7. Web 3.0 서핑하기


swarm 개발자들의 샘플 dapp을 방문해 보아라. http://swarm-gateways.net/bzz:/photoalbum.eth/


로컬에서 swarm홈페이지의 dapp같은 것을 볼 수 있다.



이 앱으로 사용자가 새로 게시하거나 재배치하고 삭제할 수 있다. 오픈소스 앨범이고 개인적 용도로 공유할 수도 있다.


dapp을 수정하게 되면 해시값도 변경된다. swarm은 모든 애플리케이션이 유일한 해시값을 갖기 때문이다.


앱위에 마우스를 갖다 대면 팝업으로 뜨는 메뉴가 있다. dapp의 삭제, 게시, put, get제어가 가능하다.

따라서 이미지를 아래로 이동시키면 아래처럼 새로운  dapp 주소가 생성된다.




애플리케이션 공유하기


일반 웹에서 dapp을 보려면 일반게이트웨이를 통해서 해당 고유 해시를 보아야 한다.


1. 해시 복사

2. 새브라우저 열기

3. 게이트웨이에 bzz 프로토콜 추가

4. 붙여넣기



내 노드에서 시험하기


홈스테드 버전의 Mist지갑에 Swarm이 포함되어 있으며 지갑앱을 통해서 테스트가 가능하다.


Mist지갑 > 계정 > Upload to Swarm을 선택 후 이미지 파일을 선택한다.



로컬호스트 주소에 bzz://로 생성된 해시코드를 주소로 집너 넣는다.

그러면 아래와 같이 내가 업로드한 이미지 파일을 볼 수 있다.







Posted by 삼스