Cute Bow Tie Hearts Blinking Pink Pointer

전체 글 106

블록체인 마이닝(채굴하기)에 대해 알아보자.

블록체인에서 가장 이해가 안될수도 있는 채굴에 대해서 알아보겠다. 채굴은 퍼블릭 블록체인에서 상당히 중요한 개념이며, 보상과 사용자에게 참여를 유도시키는 핵심기술중 하나이다. 다들, 채굴이 뭔지는 대충은 알고 있을 것이다. 비트코인을 예로 들면, 문제를 맞춘 정답자에게 비트코인을 주게 되는 것이고, 퀀텀은 소유한 양에 맞춰서 이자를 주게 되는 방식이 있다. 그리고 이오스같은 경우는 간접 민주주의 방식으로 모든 사용자에게 동등한 권리를 주지 않고, 대표자들에게 채굴의 권한을 준 후 나눠주는 방식이 있다. 이러한 채굴에 대해서, 하나둘 모두 비교를 하고 싶으나 내용이 워낙 방대할 수 있어서 여기에는 일반적인 비트코인에서 사용되는 채굴 방식을 사례로 들겠다. 채굴의 의미 블록체인에서 채굴을 한다고 할 때, 사..

카테고리 없음 2022.06.14

블록체인 P2P 기술에 대해 알아보자.

목차 -P2P란? -P2P 장점 -P2P 단점 P2P(Peer-to-Peer Or Point to Point) 블록체인의 가장 핵심중에 하나는 탈중앙화입니다. 비슷한 사례로 MP3서비스의 혁명 "소리바다"를 기억하시나요? 소리바다는 사람들끼리 직접 연결을 시켜서 MP3를 공유하던 서비스입니다. 최근에는 토렌트(torrent)같은 서비스가 나왔지만 2000년대 초에는 소리바다가 P2P 서비스의 최고봉이었죠. 즉 P2P는 사람과 사람을 직접 연결하는 기술입니다. 블록체인은 일명 CS구조라고 하는 Client-Server를 채택하지 않습니다. 이미 Server라는 말이 "중앙"화라는 말을 의미 할 수 있기 때문입니다. 물론 P2P도 다른 의미로 CS를 보여줄 수 있습니다. 예를 들어 사람과 사람간의 연결을 하..

블록체인 2022.06.14

[Typescript] 타입스크립트로 블록체인 블록 검증하기

중간에 누군가 데이터를 바꿀 수도 있기 때문에 블록이 변조되지 않았는지, 검증이 필요하다. 블록을 검증하는 조건은 아래와 같이 총 3가지인데, 이를 모두 만족해야한다. 1) 새로운 블럭height 값 = 이전 블럭 height 값 + 1 : height가 1 씩 증가 2) 이전 블럭의 hash 값 = 새로운 블럭의 previousHash 값 3) 블럭의 version, merkleRoot, timestamp, height, previousHash 값을 조합해 hash를 생성했을 때, 블럭의 hash와 값과 동일한지 : 같은 데이터기 때문에 hash도 당연히 같아야한다. 1. 타입선언 @types/Failable.d.ts declare type Result = { isError: false; value: ..

블록체인 2022.06.14

[Typescript] 타입스크립트로 블록체인 블록 구현하기

루트 디렉토리에서 @types 라는 이름의 디렉토리를 하나 생성한다. 그 안에 Block.d.ts 라는 이름으로 파일을 하나 만들어주겠다. 이 파일에서 interface를 정의해줄 것이다!! (interface:타입을 전역적으로 선언하는 것이라고 보면 됨) **blockchain/Block.d.ts (typescript) declare interface IBlock { merkleRoot: string hash: string data: string[] height: number } declare interface IBlockHeader { version: string height: number timestamp: number previousHash: string } **blockchain/blockHea..

블록체인 2022.06.09

[Typescript] 타입스크립트 interface

목차 - 인터페이스(interface란?) - 예제 코드 인터페이스란? 인터페이스는 일반적으로 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용할 수 있다. 인터페이스는 여러가지 타입을 갖는 프로퍼티로 이루어진 새로운 타입을 정의하는 것과 유사하다. 인터페이스에 선언된 프로퍼티 또는 메소드의 구현을 강제하여 일관성을 유지할 수 있도록 하는 것이다. ES6는 인터페이스를 지원하지 않지만 TypeScript는 인터페이스를 지원한다. 인터페이스는 프로퍼티와 메소드를 가질 수 있다는 점에서 클래스와 유사하나 직접 인스턴스를 생성할 수 없고 모든 메소드는 추상 메소드이다. 단, 추상 클래스의 추상 메소드와 달리 abstract 키워드를 사용하지 않는다. 예제 코드 example/interface.ts int..

[Typescript] 기본 설정, 세팅

'작성중' type script 는 런타임이 없다! --> 번들링을 무조건 해야함 즉, 자바스크립트로 바꿔주어야한다. tsc index.ts /dist/app.js #json { "compilerOptions": { "outDir": "./dist/" } } npx tsc --build #json 별칭 경로 설정(paths) { "compilerOptions": { "outDir": "./dist/", "baseUrl": ".", "paths": { "@core/*": ["src/core/*"] } } } npm install -D @types/node ┌ [프로젝트] ├ /src ├─ /core ├── index.ts ├─ utils.ts **index.ts** #typescript -특정 경로를 아래..

[블록체인] 블록체인 특징, 구성, 블록 만들어보기

목차 -블록체인 특징 -블록체인 구성 -블록 만들어보기 1. 블록체인의 특성: 탈 중앙성 블록체인의 가장 중요한 기술적 특성은 탈 중앙성입니다. 블록체인은 거래 기록이 담긴 원장을 정부나 은행과 같은 제삼자에 맡기지 않고, 참여자들이 직접 검증과 승인, 합의 등의 활동을 하며 만들고 관리한다. 또 다른 특성은 투명성이며, 새로운 블록은 생성되는 동시에 모든 참여자에게 전송되어 공유된다. 따라서 블록의 거래 기록은 참여자들 누구나 볼 수 있으며, 참여자 모두가 감시자가 되는 것이다. 다만, 참여자의 실명은 알 수 없기 때문에 익명성의 특징도 갖는다. 세 번째 특성은 불변성으로, 블록이 순차적으로 연결되면, 일단 연결된 블록은 수정하거나 삭제하기 어렵다. 새로 블록을 만들 때는 바로 앞 블록의 해시가 이용되..

블록체인 2022.06.08

AWS 이용해서 웹 애플리케이션 배포하기 2

목차 탄력적 IP 설정하기 할당받은 IP로 터미널 연결하기(조작하기) 구동환경 세팅하기 배포하기(로컬에서 작업한 파일 누구나 다 볼 수 있게 연결하기) 탄력적 IP 설정하기 여기서, 탄력적 IP란? 접속할 때마다 할당된 ip주소가 바뀌는데 이를 고정시켜주는 것! 1) 검색창에 치면, 2) 탄력적 IP 클릭 3) 탄력적 ip 주소 할당 클릭(저는 미리 만들어놓음. 처음이면 아무 것도 안뜨는 게 맞다.) 4) 할당 5) 할당된 ip가 뜬다. 6) 탄력적 ip 주소 연결 클릭 7) 연결한 인스턴스 선택 지난 게시물에서 만들었던 test 인스턴스를 연결하겠다. 8) 연결 9) 확인 탄력적 IP가 설정되었음을 확인 할 수 있다. 터미널 연결하기(할당 받은 ip주소와 연결) 1) 아이디 클릭 2) 연결 3) 복사해..

AWS 2022.05.13

AWS 이용해서 웹 애플리케이션 배포하기 1

목차 인스턴스 시작/생성/추가 할당 받은 IP로 원격 접속하기 보안 그룹 규칙 추가하기 인스턴스 시작/생성/추가 1) AWS에 들어가서 가입해준 뒤, (가입은 알아서...) EC2에 접속한다. 2) 아래 EC2를 클릭하여 접속해준다. 3) 인스턴스 시작을 눌러준다. 4) 원하는 이름 설정 5) 사용하는 OS와 버전 선택 6) 인스턴스 유형 무료버전을 사용해준다... 매우 느리지만, 연습용으로는 적합하다. 7) 키페어 생성하기 8) 키페어 이름 정하기 이름 제외(이름은 마음대로) 나머지는 default 값 그대로 설정한다! 9) 키페어생성 버튼 클릭 이 때, 파일 하나가 다운될 것이다! 이 파일은 절대 잃어버리거나 손상시켜선 안된다. 원하는 디렉토리로 옮겨서 잘 보관해놓자. 10) 나머지는 건들지 않아도 ..

AWS 2022.05.12

MPA, SPA 차이, 장단점

MPA Multi Page Application의 약자(여러 페이지로 구성된 웹 어플리케이션) 사용자의 클릭과 같이 인터렉션이 발생할 때마다 서버로부터 새로운 html을 받아와서 해당 링크로 이동하여 페이지 전체를 새로 렌더링하는 전통적인 웹 페이지 구성 방식이다. SPA Single Page Application의 약자(하나의 페이지로 구성된 웹 어플리케이션) 브라우저에 최초에 한번 페이지 전체를 로드하고, 이후부터는 특정 부분만 Ajax를 통해 데이터를 바인딩하는 방식이다. 장단점 1) SPA의 장점 UX 전체 페이지를 업데이트를 할 필요가 없기 때문에 빠르다! (웹사이트의 성능과 직결된다.) 전체 페이지를 업로드하면서 발생하는 '깜박' 거림이 없다. 페이지의 일부만 바뀌는 것이기 때문에 applic..