인프런 -블록체인 이더리움 부동산 댑(Dapp) 만들기
이더리움 부동산 스마트 계약 개발
1. 부동산 DAPP 미리보기 및 주의점
- 스마트 계약 적용 가능 사례
- 부동산 시나리오 (예) :
- 부동산 중계인 통해 매수 의사 전달
- 계약 요청
- 상호 동의
- 계약 완료
- 대금 지불
- 명의 이전
- 등 …
단계를 거칠 때마다. 해당 내용들이 트랜잭션을 통해 블록체인에 저장되면, 영구히 저장이 되면서 고칠 수가 없게 된다.
- 뻥 or 수작이 불가능 하게 된다. 명의 이전을 하게 될 때, 일일이 프린트 해서 작성하지 않아도 된다는 뜻이다. 블록체인 안의 과거 기록들을 추적하면 거래에 대한 기록들이 한번에 나오기 때문이다.
- 블록에 저장된 자체만으로 효력이 발생
- 단계별로 제작하지 않으며, 간단한 사이클을 개발할 예정.
- A라는 사람이 전체 매물을 올려 놓으면, B라는 사람이 매입가를 지불하고 매입을 완성시킬 수 있는 사이클의 예제 만들 예정.
- 매물을 소유한 사람이 사이트에 매물을 올려놓으면, 사이트에 접속한 유저들이 매물을 골라서 자신의 정보를 입력하고, 매입가를 트랜잭션을 통해 송금하면 매물을 소유하게 되는 간단한 시나리오
- 현실적으로는 입증 가능한 단계들을 거쳐야 함
주의점
- 모든 내용을 블록체인에 저장할 것인가?
- 꼭 필요한 내용만 블록체인에 저장 (비용을 요구하므로)
- 기타 부분은 기존의 데이터베이스 사용 (ex: MySQL.. 등)
- 예를 들어
- 해당 사진 매물리스트는 json파일에 입력된 내용을 불러옴
- 데이터 저장 속도는 블록체인 느림 (퍼포먼스가 중요하다면 기존 관계형 데이터베이스를 혹은 다른 저장매체 사용하는게 나을 수도 있다. 여기의 키 포인트는 중요한 정보만 ex 매입한 매물의 id와 또 그 매입자의 정보만을 저장. 퍼포먼스 적으로는 크리티컬 하지 않다)
결론 : 모든 부분을 블록체인만 고집하지 않고 기존의 데이터베이스와 MIX
2. RPC Error 해결 법 미리 알기
- 프론트엔드 개발을 시작하면서 마주치게 될, 메타마스크 에러에 대해서 해결책 제시 그 중 RPC 에러의 해결법 강의
- 메타마스크가 private network , 즉 가나슈 서버에 연결해서 트랜잭션을 보낼 때, 간혹 RPC 에러를 마주하게 되는데, 이 상황이 벌어질 수 있는 시나리오가 메타마스크를 쓰면서 dAPP을 테스팅 하다가, 가나슈에 있느 계정 balanced를 리셋해서, 새로운 마음으로 테스팅하고 싶어졌을 때. 가나슈를 리스타트하게 되었고 그 다음에 재 배표를 한 뒤, 댑을 다시 실행해서 매물 구입을 하면 이 때 RPC에러가 발생.
- 가나슈를 리스타트 했기 때문에 메타 마스크 캐쉬에 남아 있는 전 트랜잭션 정보들이 무용지물이 되버리면서 에러가 발생한다. 즉 현재 어느 네트워크에 연결되어있는지 메타마스크가 헷갈려 하는 것이다.
- 두 가지 해결책이 있다.
- 가나슈의 네트워크 아이디를 변경 후 재배포 -> 메타 마스크의 네트워크를 다른 네트워크로 잠깐 변경한 뒤, 다시 localhost로 돌아오고 나서 (메타마스크 내에서 연결을 새로고침 하는 방법) 트랜잭션을 보내면 해결
- 메타마스크에서 settings 클릭 -> 가장 아래 reset account를 클릭. 캐쉬에 쌓인 히스토리를 전부 지우는 것. 간단하다는 장점이 있지만, 여태까지의 트랜잭션 내역들을 모두 지우게 된다.
참조
inflearn 강좌 https://www.inflearn.com/course/blockchain-%EC%9D%B4%EB%8D%94%EB%A6%AC%EC%9B%80-dapp#