header에 있는 정보와 body에 있는 정보를 합친 값을 hash라 하고 hash는 그 블록의 고유한 값입니다.npm install crypto-jsSHA256( ) 해시 함수 안에 어떠한 값을 넣어도 64글자, 32바이트로 암호화하여 반환해줍니다.하지만 반환한 결
npm installnpm install typescript ts-node @types/node - Typescript 및 node 타입 정의 파일 설치npm install -D tsconfig-paths - paths를 사용하여 절대경로를 지정할 수 있도록 패키지 설
블록의 난이도를 조절하기 위해 사용할 난이도를 측정할 블록의 범위와 블록 생성 시간 , 생성 시간 단위를 따로 변수로 빼두었습니다.또한 블록체인에 최초의 블록인 제네시스 블록도 만들어주었습니다.Block Class가 extends를 사용하여 BlockHeader Cla
block class 부분은 지난시간에 블록을 만들었을때의 코드와 크게 바뀐것은 없고 제네시스 블록이 다른 파일에서 미리 하드코딩으로 작성해 두고 getGenesis() 메서드로 가져와서 사용했었는데 block class에서 제네시스 블록을 만드는 함수를 만들어서 사용
먼저 서버를 실행하면 ws.listen()에 의해 p2p.ts에 있는 listen()함수가 실행되며 7545 port로 웹소켓 서버가 열립니다.이렇게 열어둔 웹소켓 서버로 누군가가 접속하게 된다면 저는 서버가 되는것이고 요청보낸 컴퓨터는 클라이언트가 되는것입니다.이러한
정의 토스처럼 어떤 은행이던 잔액을 확인할 수 있듯이 , 지갑이라는것은 블록체인 기반으로 만들어진 코인(비트코인,이더리움)들을 지갑이라는 프로그램에서 모두 확인할 수 있습니다.출금 예시 보내는이 : 홍길동 받는이 : 코난 금액 : 10,000위와 같이 예시를 들
오늘은 지난번에 공부했었던 지갑에 관련하여 오늘은 지갑 서버를 만들어볼것인데 지갑서버와 연결할 블록체인 HTTP 서버와 P2P 네트워크는 전에 미리 만들어 두었던것들을 사용하여 연습해보겠습니다.아래의 사진은 전체적인 지갑서버와 블록체인 HTTP 서버와 P2P 네트워크의
지난 시간에 만들어둔 Transaction의 Type을 정해주는 Transaction interface를 활용하여 Transaction class를 만들어주도록 하겠습니다.Transaction의 Input 내용인 Txin에서는 Transaction의 고유한 hash값
지난 시간에 블록채굴에 대한 보상 내용이 담긴 코인베이스 Transaction을 생성해보았으니 오늘은 일반적인 거래내역이 담긴 Transaction을 만들어 보겠습니다.지난번에 만든 unspentTxOut Class에 나의 UTXO 내용을 가져오는 getMyUspent
지난 시간에 코인베이스가 아닌 일반적인 Transaction을 만드는 작업을 해보았는데 이제는 Transaction을 만들때 사용한 TxIns의 내용을 UTXO에서 삭제하고 Transaction을 만들고 나온 TxOuts의 내용을 새로 UTXO에 추가하는 작업을 해보겠
chain Class에 Transaction Pool을 빈배열로 생성해주고 Transaction Pool 내용을 가져오는 메서드 getTransactionPool와 Transaction Pool에 Transaction을 추가하는 메서드 appendTransactionP
다른 노드들과 같은 Transaction Pool을 사용하도록 Transaction이 발동하면 브로드캐스트를 해주어야합니다.Transaction이 성공적으로 생성되었을때 message 변수에 Type은 receivedTx로 payload에는 transaction을 담아
이더리움 1. Smart Contract (스마트 컨트렉트) > - 스마트 컨트랙트란 디지털로 작성된 계약서를 의미합니다. 비트코인과 다르게 이더리움은 Transaction안에 코드를 넣어 계약을 코드로 구현하고 일정 조건이 충족되면 거래가 이행되게 하는 계약입니다
테스트하고 개발할때 사용하는 이더리움 RPC 클라이언트 입니다.설치npm install -g ganache-cli실행 명령어ganache-cli or npx ganache-cli기능블록과 체인 정보 / Transaction 확인 가능Transction이 발동되면 바로
RPC 서버란 외부의 서버컴퓨터에 접속해 제어하는 경우를 말합니다, 이더리움은 클라이언트 프로그램은 RPC 명령어를 JSON 형태로 지원합니다. 이것을 Ethereum JSON RPC라고 하는데, 이것을 이용해서 블록체인의 정보를 얻거나 Transaction을 발생시키
MetaMask가 설치되어 있고 실행중이라면 브라우저에서 window.ethereum을 찍어보면 MetaMask가 만들어둔 ethereum 객체가 생성되 있는것을 확인할 수 있습니다.이것을 가지고 Front 서버에서 MetaMask가 설치되어있는지 확인 할 수 있습니다
Geth는 이더리움 클라이언트 소프트웨어로, 이더리움 블록체인 네트워크의 풀노드를 구축하기 위해 사용됩니다.Go 언어를 기반으로 이더리움 풀노드를 구현하고 작동시키기 위한 명령어 라인 인터페이스를 제공한다.클라이언트 소프트웨어 중에서 가장 유명하고 많이 쓰이는게 Get
Geth 오늘 할것 RPC 통신 MetaMask 테스트 Transaction 테스트 Transaction Pool에 내 Trnansaction이 있는지 확인후 mining을 합니다. Nodejs 환경에서 web3 라이브러리를 이용하여 Geth와 연결해볼 것입
스마트 컨트랙트 ( Smart Contract ) Smart Contract란 계약을 코드로 작성하고 일정 조건이 충족되었을때만 해당 계약(코드)이 실행되도록 하는 script입니다. 스마트 컨트랙트는 스마트 컨트랙트 언어 중 가장 유명한 솔리디티라는 언어를 기반으로
220712 개발환경 세팅 npm init -y npm install keythereum web3 keystore를 복호화하여 개인키 구해보기 > - keystore란? 이더리움 Private Key을 암호화한 파일입니다. 복호화하기 위해선 암호화 당시 사용
Truffle : mkdir truffle -> cd truffle -> npx truffle initFront : create-react-app- front 블록체인 네트워크 : npx ganache-cliGanache로 실행한 지갑 주소와 개인키를 미리 복사해놓습니
Prettier 사용할 디렉토리 이동npm init -ynpm i -d prettier-plugin-solidity전역으로 prettierr 설정 되어있으면 안해도 됩니다.Root 디렉토리의 .vscode 디렉토리를 생성하고 settings.json 파일 생성합니다.모
\-> 지난 블록체인 Block-Chain - 이더리움 DApp - Counter 만들기 ( Feat. Ganache ) (1) 포스트에서 이어집니다.Ganache network를 재실행하게 되면 배포한 Smart Contract가 초기화되기 때문에 자동으로 json
Interface > - Interface란 간단하게 객체에 담을 내용을 지정해놓은 것입니다. > - Token을 생성할때에도 아래와 비슷한 Interface 형식으로 생성을 할 것입니다. Solidity Code 작성 > - 위와같은 Contract는 Const
Voting이란 Contract를 생성한 뒤 후보자를 담을 배열인 candidateList와 각 후보자의 득표수를 담당할 votesReceived라는 상태변수를 만들어주었습니다.해당 Contract가 처음 배포 될 때 인자값으로 string으로 후보자 배열을 받아 후보
mkdir trufflecd truffletruffle inittruffle-config.js 파일의 development 주석 풀기npm init -ynpm install openzeppelin-soliditytruffle 디렉토리를 생성한 후 truffle init
ERC-20과 ERC-721로 만든 Token은 모두 이더리움 기반 토큰이라는 공통점을 가지고 있지만, 가장 큰 차이점은 대체 가능성(fungible)입니다.ERC-20으로 발행한 Token은 대체 가능한 토큰입니다. A가 가진 1 토큰의 가격이 500원이라고 가정할때
지난 시간에는 open-zeppelin을 사용하여 간단하게 NFT를 발행해보았습니다.이번 시간에는 직접 ERC-721 규격을 간단하게 축소하여 NFT를 발행해보겠습니다.위와 같이 간단한 함수 , 이벤트들만 정의한 Interface를 작성해줍니다. 이 Interface들
MetaData > - MetaData는 NFT의 핵심으로 JSON 파일로 되어있으며 아래와 같은 내용을 가지고 있습니다. NFT의 이름 NFT에 대한 설명 호스팅된 이미지의 링크 특성들 이 외에 어떤 값이든 추가할 수 있지만 OpenSe
SSI란 자기주권 신원증명으로 오늘날의 ID 기술의 부족한 부분을 개선하기 위해 나온 기술로 기반 기술로는 블록체인이 사용됩니다.SSI 기술과 오늘날의 ID 기술을 비교하여 어떤 점이 더 좋은지 알아보면, 오늘날의 신분증은 ID 시스템이 다르면 사용할 수 없거나 인증을
블록체인 성능 확장 솔루션 블록체인의 문제점 > 블록체인이 현재 가지고 있는 문제점이라 하면 가장 먼저 <sapn가 느리고, 수수료가 비싸다는 점입니다. 퍼블릭 블록체인같은 경우에는 대게 불특정 다수가 참여하여 거래를 처리하기 때문에 모든 노드들이 결과에 따른 합의
자네 Geth를 얼마나 잘 사용하는가?
[작성중]블록체인 개발을 하는데 도움될 얕고 넓은 지식을 쌓아보자!
자네 계약주소가 어떻게 생성되는지 알고 있나?
자네 외부 컨트랙트를 호출할 수 있는가?
자네 EVM과 얼마나 친한가?