Blockchain-Vote

  1. virtual box ubuntu 설치
  2. install node js
  3. install ubuntu-desktop
  4. 소스 저장할 경로 생성
  5. filezilla
  6. 소스코드 복사
  7. 1번째 Putty 에서 ganache-cli 실행
  8. 2번째 putty 에서 Voting.sol 컴파일
  9. deployedContract.address로 호출한 address를 index.js의 아래코드에서 주소값 입력
  10. putty가 아닌 우분투 터미널 실행하여 http-server실행

virtual box ubuntu 설치

  • 메모리 고정크기로 설치 (동적할당으로 설치 시 실제 설정한 용량 데이터 저장이 안되는 경우가 있어서, 개인적으로 고정크기 설치를 선호합니다.)
  • 10gb시 device 용량 부족 에러 호출로 20gb로 설치 진행
  • 설치 시 언어는 영어로 진행

install node js

: 패키지 인스톨 진행 curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs

install ubuntu-desktop

: Node 등을 윈도우나 맥 os에서 실행하실거면 굳이 우분투에서 해당 앱 예제를 실행하지 않으셔도 됩니다. 기존에 Ubuntu에 모두 설치한 줄 알고, GUI만 추가하려한 것이 당초 의도입니다. sudo apt-get update sudo apt-get upgrade sudo apt-get install ubuntu-desktop startx : 재시작 / 이때 재시작은 putty가 아닌 ubuntu console에서 실행

  • 기존에 desktop 설치 에러 나신 분들, 용량 부족 여부 확인하셔서 진행하시면 좋을 것 같습니다. startx로 재시작 후 화면이 제대로 나오지 않는다면, 우분투 종료 후 재시작 (저는 종료 시 상태 저장을 하지 않습니다.)

소스 저장할 경로 생성

cd Desktop/ mkdir webdapp cd webdapp

filezilla

프로토콜 : sftp 로그인 유형 : 일반

소스코드 복사

파일질라 사용 안하고 CLI에서 복사하셔도 됩니다. 투표웹 소스에 node_module이 포함되어 있는데, 삭제후 npm install로 저설치 하셔야 합니다.

*아래 코드는 webdapp 경로 안에서 실행합니다.

1번째 Putty 에서 ganache-cli 실행

node_modules/.bin/ganache-cli

2번째 putty 에서 Voting.sol 컴파일

node를 타이핑하여 노드 콘솔 실행 In the node console

code = fs.readFileSync(‘Voting.sol’).toString() solc = require(‘solc’) compiledCode = solc.compile(code) Web3 = require(‘web3’) web3 = new Web3(new Web3.providers.HttpProvider(“http://localhost:8545”)); abiDefinition = JSON.parse(compiledCode.contracts[‘:Voting’].interface) VotingContract = web3.eth.contract(abiDefinition) byteCode = compiledCode.contracts[‘:Voting’].bytecode deployedContract = VotingContract.new([‘dog’,’cat’,’gozila’],{data: byteCode, from: web3.eth.accounts[0], gas: 4700000}) deployedContract.address deployedContract.totalVotesFor.call(‘dog’) deployedContract.voteForCandidate(‘dog’, {from: web3.eth.accounts[0]}) deployedContract.voteForCandidate(‘dog’, {from: web3.eth.accounts[0]}) deployedContract.voteForCandidate(‘dog’, {from: web3.eth.accounts[0]}) deployedContract.totalVotesFor.call(‘dog’).toLocaleString()

deployedContract.address로 호출한 address를 index.js의 아래코드에서 주소값 입력

contractInstance = VotingContract.at(‘0xffc06b6be6a5babfa1d4430558c89d90d1651697’); 이후 다시 filezilla등으로 index.js 파일 업데이트

putty가 아닌 우분투 터미널 실행하여 http-server실행

sudo npm install -g http-server http-server 실행되는 ip주소 컨트롤+클릭으로 투표 앱 확인


© 2018. All rights reserved.

Powered by Hydejack v8.4.0