문서 등록을 위한 스마트 계약

블록체인에 문서를 등록하기 위한 스마트 컨트랙트 개발

후드
내가 모든 이야기를 첫 번째 단락으로 후드 아래로 시작하는 이유가 궁금했던 적이 있습니다 🤔. 음, 이유는 간단합니다. 이유/원인/동기/분노 또는 어떤 단어가 마음에 떠오르지 않고 시작되는 이야기는 없습니다.

그래서 오늘의 이야기는 블록체인 개발에 대해 배우는 과정에서 시작되고 고무됩니다. 사실 마지막 10-12개의 이야기는 제가 배우면서 공유하기 때문에 블록체인 개발에 관한 것입니다.

새로운 스택과 기술을 배우고 최대한 빨리 잠재고객과 공유하게 되어 기분이 좋습니다. 게시 버튼을 누르면 만족스럽습니다 😁.

시작하기
이야기를 시작하겠습니다. 아이디어는 문서를 저장하고 작업하기 위한 스마트 계약을 만드는 것입니다.

블록체인 데이터는 변경 불가능하고 일관되며 모든 사람이 액세스할 수 있고 영구적이며 가장 중요하게 보호됩니다. 이 블록체인 때문에 확실히 애플리케이션의 미래가 될 것입니다.

그리고 블록체인의 한 가지 사용 사례는 예를 들어 Aadhar 카드(인도용)와 같은 시민의 신분증과 같은 일관된 데이터를 저장하는 것입니다. 현재 데이터는 정부/중앙 기관에서 관리하는 중앙 집중식 서버에 저장되어 공격자와 더 많은 원치 않는 활동에 취약합니다.

필요한 모든 문서를 블록체인에 저장하면 이점이 있으며 더 중요한 것은 보안이 유지된다는 것입니다.

스마트 계약 작성
2개의 변수가 있는 2개의 기능과 스마트 계약을 사용할 준비가 되었습니다. 물론 프로덕션 과정에서 더 많은 변경을 수행하고 더 많은 체크포인트와 유효성 검사를 추가해야 할 수도 있습니다.

논리
먼저 해시를 키로 사용하여 저장할 수 있는 문서를 사용합니다. 문서 해시는 문서 업로드 시 생성되며 우리를 위해 이를 수행할 수많은 타사 모듈이 있으므로 처음부터 코드를 작성할 필요가 없습니다.

해싱 알고리즘은 문서의 내용을 읽고 해당 내용을 사용하여 해시를 생성하므로 다음에 단일 내용이 변경되더라도 전체 해시가 변경되어 취약성과 이중성을 피하는 새로운 ID에 모두 함께 저장됩니다.

맵 데이터 구조는 해시를 키로 저장하고 값은 문서가 블록체인에 저장되는 타임스탬프가 됩니다.

mapping(string => uint256) documents;


또 다른 변수는 소유자의 주소를 저장할 것입니다. 이는 유효성 검사를 위해 중요합니다.

가능한 한 많은 변수를 생성할 수 있지만 변수가 많을수록 트랜잭션 또는 문서 저장 시 더 많은 가스 비용이 발생하므로 최소화하십시오.

address ownerAddres = msg.sender;


msg 변수는 solidity 또는 EVM의 전역 변수입니다. javascript의 window, HTML의 div와 같습니다.

문서 저장 방법
이제 문서를 블록체인에 저장하고 블록 생성 시점의 타임스탬프를 반환하는 메서드를 작성합니다.

addDocument.sol

해시 값은 해시된 문서여야 하며 클라이언트 측 또는 서버에서 생성할 수 있습니다.

문서를 확인하거나 얻는 방법
마지막 부분은 해시를 사용하여 블록체인에서 문서를 다시 가져올 수 있는지 가져오거나 확인하는 것입니다.

verifyDocument.sol

우리는 단순히 문서 맵을 반복하면서 얻은 데이터를 반환합니다. 날짜는 메소드의 매개변수에 제공된 문서 해시가 정확함을 알려줍니다. 이것은 또한 해시가 생성된 사용자가 제공한 문서가 정확하고 동일한 문서 사본이 블록체인에 저장되어 있음을 의미합니다.

결론
따라서 문서 저장 및 확인을 위한 스마트 계약이 완료됩니다. 프로덕션 기반의 경우 해시가 정확하고 업로드된 문서가 필수이며 더 많은 것과 같은 더 많은 유효성 검사를 추가해야 합니다. 또한 저장 해시 문서에 과도한 가스 비용이 들지 않는지 확인해야 합니다. 그렇지 않으면 발신자가 가스를 지불해야 합니다.

Github repository

다음 시간까지 좋은 하루 되세요.

저희 웹사이트 - iHateReading

좋은 웹페이지 즐겨찾기