누구나 스마트 계약을 만들 수 있습니다.

스마트 계약은 새로운 분산 경제에서 비즈니스를 수행하는 방법을 촉진합니다. 대부분의 스마트 계약은 Ethereum, Lisk 또는 Cardano와 같은 DApp (Decentralized Application) 플랫폼에서 이루어지며 IBM과 같은 대기업은 자체 사업을 시작하고 있습니다. 새로운 기술을 직접 다루기보다는 IBM과 같은 거대 기술 기업이 제품을 구축하는 것을 신뢰하는 회사가 많기 때문에 이는 의미가 있습니다..

스마트 계약 개발은이를 구축하는 방법을 아는 개발자에게 시장성있는 기술이 될 수 있습니다. 스마트 계약의 놀라운 부분은 구축하기 어렵지 않다는 것입니다. DApp 플랫폼과 주변 도구를 통해이를 생성하고 자신 만의 블록 체인 기술을 쉽게 구축 할 수 있습니다..

자바 스크립트 개발자는 블록 체인에 겁을 받아서는 안됩니다. 조금 더 이해하면 블록 체인은 일반적으로 구현하는 대부분의 다른 프레임 워크처럼됩니다..

스마트 계약 계획

스마트 컨트랙트를 처음 생성 할 때 무엇을 촉진할지 결정해야합니다..

이 예에서는 이벤트 티켓팅에 중점을 둡니다. 티켓팅은 많은 양의 티켓을 구매하는 스캘 퍼와 가짜 티켓을 사용하는 사람들에게 큰 문제가 있습니다. 블록 체인 기술은 많은면에서 탁월합니다. 그들 중 두 가지는 거래를 촉진하고 정보를 추적하고 있습니다..

이 때문에 계약의 간단한 코드 줄로 티켓 재판매 가격을 제한 할 수 있습니다. 이를 통해 스 캘퍼는 티켓을 판매하는 것이 수익성이 떨어지기 때문에 많은 티켓을 구매할 수 없습니다. 스마트 계약을 사용하면 소유자별로 고유하고 위조 할 수없는 고유 한 토큰 화 된 티켓을 생성 할 수도 있습니다. 콘서트, 축제, 스포츠 행사에 참석하는 것을 좋아하는 사람이라면 매력을 볼 수 있습니다..

DApp 플랫폼 옵션

다음으로 선택할 것은 계약을 구축 할 DApp 플랫폼입니다..

이더 리움 가장 크고 가장 확립 된 플랫폼입니다. 또한 가장 활발한 사용자 기반을 가지고 있으며 모든 유형의 개발에서 질문에 답할 수있는 활발한 커뮤니티는 제품을 완성하는 데 중요합니다. 그러나 한 가지 단점은 자체 언어 인 Solidity를 사용하여 계약을 작성한다는 것입니다..

다른 옵션, Lisk, Javascript 기반 DApp 플랫폼이므로 새로운 구문이 발생하지 않습니다. 또한 완료되면 앱을 게시 할 수있는 자체 DApp 스토어 (구글 플레이 또는 iTunes 스토어)가 있습니다..

시도해 볼 수도 있습니다. 카르 다노 Ethereum의 설립자에 의해 구축되었으며 크고 인상적인 팀이 있습니다. 그들의 제품은 여전히 ​​새롭지 만 계약 정보를 거래 데이터와 분리하겠다는 약속을 이행한다면 앞으로 나아가는 올바른 선택이 될 수 있습니다..

지금은 Ethereum 또는 Lisk를 선택하는 플랫폼으로 살펴 보겠습니다..

Javascript 개발자로서 Lisk는 이미 언어에 대한 경험이 있기 때문에 논리적 결정처럼 보일 수 있습니다..

그러나 Ethereum을 계산하지 마십시오. 개발 커뮤니티는 너무 강력해서 사용 가능한 초과 정보로 Solidity에 대한 오해를 보완 할 수 있습니다. Ethereum에는 Consensys에서 만든 Truffle 프레임 워크도 포함되어있어 스마트 계약 애플리케이션을 쉽게 통합하고 테스트 할 수 있습니다..

이더 리움 스마트 계약 프레임 워크

스마트 계약 구축

견고 함은 실제보다 더 위협적으로 들립니다. 언어에 대해 가장 먼저 눈에 띄는 것은 JavaScript 클래스와 매우 유사하다는 것입니다. 그러나 세미콜론의 요구 사항 및 해싱 함수 사용과 같은 몇 가지 미묘한 차이가 있습니다. 그만큼 해싱 함수 고유 키를 만들고 다른 변수에 매핑하는 데 사용됩니다. 이 예에서는이를 사용하여 고유 한 티켓을 만들고 구매하는 계정에 매핑합니다..

첫 이더 리움 계약을 구축 할 때 개발 환경을 사용하는 것이 좋습니다. remix.solidity.org. 계약을 배포하고 서로 다른 이더 리움 계정에서 상호 작용할 수있는 대화 형 환경을 제공합니다. 드롭 다운 메뉴를 사용하면 해당 버튼을 눌러 계정을 전환하고 계약의 기능 호출을 사용할 수 있습니다..

주의해야 할 사항

Solidity의 독특한 점은 주소 지정 사용입니다. 모든 이더 리움 계정에는 고유 한 주소가 있으며 해당 주소는 계약에 동의하는 당사자를 나타냅니다..

예제 발권 계약에서 이벤트를 생성하는 사람은 누구나 자신의 계정 주소를 첨부 할 수 있습니다. 누구든지 새 티켓을 구매할 때마다 자금이 이벤트 소유자에게 직접 이체되어 중개자가 나옵니다. 구매자가 전화를 걸면 자금이 계정에서 인출되고 주소로 식별되어 소유자에게 전달됩니다..

Solidity는 또한 스마트 계약 호출에 자금을 연결하는 독특한 방법을 가지고 있습니다. 모든 함수 호출에는 메시지가 함께 제공됩니다. 이 메시지에는 계약 소유자에게 보내려는 이더 값뿐만 아니라 계정 주소를 포함하여 보낸 사람의 고유 정보가 포함될 수 있습니다..

Solidity에서 모든 계약 통화가 무료는 아니라는 점도 주목할 가치가 있습니다. 계약의 정보 변경 (예 : 계약 실행 요금 “가스”를 확인하는 기계 네트워크 인 티켓을 구매하거나 사용합니다. 가스는 기본적으로 네트워크의 컴퓨팅 성능을 활용하는 데 드는 비용입니다..

정보에 대한 계약 만 쿼리하는 기타 호출 (예 : 티켓 가격을 조회하거나 남은 티켓 수를 확인하는 것은 무료입니다. 계약에 대한 정보가 업데이트되지 않기 때문입니다. 이러한 활동에는 위험이 없습니다..

JavaScript에 연결

Solidity에서 작업 할 때 가장 어려운 부분은 계약을 Javascript와 통합하는 것입니다. 이것은 모두 트러플 프레임 워크.

계약을 통합하는 첫 번째 단계는 계약을 배포하고 테스트 네트워크로 마이그레이션하는 것입니다. Truffle은 Ganache라고하는 별도의 Ethereum 테스트 네트워크 인 자체 RPC를 제공합니다. 이 프로세스는 Javascript 애플리케이션을 통해 테스트 네트워크의 주소를 사용하여 호출 할 수있는 계약의 JSON 버전을 제공합니다..

이 프로세스에 대한 자세한 정보를 찾고 있다면 Truffle은 문서와 예제 상자에 설명을 잘 정리했습니다. 웹 사이트.

트러플 박스

스마트 계약을 만들 때 극복해야 할 또 다른 어려운 점은 개념화하는 방법입니다. 블록 체인을 웹 개발자처럼 생각하면 데이터베이스를 대체하는 것으로 볼 수 있습니다. 모든 정보에 대한 하나의 중앙 집중식 소스 대신 정보로 이어지는 일련의 계약 및 거래가 있습니다..

블록 체인은 데이터베이스와 같기 때문에 자연스럽게 할 일은 계약을 서버에 연결하는 것입니다. 계약에 대한 API 계층을 생성하면 AJAX 요청을 작성하는 것만 큼 쉽게 애플리케이션의 클라이언트 측에서 정보에 액세스 할 수 있습니다. 좋은 예제 상자 이 설정을 얻으려면 트러플 웹 사이트에서.

블록 체인은 데이터베이스와 유사하지만 완전히 동일하지는 않습니다. 트랜잭션, 해싱 및 블록 생성과 관련된 완전히 고유 한 프로토콜을 가지고 있습니다. 이것은 이더 리움 개발에서 가장 어려운 부분 일 수 있습니다. 티켓팅 예제에서는 티켓을 사용하기위한 호출과는 다르게 티켓 구매를위한 계약 호출을 구성해야합니다. Ethereum Virtual Machine은 이러한 호출에 대해 까다 롭습니다..

이것은 대규모 이더 리움 개발 커뮤니티가 유용한 또 다른 영역입니다. Ethereum Stack Exchange에서 이미 질문에 대한 답변을 받았을 가능성이 높으며 그렇지 않은 경우 다른 개발자가 계약을 통해 기꺼이 도와 줄 것입니다..

결론

이 기사는 Solidity 작성을 시작하는 방법을 가르치기위한 것이 아닙니다. 대신 스마트 컨트랙트가 무엇인지, 자바 스크립트 애플리케이션에서 어떻게 구현할 수 있는지에 대한 안내를 제공했습니다. 웹 개발을 아는 사람이라면 누구나 블록 체인을 기반으로 구축 할 수 있습니다..

블록 체인이면의 기술은 이해하기 어려울 수 있지만 다른 프레임 워크 나 개발자 도구와 마찬가지로이를 사용하기 위해 어떻게 구축되었는지 알 필요는 없습니다. 블록 체인의 신비한 아우라로 인해 멋진 것을 만들지 마십시오..