TS_blockChain 만들기 (3)
이제는 만들어진 newBlock 의 validation을 해보자.
이미 Block 생성자를 통해 만들어낸 Block 이지만, 완벽한 Block의 유효성 검사를 위해서 2중 3중으로 필터링 하는 듯하다. 금융권과 같이 100%의 무결성을 유지해야하는 분야에서는 꼭 필요한 안전 장치인 것 같다고 어렴풋하게나마 느꼈다.
1. type의 검증 (hash)
static validateStructure = (aBlock: Block): boolean =>
typeof aBlock.index === "number" &&
typeof aBlock.hash === "string" &&
typeof aBlock.previousHash === "string" &&
typeof aBlock.timestamp === "number" &&
typeof aBlock.data === "string";
어떤블록(anyBlock)의 형(type)을 검증하는 과정이다.
2. 이전 block과의 관련성 검증
const getHashforBlock = (aBlock: Block): string =>
Block.calculateBlockHash(
aBlock.index,
aBlock.previousHash,
aBlock.timestamp,
aBlock.data
);
첫 번째 if 문에서 1번에 명시된 함수를 실행하여 형을 검증하고, 2,3 번째에서는 previousBlock과의 연관성(index, previousHash)이 유효한지를 검증한다. 마지막 4번째 if문에서는 gethashforBlock 함수를 통해 hash값이 제대로 도출되었는지를 검증한다. 모든 시험을 통과하면 true를 반환하고, createNewBlock 을 실행할때마다 addBlock이 실행되어 blockchain에 새로 만들어진 Block 을 push 한다.
완성된 블록체인.. data : string 값만 새롭게 넣어주면 함수를 호출할때마다 체인의 블록이 1개씩 늘어난다. data 도 어떠한 규칙성이 있거나 random한 함수를 넣어주면 자동으로 Block 생성이 가능해 질것으로 추측한다.
출처: https://nomadcoders.co/typescript-for-beginners/lobby
타입스크립트를 처음 접하는 거기도 해서 총 3번 봤다. 이제 좀 ts의 멋짐을 알것같다 ㅎㅎ
Author And Source
이 문제에 관하여(TS_blockChain 만들기 (3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leejyart/TSblockChain-만들기-3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)