현재 저희는 eth 노드를 GO-language 로 구현한 go eth 를 줄인 geth 라는 이더리움 노드를 사용하고 있습니다. 설치 방법은 비트코인계열과 마찬 가지로 제공 하는 방법을 그대로 따라합니다

 

Ex) https://github.com/ethereum/go-ethereum/blob/master/README.md

Git 주소 https://github.com/ethereum/go-ethereum

 

 

- 노드 설치

apt-get update && sudo apt-get upgrade -y
apt-get install make
apt-get install build-essential


wget https://dl.google.com/go/go1.16.linux-amd64.tar.gz
tar -xzf go1.16.linux-amd64.tar.gz
mv go /usr/local
echo 'GOPATH="/usr/local/go"' >> ~/.profile
echo 'PATH="$PATH:$GOPATH/bin"' >> ~/.profile
source .profile

 

1. 해당 코인 github 접속, releases 탭으로 이동, 받고자 하는 버전의 source code (tar.gz) 링크 주소 복사, 설치하고자 하는 서버에서 다운로드 합니다.

Ex) https://github.com/ethereum/go-ethereum/archive/v1.9.20.tar.gz
2.
압축 해제 후, 해당 디렉토리로 이동합니다.
ex) tar -xvzf v1.9.20.tar.gz

3. make geth

4. 빌드가 끝난 후 /build/bin 에 있는 geth 실행 파일을 /usr/local/bin 으로 복사합니다.

Ex) cp geth /usr/local/bin

5. screen –S ETH 명령어로 screen 을 생성 후 아래와 같은 명령어로 geth 를 실행시켜 줍니다.

geth --rpc --rpcaddr 0.0.0.0 --port 30303 console

6.     이후 ctrl + a, d 커맨드를 통해 스크린을 유지한 채 빠져 나옵니다.
(
스크린 재 접속시 screen –r ETH)

 

cd 자기 자신 경로

#vi .screenrc

defscrollback 5000
termcapinfo xterm* ti@:te@
startup_message off
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n*%t%{-}%+w %= %c ${USER}@%H"
bindkey -k k1 select 0
bindkey -k k2 select 1
bindkey -k k3 select 2

 

 

 

 

- 노드 업그레이드

1. 노드 설치에 있는 1~3 까지 진행 합니다.

 2. screen –r ETH screen 접근 후 exit 명령어를 통해 노드를을 멈추고 ctrl+a , d 를 통해 screen을 유지한 채 나옵니다.

3.  설치 방법 4번을 진행 후 screen –r ETH 통해 접근 후 아래의 명령어로 노드를 실행 시켜 줍니다.

geth --rpc --rpcaddr 0.0.0.0 --port 30303  --datadir /home/eth/data console

 

 

 

- 노드 운영방법

시작 : screen 세션 생성 후

geth --rpc --rpcaddr 0.0.0.0 --port 30303 --datadir /home/eth/data console

종료 : screen –r ETH 을 통해 세션에 접근 후 콘솔 창에서 exit 명령어로 종료

kill로 종료할 시 블록이 깨질 수 있으므로 exit을 이용합니다.

아래 명령어는 콘솔창 기준입니다.

블록 높이 확인 : eth.blockNumber

Peer 확인 : admin.peers

Node 정보 : admin.nodeInfo

이외에 명령어는 아래에서 확인할 수 있습니다.

 


 https://ethereum.stackexchange.com/questions/28703/full-list-of-geth-terminal-commands

추가적으로 ethetc가 블록을 못 받아올 경우 노드를 재시작 해주면 됩니다.

블로그 이미지

iesay

,

 

 제가 지금 작성한 글은 정답이 아니고 제가  개인적으로 생각하는

여러가지 방법론 중 하나입니다.

 

기본키 : Database  유일키

Private Key : 블록체인상 전자서명을 할수 있는 개인키

 

 

 

수많은 블록체인 회사에서 DID(탈중앙화된 신원식별 시스템) ,

Decentralized Identity 금융사나 통신사 포털 여러 회사에서 진행하고 있다.

기존 공인인증서 방식과 장, 단점을 비교 해보고

거기에 대한 대안을 제시 해볼려구 한다.

 

 항목

공인인증서 

DID(Decentralized Identity)

 RooT CA

필요함 

없슴 

복구방법 

재발급 가능 

 탈중앙화 : 백업(리모닉, 키스토어,PK) 가능

 중앙화 : 키스토어 일괄 저장

 신규 생성   

이력 연계

가능 

 백업 경우 (O)

 신규 생성  (X)

용도

 금융서비스

 신분증, 증명서 발급

 

여기서 가장 중요하게 생각해야 되는 부분이 DID용도가 금융 서비스가 아닌 경우다.

아이핀이나 모바일 인증을 통해서 실명 인증을 하면 CI값이 나온다.

주민번호를 대체한 해쉬 결과인 유일한 값이다. 

우리나라에서는 주민번호, 실명을 변경하면 당연히 CI값도 변경이 된다.

 

DID서비스를 하는 경우 Database  기본키는 무엇을 사용해야 되나 ?

수많은 회사가 여기에 대해 고민을 하고 복구 절차에 대해서 고민 하다보면 답이 없다.

 

휴대폰을 분실 할수도 있고 파손될 우려도 있다.

가장 현실적인 대안은 금융관련 서비스가  아니기 때문에 신규 발급이 가능 하게 하면된다. 

 

휴대폰번호를 통한 실명인증과 메일인증 둘다 받으면 DID private key가 없더라도 강제로 탈퇴시키면 된다. 

 

휴대폰을 분실하고 바뀐번호로 가입한 경우는 방법이 없다.

본인이 예전 번호를 잠시 변경해야지 가능하다.

 

예시) DID 회원정보 테이블

칼럼명

특징

 블록체인 지갑주소

 기본키(서비스 중 세션에 저장)

 이름

 

 생년월일

 

 휴대폰번호 

 유일키 (탈퇴시 auth)

 CI값

 주민번호 대체 유일키 아님 

 이메일 주소

 탈퇴시 auth

 스마트컨트렉주소

 계정당 1개식 LevelDB 데이터기록 

※모바일 Trust Zone 블록체인 private key를 보관한다

생체 정보가 바뀌더라도 모바일 auth통해서 변경한다.

 

이렇게 서비스 하면 한 사람이 번호가 10개면 10개의 계정 생성이 가능하다.

동일한 CI라도   휴대폰 번호를 만들때 오프라인에서 신분증 대조를 받았기 때문에

허용을 해줘도 된다.

 

지갑주소가 다르고 동일한 CI에 대해서 데이터  연계는 되지 않는다.

모든 서비스나 데이터이력은 지갑주소가 작성자와 동일해야지  스마컨트렉

LevelDB의 접근 권한이 생긴다.

 

DID와 공인인증서의 차이는 전자서명하는 주체(Root CA)가 내가 되는건가

아니면 Root CA기관이 되는것인가 그 차이가 가장 크다.

기술적인 PKI기반은 둘다 비슷비슷하다.

 

DID에 금융 서비스가 없이 온라인신분증 용도로만 쓰는 경우 위와

같은 설계가 가능 하지만

금융서비스를 시행 한다면 구조가 완전 바뀌게 된다.

 

 

 

 

블로그 이미지

iesay

,

cosmos-sdk-js

블록체인 2020. 4. 29. 09:29

https://github.com/cosmos/cosmos-sdk-js


이더리움의 web3.js 같이 잘되면 좋겠다.


git clone https://github.com/cosmos/cosmos-sdk-js.git

 



root@tkpark:~/cosmos-sdk-js# npm install --save cosmos-sdk

npm ERR! Linux 4.15.0-96-generic

npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "--save" "cosmos-sdk"

npm ERR! node v8.10.0

npm ERR! npm  v3.5.2

npm ERR! code ENOSELF


npm ERR! Refusing to install cosmos-sdk as a dependency of itself

npm ERR!

npm ERR! If you need help, you may report this error at:

npm ERR!     <https://github.com/npm/npm/issues>


npm ERR! Please include the following file with any support request:

npm ERR!     /root/cosmos-sdk-js/npm-debug.log

root@tkpark:~/cosmos-sdk-js#

 




블로그 이미지

iesay

,

스마트컨트렉을 활용한 문서 위변조 탐지 시스템

https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=009&aid=0004435247

 

세계지식포럼에서 비탈릭부테린도 문서 위변조 탐지에

블록체인이 적합 하다고 하였다.

그래서 어떤식으로 구현하면 좋을지 방법론을 한번 고민해 보았다.

 

기존방식의 졸업증명서나 성적증명서의 경우

ActiveX를 활용하여 출력물에 워터마크를 찍는 방식이다.

 

스캔하면 훼손되는 부분인데  이런 방식은 워터마크는 그대로 있더라도

원본이 훼손된 경우는 위변조에 대한 판단이 불가능하다.

 

그리고 중국의 유명한 술은  일부 RFID와 DataBase를 쓰는 경우도 있다

이 경우도 DataBase가 직접 훼손될 가능성도 있다.

아니면 칩만 떼서 다른곳에 붙여도 위조가 가능하다.

 

그래서 OO장관 사태와 관련해서도

이런 문제점을 어떻게 블록체인으로 보완할수 있을까? 고민을 한번 해보았다.

 

 

증명서당 하나의   개인키(지갑주소), 스마트컨트렉을 가지고

그 컨트렉 levelDB에 데이터를 저장하면 되지 않을까? 하는 생각이 들었다.

 

지원자의 서류를 검토한다는건 

당연 개인정보 수집동의를 허락 한것이라고 본다.


그래서 그 서류에 대한 진위여부를 판단 하는것도  합법적인 행위이다.



1] 표창장의 값들을 mnemonic word의 Seed로 사용한다.(개인키)

   아래 값을 Seed로 쓴다면

 

mnemonic word (랜덤으로 매번 다른값이 생성 될것이다) 

 armor cactus zero point casual address park doll hobby arch chest tobacco

 

Seed

제02-34512,    알아서머할래,    박태광 

seed값을 자유롭게 생년월일이나 성적이나 몇몇 개인정보도 입력이 가능하다.

 

2] 스마트컨트렉

스마트컨트렉 LevelDB에  값들을 저장해 놓는다.

제02-34512,    알아서머할래,    박태광 

 

 

 

3] 표창장이나 증명서 아래에 [mnemonic word +seed] QR태그를 넣어 놓는다.

 

4] 스마트폰으로 해당값을 스캔 하면

스마트컨트렉에서 해당 컨트렉을 만든 지갑주소가 맞음으로 LevelDB에 저장된 데이터를 출력시켜 준다.

만약 [LevelDB의 데이터] [증명서][seed] 3개가 일치하지 않는다면 위조로 판단할수 있다.

 

mnemonic 이나 Seed값이 저장된 QR코드를 모르거나 변조된다면

해당 컨트렉에 저장된 값을 볼수가 없다.

 

문제점은 누가 노드를 해킹하여 강제로 증명서 컨트렉의 계정을 생성해서

발급할 수 있다.

 

그래서 꼭 오프라인 발급대장과 트랜젝션을 확인하는 과정을 거처야 된다.

 

위 방법을 거치면 워터마크나 RFID보다 훨신 더 안전하게  위변조를 방지할수 있다.

 

 

산출물만 적다면 위 아이디어로 정부 과제라도 해보고 싶다.

 

블록체인이라 부르지 말고 왜 Trust System이라고 부르고 싶어 하는지도 이해 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

블로그 이미지

iesay

,

출처 : https://medium.com/returnvalues/libra-core-설치-및-테스트넷-연결-55d4e92d8319

 

고승원님 포스팅 보고 나도 시작해볼까 했는데

한 3일 정도 걸린거 같다.

 

Mac OS에서는 쉽게 되는거 같은데 docker 에서는 완전 쉽지 않다.

ubuntu 18

root@9bb88386f44f:/etc# cat /etc/issue
Ubuntu 18.04.1 LTS \n \l

root@9bb88386f44f:/etc

 

 

 

내가 Docker를 쓴지가 얼마 안되었다.

위 버전은 안되고 미안하게도 Icon 공모전 중이라 Icon이미지에 libra를 설치 했다.

docker run -it -p 127.0.0.1:9000:9000 -p 127.0.0.1:5000:5000 --rm ubuntu:latest

docker run -it -p 127.0.0.1:9000:9000 -p 127.0.0.1:5000:5000 --rm ibriz/icon-workshop:latest  

위 명령어가 실행 안되면

리스타트를 하고 다 올라 올때까지 3분 정도 기다려야 된다.

 

 

윈도우 Docker에서 램을 6기가 이상으로 잡아야 된다.

나중에 램 용량 모자른다고 메세지 뜨기도 한다.

rm 옵션을 줘서 Docker를 한번 닫으면 처음부터 다시 해야된다.

 

우선 apt 연결을 위해

/etc/apt/sources.list 바꾸기

#+ Ubuntu Main Repos

deb http://mirror.kakao.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirror.kakao.com/ubuntu/ trusty main restricted universe multiverse

 


#+ Ubuntu Update Repos

deb http://mirror.kakao.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirror.kakao.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirror.kakao.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirror.kakao.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirror.kakao.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ubuntu bionic main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ubuntu bionic-security main restricted universe multiverse

deb http://mirror.kakao.com/ubuntu/ubuntu bionic-updates main restricted universe multiverse

 

 

경로 바꾸었으니 적용을 해야 된다.

 apt-get update

기타 등등 설치

 apt install -y curl
apt install  -y sudo
apt install -y rustc cargo
apt install -y unzip
apt install -y g++
apt install -y wget
apt-get install -y binutils-2.26
apt install zlib1g-dev


apt-get install build-essential libtool autotools-dev automake pkg-config ... qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev

스택 오버플로우 뒤저가면 찾아 온것들이다.

dependency 엄청 타는거 같았다.

 

난 root디렉토리에 머 설치하는걸 좋아한다.

/usr/local/src가 리눅스에서는 라이브러리 공식이긴한데 ㅎ

 

go언어와 make를 설치한다 이것도 버전탄다.

cd /root 

wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz


wget https://cmake.org/files/v3.8/cmake-3.8.0-rc1.tar.gz

cd cmake-3.8.0-rc1
./bootstrap
make
make install

 

환경변수에 넣고 실행 한다.

.profile 아래 부분에 추가

export CMAKE_ROOT=~/cmake-3.8.0-rc1
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin

source .profile
env확인

 

root디렉토리에서 바로 설치 한다.

 

git clone https://github.com/libra/libra.git
./scripts/dev_setup.sh 

Finished installing all dependencies.

You should now be able to build the project by running:

source /root/.cargo/env
cargo build 

 

 

이제 끝이다.

Building and running client in debug mode.# ls
cargo_check_dependencies.sh  cargo_update_outdated.sh  cli  clippy.args  clippy.sh  dev_setup.sh  nightly_features.sh
root@9bb88386f44f:~/libra/scripts# cd cli
root@9bb88386f44f:~/libra/scripts/cli# ls
start_cli_testnet.sh  trusted_peers.config.toml
root@9bb88386f44f:~/libra/scripts/cli# ./start_cli_testnet.sh
Building and running client in debug mode. 

 

 

 

정말 적고 보니  양도 얼마 안되고 허무하다.

삽질 정말 많이 했었는데,,

 

블로그 이미지

iesay

,

출처 : https://gist.github.com/aunyks/8f2c2fd51cc17f342737917e1c2582e2

 

ex1.js 돌아는 간다.


const date = require('date-utils');
var dt = new Date();

 


var Block = new function(){
                this.index = 0;
                this.timestamp = dt.clone();
                this.data = "data :  Genesis Block"
                this.previous_hash = "0";
                this.hash = crypto.createHash("sha256").update(this.index + this.timestamp + this.data + this.previous_hash).digest("hex");
};


console.log("index : ", Block.index, "timestamp : ", Block.timestamp, "data : ", Block.data, "previous_hash : ", Block.previous_hash, "hash", Block.hash);

const next_block = async () => {
        try{
        Block.index = Block.index+1;
        Block.timestamp = dt.clone();
        Block.data = "Hey! I'm block " + Block.index;
        Block.previous_hash = Block.hash;
        Block.hash = crypto.createHash("sha256").update(Block.index + Block.timestamp + Block.data + Block.previous_hash).digest("hex");
        }catch (error) { console.log('Task Failure',error);}
}


var num_of_blocks_to_add = 20;

for(var i=0; i<num_of_blocks_to_add; i++){
        next_block();
        console.log("index : ", Block.index, "timestamp : ", Block.timestamp, "data : ", Block.data, "previous_hash : ", Block.previous_hash, "hash", Block.hash);
}
 

 

 

 

실행결과

root@tkpark-VirtualBox:~/project/myapp/routes# nodejs ex1.js
index :  0 timestamp :  2019-01-17T06:14:00.735Z data :  data :  Genesis Block previous_hash :  0 hash 435f39b1283eaaad92378228feb0ff217904cba051828ddbf87eb9049fc269fc
index :  1 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 1 previous_hash :  435f39b1283eaaad92378228feb0ff217904cba051828ddbf87eb9049fc269fc hash ea0b1c93cff5ad20bd1b300f339e557747cf92f9cccf18839069b9b34df40241
index :  2 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 2 previous_hash :  ea0b1c93cff5ad20bd1b300f339e557747cf92f9cccf18839069b9b34df40241 hash 27cd8f270c2d09ad2e7409f50ce9dd29d5141cfc1c62dcc2c189f7f7ad394ed1
index :  3 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 3 previous_hash :  27cd8f270c2d09ad2e7409f50ce9dd29d5141cfc1c62dcc2c189f7f7ad394ed1 hash dd12e07c03dd274850ed7071fe6e3009758c56361fcc6d64ca3befed4f683ab7
index :  4 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 4 previous_hash :  dd12e07c03dd274850ed7071fe6e3009758c56361fcc6d64ca3befed4f683ab7 hash efc128e74d5e32f761d11e63851431c84564b315f1ad2cf96e9b610f43a35a74
index :  5 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 5 previous_hash :  efc128e74d5e32f761d11e63851431c84564b315f1ad2cf96e9b610f43a35a74 hash 3bfb7ea0d0ae3183240976de82c100d7f83ce11a91faa6a2b5c79d4a889b525b
index :  6 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 6 previous_hash :  3bfb7ea0d0ae3183240976de82c100d7f83ce11a91faa6a2b5c79d4a889b525b hash 93e60df16e258ba4e40407f68a13763db2e741129ef15fa25b5d4c5f98d13f29
index :  7 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 7 previous_hash :  93e60df16e258ba4e40407f68a13763db2e741129ef15fa25b5d4c5f98d13f29 hash dc3bd4fb62dfb15ad82e44b3768e4bc03a2085efc66a20f3542d901bf0da535c
index :  8 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 8 previous_hash :  dc3bd4fb62dfb15ad82e44b3768e4bc03a2085efc66a20f3542d901bf0da535c hash 5ac36c5edca409f8d3fe1d7c6323cb6488542d0dfb80390b8211992af9e278dc
index :  9 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 9 previous_hash :  5ac36c5edca409f8d3fe1d7c6323cb6488542d0dfb80390b8211992af9e278dc hash df60da5103bb153495e36d26c5fe101ecc7f445a001ca0ec5010ac1e0ca70bf5
index :  10 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 10 previous_hash :  df60da5103bb153495e36d26c5fe101ecc7f445a001ca0ec5010ac1e0ca70bf5 hash 079808737914421f6fbeaaf20764a23fd984eb1b5384c0d64b127bf9b36b69d8
index :  11 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 11 previous_hash :  079808737914421f6fbeaaf20764a23fd984eb1b5384c0d64b127bf9b36b69d8 hash 38e6a98821aa193e9b24d009fdddadab4565388ef93b4bfbf25d3ddbb6e32623
index :  12 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 12 previous_hash :  38e6a98821aa193e9b24d009fdddadab4565388ef93b4bfbf25d3ddbb6e32623 hash f668b9c2521bfb9f4562557501914c6dcbf7dad2fa84c27437be72536c763023
index :  13 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 13 previous_hash :  f668b9c2521bfb9f4562557501914c6dcbf7dad2fa84c27437be72536c763023 hash 48dc2d11c14ad8dbcdc11908185e435162da6f0f653d52bbec3c92b8471d1660
index :  14 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 14 previous_hash :  48dc2d11c14ad8dbcdc11908185e435162da6f0f653d52bbec3c92b8471d1660 hash e1745d4dd8344bc8bd01aefbf59e2a347b0bd9a743bd5e2331c4707763111862
index :  15 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 15 previous_hash :  e1745d4dd8344bc8bd01aefbf59e2a347b0bd9a743bd5e2331c4707763111862 hash fcd3d0e8fd8eb2b90ec2a913085a32de9978cc4c8eb9365dd6fc98f7b6105967
index :  16 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 16 previous_hash :  fcd3d0e8fd8eb2b90ec2a913085a32de9978cc4c8eb9365dd6fc98f7b6105967 hash c545d471f6fc9fd388868b6d0cfdac607df6348f497a907874e71139d91126e9
index :  17 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 17 previous_hash :  c545d471f6fc9fd388868b6d0cfdac607df6348f497a907874e71139d91126e9 hash 4cae02f8716133366633d2ddb3a9bc87b13cee2898eb650f2a0c21f7e550ddb5
index :  18 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 18 previous_hash :  4cae02f8716133366633d2ddb3a9bc87b13cee2898eb650f2a0c21f7e550ddb5 hash e4aa549a98cf6412a4eea651849ef76165dd2bd5d9fee44ac394a58088d6a066
index :  19 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 19 previous_hash :  e4aa549a98cf6412a4eea651849ef76165dd2bd5d9fee44ac394a58088d6a066 hash 1f21c685f6aec8e4e3c5d985873fd00c57241612c7b12f9283b5324113c8b20b
index :  20 timestamp :  2019-01-17T06:14:00.735Z data :  Hey! I'm block 20 previous_hash :  1f21c685f6aec8e4e3c5d985873fd00c57241612c7b12f9283b5324113c8b20b hash a780596a78f9bf8570903f65c86bc88fc11dfc9c717379f5694953ce1209d637
root@tkpark-VirtualBox:~/project/myapp/routes#
 

 

 

 

 

 

 

 

 

 

 

 

 

블로그 이미지

iesay

,

개인적으로 맛집 탐방은 즐기는 편이다.

 

 

여러 맛집중에 안동 구시장에 가서 먹는 찜닭을 좋아하는데 

암호화폐와의 평행이론을 작성해 보겠다.

 

 

안동찜닭은 구시장이다 보니 접근도 불편하고,  

외부인 입장에서 주차도 유료주차장에 지불해야 되고, 

TV에도 출연한 맛집의 경우 웨이팅 시간이 한 시간 정도 되었다.

 

 

2009년쯤에도 중자가 2~3만원 정도 하였던거 같다. 

10년 전쯤 그 정도 가격이니 싸지도 않고,  

주차비까지 지불하면서 꼭 먹어야 되냐고 물어본다면  

그만한 맛의 가치가 있었던 걸로 기억된다.

 

 

 

몇 년 전에 방문했을 때는 예전 맛이 나지 않았다.

안동에 사는 현지인에게 물어보니 유명한 식당들 다 권리금을 받고

식당을 팔았다고 한다.

 

그래서 주인이 바뀐 지 오래고 권리금을 투자한 측에서는 당연히 원재료 절감에

나설 수 밖에 없고, 맛이 바뀌니 모든 가게다 다 하항 평준하가 되었다는 것이다.

 

맛이 없으니 손님들도 줄어들게 되고 예전과 같은 웨이팅 한 시간은

사라진지 오래라고 한다.

 

 

플랫폼 암호화페의 가치를 결정짓는 것은 POWDapp이라고 본다.

 

 

POW는 종이와 잉크로 찍어내는 돈이 아닌 전기와 시간즉 자원을 소모해서 찍어내는 전자 화폐이다.

 

 

그래서 난이도 때문에 무한정 찍어낼 수 없기 때문에 가치가 높다고 본다.

 

 

Dapp은 어플리케이션이다. 메인넷이 OS라 보면 운영처제에 올라온

어플리케이션이 얼마나 많으냐 실사용 가능성이 있느냐에

따라서 그 메인넷 코인의 가치가 올라간다.

 

 

 

문제는 최근의 흐름과 트렌드를 보자면 어떤 쪽 메인넷이 좋다고 하면 다 몰리고

 

확 빠지고 그런 추세다.

 

 

비트코인의 스마트계약의 한계점으로 이더리움의 스마트컨트렉이 나왔다.

수많은 ICO들이 생겨나면서 NEO나 퀀텀 등에도 Dapp이 달리기 시작 하였고

   

후발 주자로 이오스, 트론, 카르다노, 아이콘등도 생겨났다.

문제는 플랫폼 코인들의 기술력 저하인지 한계점인지 노드구성이 어렵다던지

노드 갯수를 속인다던지 유저들의 신뢰성을 잃기 시작 하였다.

 

그리고 이더리움 또한 fcoin의 가스값 폭등과 엄청난 트랜잭션의 용량으로

콘스탄티노풀pos와 샤딩의 압박을 당하고 있는 입장이다.

   

개발자들은 퀀텀->이더리움->이오스로 Dapp들을 옮기기 시작하였고,

 

 

 

이오스 또한 램과 CPU의 한계로 트랜잭션을 실시간으로 처리 못하는 사태가

발생 하게 되었다.

 

그리고 이오스가 그 많은 Dapp들을 처리할러면 트랜잭션 용량이

나중에 폭등하지 않을까 하는 고민도 든다.

 

 

Dapp개발자들이 안동찜닭의 손님들과 평행이론이라면

그 손님들이 한 가게만 몰리고 다른 곳에는 안가는것과 같다.

그 한가게에는 당연 주문이 밀리게 되니 몇시간식 기다리던 손님들의

불만이 폭주하게 되는 것이다.

 

 

다른 dpos를 지향하는 노드들은 BP가 없거나 Dapp이 없으면

서버 임대료를 못 내니 문을 닫을수 박에 없다.

 

가게도 손님 없으면 인건비, 임대료 못 내서 문닫는것과 마찬가지다.

 

 

이대로 가면 다 같이 망할 수 밖에 없다.

 

'상생하다'라는 단어와 같이 다 같이 공존해야 된다.

 

 

그래서 트래픽도 나누고 여러 메인넷 플랫폼 코인인들도 Dapp들이 달리고 해야지

 

함께 먹고 살 수 있다.

블로그 이미지

iesay

,

비트고 bitgo multisig

비트고에 가입해서 이런전 이야기 메일 주고 받으면 테스트넷 계정을 준다.

https://test.bitgo.com/login

 

 

비트고에서 수수료는 0.15%인거 같고 안써도 3000$나오고 그이상은 쓰는만큼 나온다고 한다 처음에 반대로 이해하고 왜이래 싸 했는데 ㅋㅋ 아니였다.

 

 

우리나라 대다수 거래소에서 도입해서 사용중이고,

한국 파트너사가 있으면 좋으러면 그냥 가져다 쓸려니 a/s나 이런부분이 조금 찜찜하긴 하다.

 

테스트 하면서 여러가지 원리나 문제점을 파악해 보아야 겠다.

거래소에 취업할려는 친구들은 비트고를 한번 다뤄본것도 아주 큰 경험이 될거 같다.

 

 

 

 

키카드인거 같다.

BitGo KeyCard FAQ
What is the KeyCard?
The KeyCard contains important information which can be used to recover the Bitcoin
from your wallet in several situations. Each BitGo wallet has its own, unique KeyCard.
If you have created multiple wallets, you should retain the KeyCard for each of them.

 

키카드란 무엇인가?
키 카드에는 비트코인을 복구하는 데 사용할 수 있는 중요한 정보가 포함되어 있다.

지갑에서 몇 가지 상황으로 각 비트고 지갑에는 고유한 키카드가 있다.
여러 개의 지갑을 만든 경우 각각에 대해 키 카드를 보관해야 한다.

 


What should I do with it?
You should print the KeyCard and/or save the PDF to an offline storage device. The print-out
or USB stick should be kept in a safe place, such as a bank vault or home safe. It's a good idea
to keep a second copy in a different location.
Important: If you haven't provided an external backup key, then the original PDF should be
deleted from any machine where the wallet will be regularly accessed to prevent malware from
capturing both the KeyCard and your wallet passcode.

 

어떻게 해야 하지?
KeyCard를 인쇄하거나 PDF를 오프라인 저장 장치에 저장해야 한다.

출력물 또는 USB 스틱은 은행 금고나 집 금고와 같은 안전한 장소에 보관해야 한다.
다른 장소에 두 번째 사본을 보관해야 한다.

중요: 외부 백업 키를 제공하지 않은 경우 원래 PDF파일은
멀웨어를 방지하기 위해 정기적으로 지갑에 액세스하는 모든 시스템에서 삭제된다.

키카드와 지갑 암호를 모두 캡처한다.

 

 


What should I do if I lose it?
If you have lost or damaged all copies of your KeyCard, your Bitcoin is still safe, but this
Wallet should be considered at risk for loss. As soon as is convenient, you should use BitGo
to empty the wallet into a new wallet, and discontinue use of the old wallet.

잃어버리면 어떻게 하나?
키카드 사본을 모두 잃어버렸거나 손상시켰다면, 당신의 비트코인은 여전히 안전하지만,
지갑은 손실 위험이 있는 것으로 간주해야 한다.

편리하다면, 비트고(BitGo)를 사용해야 한다.
새 지갑에 지갑을 넣고 예전 지갑의 사용을 중단해야 된다.

 

What if someone sees my KeyCard?
Don't panic! All sensitive information on the KeyCard is encrypted with your passcode, or with a
key which only BitGo has. But, in general, you should make best efforts to keep your
KeyCard private. If your KeyCard does get exposed or copied in a way that makes you
uncomfortable, the best course of action is to empty the corresponding wallet into another
wallet and discontinue use of the old wallet.

누가 내 키카드 보면 어떡해?
침착하세요 KeyCard의 모든 중요한 정보는 암호 또는
비트고만 가지고 있는 키. 하지만, 일반적으로, 여러분은
KeyCard 비공개. 키카드가 노출되거나 복사되는 경우


불편하다, 가장 좋은 행동방침은 상응하는 지갑을 다른 것에 비우는 것이다.
예전 지갑의 사용을 중단해야 된다.

 

What if I forget or lose my wallet password?
BitGo can use the information in QR Code D to help you recover access to your wallet.
Without the KeyCard, BitGo is not able to recover funds from a wallet with a lost password.

지갑 비밀번호를 잊어버리거나 잃어버리면 어떻게 하나?
비트고(BitGo)는 QR 코드 D의 정보를 사용하여 지갑에 대한 액세스를 복구할 수 있다.
키카드 없이는 비트고는 비밀번호를 잃어버린 지갑에서 자금을 회수할 수 없다.

 


What if BitGo becomes inaccessible for an extended period?
Your KeyCard and wallet passcode can be used together with BitGo’s published open
source tools at https://github.com/bitgo to recover your Bitcoin. Note: You should never enter
information from your KeyCard into tools other than the tools BitGo has published, or your
funds may be at risk for theft.

비트고(BitGo)에 장기간 액세스할 수 없게 되면 어떻게 됩니까?
당신의 키카드와 지갑 패스워드는 비트고 출판물과 함께 사용될 수 있다.

https://github.com/bitgo에서 비트코인을 복구할 수 있다.

참고: 당신의 키카드로부터 비트고가 출판한 도구 이외의 다른 도구들로
돈은 도난당할 위험이 있다

 

 


Should I write my wallet password on my KeyCard?
No! BitGo’s multi-signature approach to security depends on there not being a single point
of attack. But if your wallet password is on your KeyCard, then anyone who gains access to
your KeyCard will be able to steal your Bitcoin. We recommend keeping your wallet password
safe in a secure password manager such as LastPass, 1Password or KeePass.

제 키카드에 제 지갑 비밀번호를 써야 하나?
아니요! BitGo의 보안에 대한 다중 시그니처 접근 방식은 단일 지점이 없는지에 따라

다르다


공격하는 하지만 만약 당신의 지갑 암호가 당신의 키카드에 있다면
당신의 키카드는 당신의 비트코인을 훔칠 수 있을 것이다. 지갑 암호를 유지하는 것이 좋다.
LastPass, 1Password 또는 KeePass와 같은 보안 암호 관리자에서 안전합니다.

 

 

블로그 이미지

iesay

,

우분투 : ubuntu-15.04-desktop-amd64.iso

 

apt-get  update 오류

cd /etc/apt/

vi socurce.list

내용 다 지운 후

#+ Ubuntu Main Repos

deb http://01.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse 

deb-src http://01.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse 


#+ Ubuntu Update Repos

deb http://01.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse 

deb http://01.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse 

deb http://01.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse 

deb http://01.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse 

deb-src http://01.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse 

deb-src http://01.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse 

deb-src http://01.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse 

deb-src http://01.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse 

 

재실행 apt-get  update

SSH 서버 구축

 

openssh-server 설치시 오류

apt-get install openssh

The following packages have unmet dependencies:
 openssh-server : Depends: openssh-client (= 1:6.6p1-2ubuntu2.10)
                  Recommends: ssh-import-id but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

업데이트

apt-get update && sudo apt-get upgrade -y && sudo apt-get install -f && sudo apt-get install openssh-server -y

 

openssh-client설치

apt-get install openssh-client=1:6.6p1-2ubuntu1

 

다시

apt-get install openssh

 

openssh 실행

service ssh start

 

 

 

 

'블록체인' 카테고리의 다른 글

암호화폐 안동찜닭 평행이론  (0) 2018.09.10
비트고 bitgo multisig  (1) 2018.09.07
멀티 시그 Ethereum Multi-Signature Wallets  (0) 2018.08.20
ubuntu16 EOS 노드 설치  (0) 2018.06.26
Cent OS7 EOS 노드 설치  (0) 2018.06.15
블로그 이미지

iesay

,

출처 :  https://medium.com/hellogold/ethereum-multi-signature-wallets-77ab926ab63b

 

 

멀티 시그 Ethereum Multi-Signature Wallets

열심히 참고해서 삽질해서 포스팅 하겠습니다!!

 

 

'블록체인' 카테고리의 다른 글

비트고 bitgo multisig  (1) 2018.09.07
비트코인 BTC 노드구성(ubuntu-15.04-desktop-amd64)  (0) 2018.08.23
ubuntu16 EOS 노드 설치  (0) 2018.06.26
Cent OS7 EOS 노드 설치  (0) 2018.06.15
퀀텀 노드 구성  (0) 2018.06.05
블로그 이미지

iesay

,