일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- multicall
- chainlink 설명
- 머신러닝기초
- git rebase
- ethers type
- vue기초
- ethers typescript
- ethers
- Vue.js
- nestjs 튜토리얼
- ambiguous function description
- Vue
- 스마트컨트렉트프록시
- ethers v6
- SBT표준
- 러스트 기초
- 컨트렉트 배포 자동화
- 컨트렉트 동일한 함수이름 호출
- 프록시배포구조
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트테스트
- 러스트기초
- 스마트컨트렉트 함수이름 중복 호출
- 깃허브명령어
- 체인의정석
- 스마트 컨트렉트 함수이름 중복
- 러스트 기초 학습
- nest.js설명
- ethers websocket
- rust 기초
Archives
- Today
- Total
체인의정석
Hash 만드는 모듈 - (해시데이터 블록체인에 저장하기 - PART 02) 본문
728x90
반응형
DB에 저장시키고 (await) - 01장
해시값을 뽑아내고 나서 (await) - 02장,
블록체인에 저장 (await) - 03장,
중 2장의 내용인 파일을 해시화 하는 것은 다음과 같이 진행한다.
await를 걸어서 파일 해시가 진행 된 다음에 다음 동작이 이어지도록 한다.
file_hash = await get_hash(file_path);
console.log("file_hash >>>" ,file_hash);
이때 readFileSync, readFile 2가지 방법이 있다.
일반적으로는 뒤에 작업을 이어서 빠르게 하기 위하여 readFile을 쓰는 경우가 있다. (주석 참고)
하지만 여기서는 해시값이 나오고 나서, 블록체인에 저장시키기 위한 코드이다.
블록체인에서는 트렌젝션을 보내는 작업때문에 동기처리를 해주는것이 중요하다.
따라서 순서대로 동작시키기 위하여 Promise객체를 resolve로 보내주어서 이를 블록체인 사인 모듈에 넘겨주게 된다.
const get_hash = async(targetFile) => {
return new Promise(async(resolve, reject) => {
let input = fs.readFileSync(targetFile);
// let input = fs.readFile(targetFile, function(err,data){
// if(err){
// consol
// return err
// }else{
// console.log(data)
// return data;
// }
// });
console.log("get hash input >>> " ,input)
if(input){
let output = hash.update(input).digest('hex');
console.log(output)
resolve(output);
}else{
reject("hash error");
}
})
}
get hash input을 보면 hash에 들어가는 input이 찍히고, 해당 파일의 해시가 찍힌다.
[2020/10/19 10:54:41] [LOG] get hash input >>> <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 04 38 00 00 04 38 08 06 00 00 00 ec 10 6c 8f 00 00 20 00 49 44 41 54 78 5e ec dd 07 b4 1f 55 b9 ... 67317 more bytes>
[2020/10/19 10:54:41] [LOG] e877bde4e729ada3367c3e4535f49a2f
[2020/10/19 10:54:41] [LOG] file_hash >>> e877bde4e729ada3367c3e4535f49a2f
IT 유튜브 타임해커 보러가기
www.youtube.com/channel/UCHsRy47P2KlE749oAAjb0Yg?view_as=subscriber
728x90
반응형
'개발' 카테고리의 다른 글
Azure 체험 계정 만들어 보기 (0) | 2020.10.22 |
---|---|
MS-Azure 사용법) Azure 설정 가이드 - 리소스 정리 (0) | 2020.10.22 |
파일 업로드 기능 구현multer 사용하기 - (해시데이터 블록체인에 저장하기 - PART 01) (0) | 2020.10.16 |
input 태그로 Button만들고 관리하기 (0) | 2020.10.14 |
ERC 20 주요 업데이트 사항(0.6 버젼) override, virtual, _beforeTokenTransfer의 역할 (0) | 2020.10.07 |
Comments