node.js module node.js

1. exports
모듈 안에 선언한 항목을 다른 모듈이 사용하려면 exports 객체를 사용해야한다.
ex)
//test.js
exports.test_log = 'test_log'
//app.js
const test = require('./test.js');
console.log('test log: ${test.test_log}');

2. module.exports
module.exports 객체에 하나의 값 만을 할당한다.

ex)
//num.js
module.exports = function (num) {
return {
num() {return num;},
sum() {return num+num;}
};
//app.js
const num = require('./num.js');
const test = num(5);
console.log('test log: ${test.num()}');
console.log('test log: ${test.sum()}');

3. require
코어 모듈과 npm을 통해 설치한 외부 패키지는 패스를 명시하지 않아도 된다.



ubuntu nodejs설치 및 기본세팅 node.js

1. nodesource의 apt 저장소 추가
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

2. nodejs 설치
apt-get install nodejs

3. packge.json 파일로 프로젝트 정보와 dependency 기록
npm init -y

3. npm으로 패키지 설치
npm install 패키지이름
*) npm install 만 실행할경우 package.json 에 명시된 의존 패키지를 한번에 설치할 수 있다.




특정포트를 사용하는 프로그램 종료

-특정 포트에 접속중인 ip리스트 확인
  netstat -nap |grep 포트번호 
ex) netstat -nap |grep 3000

-특정 포트에서 사용하는 프로그램 확인
lsof -i tcp:포트번호
ex) lsof -i tcp:3000

-특정포트 사용 프로그램 종료
fuser -k -n tcp 포트번호
ex) fuser -k -n tcp 3000

node.js 기초 node.js

node.js - 이벤트 기반의 비동기 방식.



block chain 기본개념 BlockChain

블록체인 - 역할: 추가전용(로그) DB
특징: 블록을 주기적 생성

블록 - 소유권 이전 기록 : 전자서명 포함
 거래 위조 방지: 헤더부, 체인
1) 거래부 - 다수의 거래 기록을 포함
2) 헤더부 - 보안용 추가 테이터 포함
version - 소프트웨어/프로토콜 버전
previousblockhash - 블록체인에서 바로 앞에 윛하는 블록의 블록 해쉬
merklehash - 개별 거래 정보의 거래 해쉬를 2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값
   머클루트(이진트리), 거래부에 포함된 거래가 하나라도 바뀌면 머클루트가 변함(위조방지)
time - 블록이 생성된 시간
bits - 타겟과 난이도를 구함, nonce와 bits 로 합의 알고리즘 (POW)을 구함 
nonce - 최초 0에서 시작하여 조건을 만족하는 해쉬값을 찾을때까지 1씩 증가하는 계산 회수

3) 블록해시 - 블록헤더를 해쉬한 값
헤더부에 있는 모든 정보를 입력값으로 하고 SHA256 해쉬 함수를 적용해서 계산되는 값 32바이트 숫자값

블록체인 기술 -  p2p 네트워크에서 하나의  블록체인(DB)유지하는 기술 (합의 알고리즘)

합의 알고리즘 - 하나의 블록체인을 유지하는 기술
하나의 블록체인을 생성 및 유지, 불변성 제공
블록 체인의 핵심
1) 작업증명(POW)
nonce값을 구해서 최종적으로 블록 해쉬값을 구하고, 이 블록 해쉬값을 식별자로 가지는 유효한 블록을 만들어 내는 것.
2) 충돌 해소
거래 정보의 전파 - 거래 정보를 받은 노드 A는 해당 거래의 유효성을 검증후 거래를 후보블록에 추가후 인접한 다른 노드에 거래정보를 전파.

블록 생성 및 전파 - 블록에 거래 정보가 채워지는 노드는 블록을 생성

블록 체인의 분기 - 분기가 발생하여 충돌하게 될 때는 더 많은 작업 증명이 수행되어 길이가 더 긴 블록을 선택


계속 추가중

1 2 3 4 5 6 7 8 9 10 다음