How To Become A Blockchain Developer - Blockgeeks

Ameer Rosic

제목에서 알 수 있듯이이 가이드에서는 블록 체인 개발자가되는 방법을 보여 드리겠습니다. 곧 보시는 바와 같이 블록 체인 개발은 일반 웹 개발과 크게 다르지 않습니다. 당신을 위해 일을 쉽게하기 위해이 가이드를 작성했습니다. 블록 체인 개발을 배우고 각 섹션의 끝 부분에 조치 단계를 제공합니다.

비트코인 블록체인의 개발 범위는 약간 제한적이었습니다. 그러나이 게임은 세계 최초의 프로그래밍 가능한 블록 체인 인 Ethereum의 출현으로 완전히 바뀌 었습니다. 전 세계 개발자는 마침내 블록 체인 위에 응용 프로그램을 구축 할 수있는 기회를 얻었습니다. 이것이 블록 체인 개발을 배우는 것이 그렇게 뜨거운 기술이 된 이유입니다.

Blockgeeks 도서관에서 무료 레슨을 즐기십시오!

우리가 “블록 체인의 시대”에 살고 있다는 것은 말할 필요도 없습니다. 그것이 우리의 미래에 미칠 수 있는 영향은 정말 무섭고 위대합니다. 그렇다면 어떻게 “블록 체인 액션”을 얻을 수 있습니까? 블록 체인 개발자가되려면 수행해야 할 특정 단계가 있습니다.

가이드가 끝날 때 여행을 시작하는데 필요한 도구가 제공되길 바랍니다. 당신이 개발자가되는 것에 대해 진지한 경우, 우리는 당신을 위해 몇 가지 기대를 설정해야합니다. 첫째, 시간이 걸릴 것이고 교육에 시간과 자원을 바칠 필요가 있습니다 (온라인 수업을 통해 블록 체인 개발 과정을 계속할 수 있습니다). 둘째, 즉각적인 결과를 기대하지 마십시오. 블록 체인 개발자가되는 것은 마법의 약이 아닙니다.

그래서, 그렇게 말하면서, 당신의 여행을 시작합시다.

블록 체인 개발자가 되십시오 - 이정표 #1: 기본 사항 이해

블록체인 개발 도구

블록 체인 기술과 같이 새롭고 혁명적 인 것을 가진 가장 큰 장애물 중 하나는 시스템에 필수적인 다양한 개념을 익히는 것입니다.

초보자 인 경우 익숙 할 필요가있는 특정 용어가 있습니다.

배우다 블록 체인 기술

블록 체인: 블록 체인은 각 블록이 중앙 감독없이 가치있는 데이터를 포함하는 블록 체인입니다. 그것은 암호로 안전하고 불변입니다.

분산 형: 블록 체인은 아무 것도 감독하는 중앙 기관이 없기 때문에 분산 된 것으로 알려져 있습니다.

합의 메커니즘: 분산 된 네트워크가 특정 문제에 대한 합의에 오는 메커니즘.

광부: 계산 능력을 사용하여 블록을 채굴하는 사용자.

암호 영역에서 널리 사용되는 이러한 용어에 대해 자세히 배우는 것이 좋습니다. 당사의 포괄적인 용어집을 살펴볼 것을 적극 권장합니다. 그렇지 않으면 당신은 매우 당신의 교육에 더 손실됩니다 이러한 기본 용어를 배우는 것이 중요합니다. 이제 다음으로 블록 체인의 기술적 측면에 대해 좀 더 교육 할 때입니다.

블록 체인 위에 fin-tech 응용 프로그램을 만드는 방법의 기술적 측면에 관심이 있다면 암호 경제학의 기능을 확실히 배워야합니다. 대부분의 개발자는 일반적으로 방정식의 “암호”부분에 정통하지만 “경제”부분에 대한 지식은 극히 부족합니다.

이러한 지식의 차이는 이러한 ICO 중 일부를 연구 할 때 매우 분명합니다. ICO의 경제 측면이 잘 고려되지 않았다는 것을 보는 것은 매우 분명합니다.

그래서, 그것에 비추어 볼 때, 경제학에 대해 조금 읽어보고 그것에 대한 일반적인 생각을 갖는 것이 좋은 생각일 수 있습니다. 일반적으로 암호 경제학에 대해 배우고 싶다면 여기에서 기사를 확인하십시오.

암호화에 흥미가 있고 서명의 작동 방식과 공개 키 암호화의 의미를 알고 싶다면 이것을 읽으십시오.

그 후에는 비트 코인이 어떻게 작동하는지 이해하는 것이 좋습니다. Bitcoin은 가장 광범위하고 최고이며 블록 체인 기술의 더 우아한 응용 프로그램 중 하나입니다. 블록 체인 기술이 미치는 영향 때문에 순전히 달성 할 수있는 가장 좋은 예라고 부를 수도 있습니다.

따라서 사토시 나카모토 (Satoshi Nakamoto) 의 백서를 읽는 것이 좋습니다. 여기에서 찾을 수 있습니다. 이제 첫 번째 이정표가 완료됩니다.

여기에서 수행해야 할 작업 단계를 확인해 보겠습니다.

다양한 용어와 어휘에 익숙해지기.

블록 체인의 기술적 측면을 읽어보십시오.

비트 코인 백서를 읽으십시오.

블록 체인 개발자가 되십시오 - 이정표 #2: 프로세스 배우기

얼마나 많은 신진 “개발자”가 cryptocurrency에 대한 실제 경험을 전혀 가지고 있지 않은지 보는 것은 매우 놀라운 일입니다. 한 번도 사용하지 않았을 때 어떻게 플랫폼을 혁신하고 향상시킬 수 있습니까?

오늘 시스템에 익숙해지기 시작하는 것이 좋습니다.

Coinbase 또는 귀하가 익숙하거나 귀하의 국가에서 액세스 할 수있는 다른 교환소로 이동하여 동전을 구입하십시오. 광범위한 포트폴리오를 곧바로 만들 필요가 없습니다. 동전 몇 개를 구입하고 전체 프로세스가 어떻게 작동하는지 확인하십시오.

그것은 매우 간단합니다. 많은 동전을 사지 않을 것이므로 기본적인 온라인 지갑을 사용하십시오.

이 지갑은 무엇보다도 사용하기 쉽습니다. 생성은 기본적으로 모든 교환 서비스에서 자신의 계정을 생성하기 때문에 매우 간단합니다. 또한, 이 지갑은 인터넷에 연결되어 있는 한 전 세계의 모든 서버 또는 장치에서 액세스 할 수 있습니다. 그 말을하는 데, 그것은 온라인 지갑에 올 때 하나의 큰 문제가있다. 개인 키는 다른 서버에 저장됩니다. 이것은 기본적으로 실버 플래터에 해커에게 열쇠를 제공하는 것과 같습니다. 엄청난 양의 돈을 저장하기 위해 온라인 지갑을 사용하지 마십시오. 교환 목적으로 필요한 최소한의 것을 보관하십시오.

광범위한 포트폴리오를 만들 때 콜드 지갑을 사용하여 돈을 저장하는 방법을 배워야합니다. 여기에서 그렇게 하는 방법을 배울 수 있습니다. 나중에 ICO를 만들면 지갑과 특히 멀티 시그 지갑이 어떻게 작동하는지 알아야합니다.

우리는 여기에 가까이에이 섹션을 가져오고, 힘든 부분은 다음 이정표에서 시작.

귀하의 행동 단계는 다음과 같습니다.

교환이 어떻게 작동하는지 알아보십시오.

지갑에 익숙해지기.

블록 체인 개발자가 되십시오 - 이정표 #3: 코딩을 해 봅시다!

블록 체인 개발자로서 백엔드에서 수많은 도전에 직면하게 될 것입니다. 공개 블록 체인을 만들고 유지하는 것은 여러 가지 이유 때문에 쉽지 않습니다.

(우리가 계속하기 전에, CPPCON 2016의 블록 체인 소프트웨어 개발에서 C ++ 사용에 관한 기조 연설에 대해 데이비드 슈워츠에게 큰 소리를냅니다.)

이유 #1: 보안

블록 체인은 데이비드 슈워츠 (David Schwartz) 가 둔대로 요새가되어야합니다. 첫째, 코드는 공개되어 있으며 누구나 볼 수 있습니다. 누구나 코드를보고 버그와 취약점을 확인할 수 있습니다. 그러나 다른 공개 코드 리소스와 달리 블록 체인 코드의 취약점을 찾는 단점은 엄청납니다. 모든 프로그래머가 해킹하고 잠재적으로 수백만 달러로 도망 갈 수 있습니다. 이러한 합법적 인 보안 문제로 인해 블록 체인에 대한 개발은 일반적으로 매우 느립니다.

이유 #2: 리소스 관리

네트워크와 보조를 맞추는 것이 중요합니다. 너무 멀리 떨어지지 않고 모든 네트워크 요구 사항을 따라 잡을 수 없습니다. 원격 및 로컬 쿼리를 처리 할 수 있어야합니다.

이유 #3: 성능

블록 체인은 항상 가능한 최고 성능으로 수행해야하지만, 그렇게하기 위해서는 선택한 언어가 매우 다재다능해야합니다. 문제는 병렬화 할 수있는 블록 체인에 특정 작업이 있지만 병렬로 수행 할 수없는 작업이 있다는 것입니다.

“병렬 처리 가능” 작업의 좋은 예는 디지털 서명 확인입니다. 서명 확인에 필요한 모든 것은 키, 트랜잭션 및 서명입니다. 세 개의 데이터만으로 병렬화된 방식으로 검증을 수행할 수 있습니다.

그러나 블록 체인의 모든 기능이 그렇게되어야하는 것은 아닙니다. 트랜잭션 실행 자체를 생각해보십시오. 여러 트랜잭션을 병렬로 실행할 수 없습니다. 이중 지출과 같은 오류를 피하기 위해 한 번에 하나씩 수행해야합니다. 일부 언어는 병렬 연산에 능숙하지만 일부는 비 병렬 연산에 능숙합니다.

이유 #4: 격리

결정적 행동이란 무엇입니까?

A + B = C, 다음 상관없이 상황, A+B는 항상 결정 론적 행동이라고 C와 동일 할 것이다.

해시 함수는 결정 론적이며, 즉 A 해시는 항상 H (A) 가됩니다.

따라서 블록 체인 개발에서 모든 트랜잭션 작업은 결정적이어야합니다. 한 가지 방식으로 동작한 다음 다음 날 다른 방식으로 동작하는 트랜잭션은 가질 수 없습니다. 마찬가지로 두 개의 서로 다른 컴퓨터에서 두 가지 방식으로 작동하는 현명한 계약을 가질 수 없습니다.

이것에 대한 유일한 해결책은 격리입니다. 기본적으로 스마트 계약 및 트랜잭션을 비 결정적 요소에서 분리합니다.

이러한 요구 사항의 대부분을 충족시키는 언어가 있습니다. 블록 체인 개발자 인 경우 C ++ 및 JavaScript에 대한 기본 지식이 필요합니다.

C ++은 조금 오래된 것처럼 보일 수 있지만 진실은 위에서 설명한 모든 기능을 훌륭하게 만족한다는 것입니다. 사실, 사토시 나카모토는 C ++로 비트 코인 소스 코드를 작성했습니다.

HTML과 CSS와 함께, 그것은 월드 와이드 웹 콘텐츠 제작의 세 가지 핵심 기술 중 하나입니다. 자바 스크립트는 일반적으로 높은 대화 형 웹 페이지를 만드는 데 사용됩니다.

그래서, 지금 우리는 자바 스크립트를 사용하여 매우 간단한 블록 체인을 만드는 방법을 볼 수 있습니다.

아래 내용에 대한 savjee.be 거대한 소리.

우리는 어떻게 블록을 만들 수 있습니까? 간단한 블록은 무엇으로 구성됩니까? 우리가 만들려고하는 간단한 암호 동전에서 (“BlockGeekScoin”이라고 부릅니다) 각 블록에는 다음과 같은 정보가 있습니다.

색인: 블록 번호를 알고 있습니다.

타임스탬프: 생성 시간을 알고 있습니다.

데이터: 블록 내부의 데이터입니다.

이전 해시: 이전 블록의 해시입니다.

해시: 현재 블록의 해시입니다.

계속하기 전에 우리는 우리의 프로그램에서 사용할 특정 용어를 이해해야합니다:

이: “this”키워드는 함수 내에서 호출되며 특정 함수를 호출하는 특정 객체 내부의 값에 액세스 할 수 있습니다.

생성자: 생성자는 생성하고 클래스 내에서 객체를 초기화하는 데 도움이 될 수있는 특별한 함수입니다. 각 클래스는 하나의 생성자로 제한됩니다.

이제 끝났어, 우리 블록을 만들기 시작하자.

블록 작성

const SHA256 = 필요 (“암호화 - js/sha256");

클래스 블록

{

생성자 (인덱스, 타임 스탬프, 데이터, 이전 Shash = “)

{

이.index = 색인;

이.이전새 = 이전새;

이.타임 스탬프 = 타임 스탬프;

이.data = 데이터;

이.해시 = 이.계산해시 ();

}

계산해시 ()

{

SHA256 (이.인덱스 + 이.이전 해시 + 이.타임 스탬프 + JSON.문자열 화 (이.데이터)) .toString ();

}

}

코드 분석

좋아, 여기 이 블록이 있습니다. 따라서 코드의 첫 번째 줄에서는 sha256 해시 함수를 JavaScript에서 사용할 수 없기 때문에 crypto-js 라이브러리를 호출했습니다.

다음으로 클래스 내부의 생성자를 호출하여 특정 값을 갖는 객체를 호출합니다. 아마도 당신의 눈을 사로 잡는 것은 CalculateHash () 함수입니다. 정확히 무엇을하고 있는지 봅시다.

블록에서, 우리는 모든 내용을 가지고 그 특정 블록의 해시를 얻기 위해 그들을 해시한다. 우리는 그것을 해시하는 문자열로 블록의 데이터를 설정하는 JSON.stringify 함수를 사용하고 있습니다.

좋아, 그래서 우리는 블록을 준비하고 갈 수 있습니다. 이제 블록을 함께 블록 체인에 연결해 보겠습니다.

블록 체인 만들기: 블록 체인 엔지니어 되기

클래스 블록 체인

{

//섹션 1 창세기 블록 생성

생성자 ()

{

이.체인 = [이.생성생성블록 ()];

}

생성생성블록 ()

{

새로운 블록 (0, “01/01/2017", “창세기 블록”, “0") 을 반환하십시오.

}

// 섹션 2 새 블록 추가

GetlatestBlock ()

{

이 반환.체인 [이.체인.길이 - 1];

}

추가 블록 (새 블록) {

새 블록.이전 해시 = 이것이.getlatestBlock () .해시;

새 블록.해시 = 새 블록.계산해시 ();

이.체인.푸시 (새 블록);

}

// 섹션 3 체인의 유효성 검사

유효하지 않은 ()

{

에 대한 (내가 = 1, 나는이.chain.길이; 나는 ++)

{

const 전류블록 = 이.체인 [i];

const 이전 블록 = 이.체인 [i - 1];

만약 (현재 블록.해시! == 현재 블록.계산해시 ()) {

false를 반환합니다.

}

만약 (현재 블록.이전!) == 이전 블록.해시)

{

false를 반환합니다.

}

}

true를 반환하십시오.

}

}

코드 분석

좋아, 위의 체인에서 많은 일이 벌어지고 있습니다. 섹션으로 나누자.

섹션 1: 창세기 블록

창세기 블록이란 무엇입니까?

창세기 블록은 블록 체인의 첫 번째 블록이며 특별한 이유는 모든 bock이 이전 블록을 가리키는 동안 창세기 블록은 아무 것도 가리 키지 않기 때문입니다. 따라서 새로운 체인이 만들어지는 순간 창세기 블록이 즉시 호출됩니다.

또한 블록의 데이터를 수동으로 제공 한 “createGenesisBlock ()" 함수를 볼 수 있습니다.

생성생성블록 ()

{

새로운 블록 (0, “01/01/2017", “창세기 블록”, “0") 을 반환하십시오.

}

섹션 2: 블록 추가

첫째, 블록 체인의 마지막 블록이 현재 무엇인지 알아야합니다. 이를 위해 우리는 getlatestBlock () 함수를 사용합니다.

GetlatestBlock ()

{

이 반환.체인 [이.체인.길이 - 1];

}

이제 최신 블록을 결정했으므로 새 블록을 추가하는 방법을 살펴 보겠습니다.

추가 블록 (새 블록) {

새 블록.이전 해시 = 이것이.getlatestBlock () .해시;

새 블록.해시 = 새 블록.계산해시 ();

이.체인.푸시 (새 블록);

}

그래서, 여기서 무슨 일이 일어나고 있습니까? 블록을 어떻게 추가합니까? 주어진 블록이 유효한지 여부를 어떻게 확인합니까?

블록의 내용을 기억하십니까? 블록은 이전 블록의 해시를 가지고 있습니까?

그래서, 우리가 여기서 할 일은 간단합니다. 새 블록의 이전 해시 값을 최신 블록의 해시 값과 비교합니다.

How to become a blockchain developer

이미지 제공: 라우리 하르티카 매체 기사

이 두 값이 일치하면 새 블록이 합법적이며 블록 체인에 추가됩니다.

섹션 3: 체인 검증

이제 우리는 아무도 블록 체인을 망치지 않았으며 모든 것이 안정적인지 확인해야합니다.

우리는 마지막 블록으로 블록 1에서 이동하는 “for”루프를 사용하고 있습니다. 창세기 블록은 0 블록입니다.

에 대한 (내가 = 1, 나는이.chain.길이; 나는 ++)

{

const 전류블록 = 이.체인 [i];

const 이전 블록 = 이.체인 [i - 1];

코드의이 부분에서 우리는 두 개의 용어, 현재 블록과 이전 블록을 정의하고있다. 그리고 지금 우리는 단순히이 두 값의 해시를 찾을 것입니다.

만약 (현재 블록.해시! == 현재 블록.계산해시 ()) {

false를 반환합니다.

}

만약 (현재 블록.이전!) == 이전 블록.해시)

{

false를 반환합니다.

}

}

true를 반환하십시오.

}

현재 블록의 “prerevioushash”가 이전 블록의 “해시”와 같지 않으면이 함수는 False를 반환하고 그렇지 않으면 True를 반환합니다.

블록 체인 사용

이제 우리는 마침내 블록 체인을 사용하여 BlockGeekScoin을 만들 것입니다.

블록체인 = 새로운 블록체인 ();

블록체인 추가 블록 (새로운 블록 (1, “20/07/2017”, {금액: 4});

추가 블록 (새로운 블록 (2, “20/07/2017”, {금액: 8}));

그리고 그게 다야!

그래서 여기서 무슨 일이 일어났을까요?

우리는 블록 체인을 기반으로 새로운 암호 해독 (cryptocurrency) 을 만들고 BlockGeekScoin) 이라고 명명했습니다. 이 새 객체를 호출하여 생성자를 활성화하고 생성자가 자동으로 생성되었습니다.

우리는 단순히 두 개의 블록을 추가하고 그들에게 몇 가지 데이터를 주었다.

그것은 아주 간단합니다.

(놀랍고 간단한 설명을 위해 savjee.be 감사합니다.)

그것이이 이정표를 위한 것입니다. 액션 단계를 살펴 보겠습니다. 그것은 매우 간단하지만 확실히 쉽지 않습니다:

C ++, 자바 스크립트, C #, Go 등과 같은 많은 블록 체인 친화적 인 언어 중 하나에서 교육을 받으십시오.

블록 체인 개발자가 되십시오 - 이정표 #4: 스마트 계약에 대한 교육 받기

how smart contracts work

스마트 계약을 어떻게 정의합니까?

Wikipedia에 따르면, 현명한 계약은 “계약의 협상 또는 수행을 촉진, 확인 또는 시행하기위한 컴퓨터 프로토콜”입니다. 1996 년에 미국의 암호 작가 닉 Szabo (닉 Szabo) 가 처음 제안했지만 Ethereum은 종종 개념을 대중화하고 주류로 만드는 것으로 인정됩니다.

스마트 계약에 대한 자세한 내용은 여기에서 자세히 알아볼 수 있습니다.

그렇다면 스마트 계약에서 우리가 원하는 바람직한 속성은 무엇입니까?

블록 체인에서 실행되는 모든 것은 변경 불가능해야하며 무결성을 손상시키지 않으면 서 여러 노드를 실행할 수 있어야합니다. 결과적으로 스마트 계약 기능은 세 가지가되어야합니다.

결정론적.

종료가능.

격리된.

기능 #1: 결정적

이 주어진 입력마다 동일한 출력을 제공하는 경우 프로그램은 결정적이다. 예. 3+1 = 4이면 3+1은 항상 4가됩니다 (동일한베이스를 가정). 프로그램이 다른 컴퓨터에서 입력의 동일한 세트에 동일한 출력을 제공 할 때, 프로그램은 결정적이라고합니다.

프로그램이 비 결정적 방식으로 작동 할 수있는 다양한 순간이있다:

비 결정적 시스템 함수를 호출: 프로그래머가 자신의 프로그램에서 비 결정적 함수를 호출 할 때.

비 결정적 데이터 자원: 프로그램이 런타임 중에 데이터를 획득하고 해당 데이터 소스가 비 결정적 인 경우 프로그램은 비 결정적이됩니다. 예. 특정 쿼리의 상위 10 개 Google 검색을 얻는 프로그램을 가정하십시오. 목록이 계속 변경 될 수 있습니다.

동적 호출: 프로그램이 두 번째 프로그램을 호출 할 때 동적 호출이라고합니다. 호출 대상은 실행 중에 결정되기 때문에, 그것은 본질적으로 비 결정적이다.

기능 #2: 종료가능

수학 논리에서, 우리는 “중단 문제”라는 오류가 있습니다. 기본적으로 주어진 프로그램이 시간 제한에 기능을 실행할 수 있는지 여부를 알 수 없다는 것을 나타냅니다. 1936 년에 Alan Turing은 캔터의 대각선 문제를 사용하여 주어진 프로그램이 제한 시간 내에 완료 될 수 있는지 여부를 알 수있는 방법이 없다고 추론했습니다.

정의에 의한 계약은 주어진 시간 내에 종료 할 수 있어야하기 때문에 이것은 분명히 현명한 계약의 문제입니다. 외부 적으로 계약을 “종료”하고 리소스를 소모하는 무한 루프에 들어 가지 않도록하기 위해 취해진 몇 가지 조치가 있습니다.

튜링 불완전성: 튜링 불완전한 블록 체인은 제한된 기능을 가지며 점프 및/또는 루프를 만들 수 없습니다. 따라서 그들은 무한 루프를 입력 할 수 없습니다.

단계 및 요금 측정기: 프로그램은 단순히 실행한 명령의 수, 즉 수행 한 수의 “단계”를 추적 한 다음 특정 단계 수가 실행되면 종료 할 수 있습니다. 또 다른 방법은 요금 미터입니다. 여기서 계약은 선불 된 수수료로 실행됩니다. 모든 명령 실행에는 특정 금액이 필요합니다. 지출 된 수수료가 선불 수수료를 초과하면 계약이 해지됩니다.

타이머: 여기에 미리 결정된 타이머가 유지됩니다. 계약 실행이 시간 제한을 초과하면 외부에서 중단됩니다.

기능 #3: 격리된

블록 체인에서는 누구나 스마트 계약을 업로드 할 수 있습니다. 그러나이 때문에 계약에는 고의적으로 무의식적으로 바이러스와 버그가 포함될 수 있습니다. 계약이 분리되지 않으면 전체 시스템을 방해 할 수 있습니다. 따라서 계약은 부정적인 영향으로부터 전체 생태계를 저장하기 위해 샌드 박스에 격리되어 유지되는 것이 중요합니다.

이제 이러한 기능을 보았으므로 실행 방법을 아는 것이 중요합니다. 일반적으로 스마트 계약은 두 시스템 중 하나를 사용하여 실행됩니다.

가상 머신: 이더리움은 이것을 사용합니다.

도커: 패브릭은 이것을 사용합니다.

이 두 가지를 비교하고 더 나은 생태계를 만드는 것을 결정합시다. 간단하게하기 위해 Ethereum (가상 머신) 과 패브릭 (Docker) 을 비교할 것입니다.

Ethereum 개발에 특별히 관심이 있다면 견고 함을 배우는 것이 중요합니다.

DApps (분산 된 응용 프로그램) 를 만들거나 ICO 게임에 들어가는 방법을 배우려는 사람에게는 솔리드함을 배우는 것이 절대적인 필수입니다. 우리는 이미 여기에서 읽을 수있는 자세한 안내서를 가지고 있습니다. 그러나 여기에서 우리는 당신에게 기본적인 개요를 제공 할 것입니다. 솔리드는 Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Hirai 요이치 및 Ethereum과 같은 블록 체인 플랫폼에서 스마트 계약을 작성할 수 있도록 전 Ethereum 핵심 기여자가 개발했습니다.

견고성은 ECMAScript (자바 스크립트) 와 매우 유사한 구문을 사용하여 의도적으로 슬리밍 된 느슨한 형식의 언어입니다. Ethereum Design 이론적 근거 문서에서 기억해야 할 몇 가지 요점이 있습니다. 즉, 32 바이트 명령어 워드 크기의 스택 및 메모리 모델에서 작업하고 있으며 EVM (Ethereum Virtual Machine) 은 레지스터 공간과 같은 프로그램 “스택”에 액세스 할 수 있습니다.주소를 사용하여 Program Counter 루프/점프 (순차적 프로그램 제어용), 확장 가능한 임시 “메모리”및보다 영구적 인 “저장소”를 만듭니다. 그리고 가장 중요한 것은 EVM이 스마트 계약 내에서 총 결정론을 필요로한다는 것입니다.

견고 함을 배우는 데 관심이 있다면 여기에서 심층 수업을 확인할 수 있습니다.

이제 작업 단계를 살펴 보겠습니다.

현명한 계약이 어떻게 작동하는지 이해하십시오.

(이더리움 개발자를 위한 선택 사항) 견고성을 배우십시오.

블록 체인 개발자가 되십시오 - 이정표 #5: 블록 체인 개발 회사에 들어가기

신진 개발자로서 할 수있는 가장 중요한 일 중 하나는 끊임없이 믹스를 유지하는 것입니다.

Reddit 포럼, Gitbub 페이지 및 StackExchange에 참여하여 다른 개발자와 연결하고 항상 기술에 관한 뉴스를 확인하십시오.

이와 함께 블록 체인 개발자에서 사람들이 무엇을 찾는지 아는 것이 도움이 될 것입니다. 회사가 고용하고자 할 때 어떤 자질을 찾고 있습니까? 여기에서 해당 정보를 찾을 수 있습니다.

이 정보는 회사에 호소하기에 충분한 기술을 미세 조정하는 데 매우 유용 할 수 있습니다.

블록 체인 개발자 또는 엔지니어가 되기 위한 경로: 결론

따라서 이것은 블록 체인 개발자가되기 위해 귀하와 귀하의 여정에 대한 대략적인 로드맵입니다. 이것만으로는 충분하지 않을 것입니다. 물론, 당신은 자신의 주도권을 보여주고 항상 혼합해야합니다.

블록 체인 개발에 대한 정보 리소스를 찾고 있다면 여기를 클릭하십시오.

우리는 당신이 당신의 여행에 최선을 기원합니다!

이 가이드에서는 블록 체인 개발자가되기위한 여정을 매핑 할 것입니다. 블록 체인 개발은 일반 웹 개발과 크게 다르지 않습니다. 주요 차이점은 블록 체인 개발자가 블록 체인을 위해 특별히 개발 될 것입니다. 당신을 위해 일을 쉽게하기 위해, 우리는이 가이드를 다양한 이정표로 나누고 모든 섹션의 끝에서 당신에게 행동 단계를 제공 할 것입니다. 우리가 “블록 체인의 시대”에 살고 있다는 것은 말할 필요도 없습니다. 그것이 우리의 미래에 미칠 수 있는 영향은 정말 무섭고 위대합니다. 그렇다면 어떻게 “블록 체인 액션”을 얻을 수 있습니까? 블록 체인 개발자가되려면 수행해야 할 특정 단계가 있습니다. 가이드가 끝날 때 여행을 시작하는데 필요한 도구가 제공되길 바랍니다. 당신이 개발자가되는 것에 대해 진지한 경우, 우리는 당신을 위해 몇 가지 기대를 설정해야합니다. 첫째, 시간이 걸릴 것이고 당신은 당신의 교육에 시간과 자원을 바칠 필요가 있습니다 (당신은 우리의 온라인 수업을 통해 우리와 함께 교육을 계속할 수 있습니다). 둘째, 즉각적인 결과를 기대하지 마십시오. 블록 체인 개발자가되는 것은 마법의 약이 아닙니다. 그래서, 그렇게 말하면서, 당신의 여행을 시작합시다. 블록 체인 개발자 자습서가되는 방법! 이정표 #1: 기본 이해 블록 체인 기술과 같은 새롭고 혁신적인 모든 것을 가진 가장 큰 장애물 중 하나는 시스템에 필수적인 다양한 개념을 익히는 것입니다. 초보자라면 익숙해야 할 특정 용어가 있습니다. Blockchain 기술 Blockchain: 블록 체인은 각 블록에 중앙 감독없이 가치있는 데이터가 들어있는 블록 체인입니다. 그것은 암호로 안전하고 불변입니다. 분산 형: 블록 체인은 아무 것도 감독하는 중앙 기관이 없기 때문에 분산 된 것으로 알려져 있습니다. 합의 메커니즘: 분산 된 네트워크가 특정 문제에 대한 합의에 오는 메커니즘. 광부: 계산 능력을 사용하여 블록을 채굴하는 사용자. 블록체인 개발자가되기 위한 훈련 지금 무료 평가판을 시작하십시오! 암호 영역에서 널리 사용되는 이러한 용어에 대해 자세히 배우는 것이 좋습니다. 당사의 포괄적인 용어집을 살펴볼 것을 적극 권장합니다. 그렇지 않으면 당신은 매우 당신의 교육에 더 손실됩니다 이러한 기본 용어를 배우는 것이 중요합니다. 이제 다음으로 블록 체인의 기술적 측면에 대해 좀 더 교육 할 때입니다. 블록 체인 위에 fin-tech 응용 프로그램을 만드는 방법의 기술적 측면에 관심이 있다면 암호 경제학의 기능을 확실히 배워야합니다. 대부분의 개발자는 일반적으로 방정식의 “암호”부분에 정통하지만 “경제”부분에 대한 지식은 극히 부족합니다. 이러한 지식의 차이는 이러한 ICO 중 일부를 연구 할 때 매우 분명합니다. ICO의 경제 측면이 잘 고려되지 않는다는 것을 보는 것은 매우 분명합니다. 그래서, 그것에 비추어 볼 때, 경제학에 대해 조금 읽고 그것에 대한 일반적인 아이디어를 갖는 것이 좋습니다. 일반적으로 암호 경제학에 대해 배우고 싶다면 여기에서 우리의 기사를 체크 아웃 할 수 있습니다. 암호화에 흥미가 있고 서명의 작동 방식과 공개 키 암호화의 의미를 알고 싶다면 이것을 읽으십시오. 그 후에는 비트 코인이 어떻게 작동하는지 이해하는 것이 좋습니다. Bitcoin은 가장 광범위하고 최고이며 블록 체인 기술의 더 우아한 응용 프로그램 중 하나입니다. 블록 체인 기술이 미치는 영향 때문에 순전히 달성 할 수있는 가장 좋은 예라고 부를 수도 있습니다. 따라서 사토시 나카모토 (Satoshi Nakamoto) 의 백서를 읽는 것이 좋습니다. 여기에서 찾을 수 있습니다. 이제 첫 번째 이정표가 완료됩니다. 여기에서 수행해야하는 조치 단계를 살펴 보겠습니다. 다양한 용어와 어휘에 대해 알아보십시오. 읽기 블록 체인의 기술적 측면에 대해 설명합니다. 비트 코인 백서를 읽으십시오. 이정표 #2: 프로세스 작동 방법 배우기 신진 “개발자”가 암호 해독에 대한 실제 경험을 전혀 갖지 않은 지 보는 것은 매우 놀라운 일입니다. 한 번도 사용하지 않았을 때 어떻게 플랫폼을 혁신하고 향상시킬 수 있습니까? 오늘 시스템에 익숙해지기 시작하는 것이 좋습니다. Coinbase 또는 귀하가 익숙하거나 귀하의 국가에서 액세스 할 수있는 다른 교환소로 이동하여 동전을 구입하십시오. 광범위한 포트폴리오를 곧바로 만들 필요가 없습니다. 동전 몇 개를 구입하고 전체 프로세스가 어떻게 작동하는지 확인하십시오. 그것은 매우 간단합니다. 많은 동전을 사지 않을 것이므로 기본적인 온라인 지갑을 사용하십시오. 이 지갑은 무엇보다도 사용하기 쉽습니다. 생성은 기본적으로 모든 교환 서비스에서 자신의 계정을 생성하기 때문에 매우 간단합니다. 또한, 이 지갑은 인터넷에 연결되어 있는 한 전 세계의 모든 서버 또는 장치에서 액세스 할 수 있습니다. 그 말을하는 데, 그것은 온라인 지갑에 올 때 하나의 큰 문제가있다. 개인 키는 다른 서버에 저장됩니다. 이것은 기본적으로 실버 플래터에 해커에게 열쇠를 제공하는 것과 같습니다. 엄청난 양의 돈을 저장하기 위해 온라인 지갑을 사용하지 마십시오. 교환 목적으로 필요한 최소한의 것을 보관하십시오. 광범위한 포트폴리오를 만들 때 콜드 지갑을 사용하여 돈을 저장하는 방법을 배워야합니다. 여기에서 그렇게 하는 방법을 배울 수 있습니다. 나중에 ICO를 만들면 지갑과 특히 멀티 시그 지갑이 어떻게 작동하는지 알아야합니다. 우리는 여기에 가까이에이 섹션을 가져오고, 힘든 부분은 다음 이정표에서 시작. 귀하의 행동 단계는 다음과 같습니다: 교환이 어떻게 작동하는지 알아보십시오. 지갑에 익숙해지기. 이정표 #3: 코딩을 해보자! 블록 체인 자습서 블록 체인 개발자로서 백엔드에서 수많은 도전에 직면하게 될 것입니다. 공개 블록 체인을 만들고 유지하는 것은 여러 가지 이유 때문에 쉽지 않습니다. (우리가 계속하기 전에, CPPCON 2016의 블록 체인 소프트웨어 개발에서 C ++ 사용에 관한 기조 연설에 대해 데이비드 슈워츠에게 큰 소리를냅니다.) 이유 #1: 데이비드 슈워츠가 그렇듯이 보안 블록 체인은 요새가되어야합니다. 첫째, 코드는 공개되어 있으며 누구나 볼 수 있습니다. 누구나 코드를보고 버그와 취약점을 확인할 수 있습니다. 그러나 다른 공개 코드 리소스와 달리 블록 체인 코드의 취약점을 찾는 단점은 엄청납니다. 모든 프로그래머가 해킹하고 잠재적으로 수백만 달러로 도망 갈 수 있습니다. 이러한 합법적 인 보안 문제로 인해 블록 체인 개발은 일반적으로 매우 느립니다. 이유 #2: 리소스 관리 네트워크와 보조를 맞추는 것이 중요합니다. 너무 멀리 떨어지지 않고 모든 네트워크 요구 사항을 따라 잡을 수 없습니다. 원격 및 로컬 쿼리를 처리 할 수 있어야합니다. 이유 #3: 성능 블록 체인은 항상 가능한 최고 성능으로 수행해야하지만, 그렇게하기 위해서는 선택한 언어가 매우 다재다능해야합니다. 문제는 병렬화 할 수있는 블록 체인에 특정 작업이 있지만 병렬로 수행 할 수없는 작업이 있다는 것입니다. “병렬 처리 가능”작업의 좋은 예는 디지털 서명 확인입니다. 서명 확인에 필요한 모든 것은 키, 트랜잭션 및 서명입니다. 세 개의 데이터만으로 병렬화된 방식으로 검증을 수행할 수 있습니다. 그러나 블록 체인의 모든 기능이 그렇게되어야하는 것은 아닙니다. 트랜잭션 실행 자체를 생각해보십시오. 여러 트랜잭션을 병렬로 실행할 수 없습니다. 이중 지출과 같은 오류를 피하기 위해 한 번에 하나씩 수행해야합니다. 일부 언어는 병렬 연산에 능숙하지만 일부는 비 병렬 연산에 능숙합니다. 이유 #4: 격리 결정적 행동이란 무엇입니까? A + B = C, 다음 상관없이 상황, A+B는 항상 결정 론적 행동이라고 C와 동일 할 것이다. 해시 함수는 결정 론적이며, 즉 A 해시는 항상 H (A) 가됩니다. 따라서 블록 체인 개발에서 모든 트랜잭션 작업은 결정적이어야합니다. 동작하는 트랜잭션을 가질 수 없습니다. 한 가지 방법으로 다음 다음 날 다른 방식으로 행동합니다. 마찬가지로 두 개의 서로 다른 컴퓨터에서 두 가지 방식으로 작동하는 현명한 계약을 가질 수 없습니다. 이것에 대한 유일한 해결책은 격리입니다. 기본적으로 스마트 계약 및 트랜잭션을 비 결정적 요소에서 분리합니다. 이러한 요구 사항의 대부분을 충족시키는 몇 가지 언어가 있습니다. 블록 체인 개발자 인 경우 C ++ 및 JavaScript에 대한 기본 지식이 필요합니다. C ++은 조금 오래된 것처럼 보일 수 있지만 진실은 위에서 설명한 모든 기능을 훌륭하게 만족한다는 것입니다. 사실, 사토시 나카모토는 C ++로 비트 코인 소스 코드를 작성했습니다. HTML과 CSS와 함께 그것은 월드 와이드 웹 콘텐츠 제작의 세 가지 핵심 기술 중 하나입니다. 자바 스크립트는 일반적으로 높은 대화 형 웹 페이지를 만드는 데 사용됩니다. 그래서, 지금 우리는 자바 스크립트를 사용하여 매우 간단한 블록 체인을 만드는 방법을 볼 수 있습니다. 아래 내용에 대한 savjee.be 거대한 소리. 우리는 어떻게 블록을 만들 수 있습니까? 간단한 블록은 무엇으로 구성됩니까? 우리가 만들려고하는 간단한 cryptocoin에서 (“BlockGeekScoin”이라고 부릅니다) 각 블록에는 다음과 같은 정보가 있습니다. 색인: 블록 번호를 알고 싶습니다. 타임스탬프: 생성 시간을 알고 있습니다. 데이터: 블록 내부의 데이터입니다. 이전 해시: 이전 블록의 해시입니다. 해시: 현재 블록의 해시입니다. 계속하기 전에 이: “this”키워드는 함수 내에서 호출되며 특정 함수를 호출하는 특정 객체 내의 값에 액세스 할 수 있습니다. 생성자: 생성자는 생성하고 클래스 내에서 객체를 초기화하는 데 도움이 될 수있는 특별한 함수입니다. 각 클래스는 하나의 생성자로 제한됩니다. 이제 끝났어, 우리 블록을 만들기 시작하자. 블록 생성 SHA256 = 필요 (“crypto-js/sha256"); 클래스 블록 {생성자 (인덱스, 타임 스탬프, 데이터, 이전 해시 = “) {이.인덱스 = 인덱스; 이.이전 해시 = 이전 해쉬; 이.타임 스탬프 = 타임 스탬프; 이.데이터 = 데이터; 이.해시 = 이.계산 해시 ();} {계산 해시 () SHA256을 반환합니다 (이 인덱스 +이.preoushash + 이.타임 스탬프 + JSON.stringify (이.데이터)) .toString ();}} 코드 분석 확인, 바로 여기에 블록이 있습니다. 따라서 코드의 첫 번째 줄에서는 sha256 해시 함수를 JavaScript에서 사용할 수 없기 때문에 crypto-js 라이브러리를 호출했습니다. 다음으로 클래스 내부의 생성자를 호출하여 특정 값을 갖는 객체를 호출합니다. 아마도 당신의 눈을 사로 잡는 것은 CalculateHash () 함수입니다. 정확히 무엇을하고 있는지 봅시다. 블록에서, 우리는 모든 내용을 가지고 그 특정 블록의 해시를 얻기 위해 그들을 해시한다. 우리는 그것을 해시하는 문자열로 블록의 데이터를 설정하는 JSON.stringify 함수를 사용하고 있습니다. 좋아, 그래서 우리는 블록을 준비하고 갈 수 있습니다. 이제 블록을 함께 블록 체인에 연결해 보겠습니다. 블록 체인 생성: 블록 체인 엔지니어 클래스 블록 체인 {//섹션 1 창세기 블록 생성 생성자 () {이.체인 = [이.생성생성생성블록 ()];} 생성생성블록 () {새 블록 (0, “01/01/2017", “창세기 블록”, “0");} // 섹션 2에 새로운 블록을 추가하여 GetLateBlock () {이것을 반환합니다.체인 [이.체인.길이 - 1];} 추가 블록 (새 블록) {새 블록. 이전 블록 = 이것이.getlatestBlock () .해시; 새 블록.해시 = 새 블록.해시 = 새 블록.계산해시 (); 이.chain.push (새 블록);} //섹션 3체인의 유효성을 검사하기 유효하지 () {for (i = 1; 이.chain.chain.길이; ++) {const 전류 블록 = 이.체인 [i]; const이전 블록 = 이.체인 [i - 1]; 만약 (현재 블록.해시! == 현재 블록.계산해시 ()) {false를 반환;} 만약 (현재 블록.이전! == preousBlock.hash) {false를 반환;}} true를 반환;}} 코드 분석 확인, 그래서 많은 일이 위의 체인에서 진행되고 있습니다. 섹션 1: 창세기 블록 창세기 블록이란 무엇입니까? 창세기 블록은 블록 체인의 첫 번째 블록이며 특별한 이유는 모든 bock이 이전 블록을 가리키는 동안 창세기 블록은 아무 것도 가리 키지 않기 때문입니다. 따라서 새로운 체인이 만들어지는 순간 창세기 블록이 즉시 호출됩니다. 또한, 당신은 볼 수 있습니다 블록 데이터를 수동으로 제공한 “CreateGenesisBlock ()” 함수: CreateGenesisBlock () {새로운 블록 반환 (0, “01/01/2017”, “창세기 블록”, “0");} 섹션 2: 블록 추가 먼저 블록 체인의 마지막 블록이 무엇인지 알 필요가 있습니다. 이를 위해 우리는 getlatestBlock () 함수를 사용합니다. getlatestBlock () {이 반환.체인 [이.체인.길이 - 1];} 이제 우리는 최신 블록을 결정 했으므로, 우리는 새로운 블록을 추가하는 방법을 살펴 보자. addBlock (새 블록) {newBlock.preoushash = 이.getlatestBlock () .hash; 새 블록.해시 = 새 블록.해쉬 = 새 블록.계산해쉬 (); 이.chain.push (newBlock);} 그래서, 여기서 무슨 일이 일어나고 있습니까? 블록을 어떻게 추가합니까? 주어진 블록이 유효한지 여부를 어떻게 확인합니까? 블록의 내용을 기억하십니까? 블록은 이전 블록의 해시를 가지고 있습니까? 그래서, 우리가 여기서 할 일은 간단합니다. 새 블록의 이전 해시 값을 최신 블록의 해시 값과 비교합니다. 이미지 제공: Lauri Hartikka 매체 기사 이 두 값이 일치하면 새 블록이 합법적이며 블록 체인에 추가됩니다. 섹션 3: 체인의 유효성을 검사하면 아무도 블록 체인에 엉망이 없는지 그리고 모든 것이 안정적인지 확인해야합니다. 우리는 마지막 블록으로 블록 1에서 이동하는 “for”루프를 사용하고 있습니다. 창세기 블록은 블록 0입니다. 에 대한 (내가 = 1; 나는이.체인.길이; 나는 ++) {const 전류 블록 = 이.체인 [나는]; const 이전 블록 = 이.체인 [I - 1]; 코드의이 부분에서 우리는 두 개의 용어, 현재 블록과 이전 블록을 정의하고있다. 그리고 이제 우리는이 두 값의 해시를 찾을 것입니다. 만약 (currentBlock.hash! == 현재 블록.계산해시 ()) {false를 반환;} 만약 (현재 블록.이전! == preousBlock.hash) {false를 반환}} true를 반환;} 현재 블록의 “preoushash”가 이전 블록의 “해시”와 같지 않으면, 이 함수는 False를 반환하고, 그렇지 않으면 True를 반환합니다. 블록 체인을 사용하여 이제 블록 체인을 사용하여 블록 체인을 만듭니다. 블록 지크 스코인 = 새로운 블록 체인 (); 블록 지크 스코인.addBlock (새로운 블록 (1, “20/07/2017", {금액: 4})); 블록 지크 스코인.addBlock (새로운 블록 (2, “20/07/2017", {금액: 8});! 그래서 여기서 무슨 일이 일어났을까요? 우리는 블록 체인을 기반으로 새로운 암호 해독 (cryptocurrency) 을 만들고 BlockGeekScoin) 이라고 명명했습니다. 이 새 객체를 호출하여 생성자를 활성화하고 생성자가 자동으로 생성되었습니다. 우리는 단순히 두 개의 블록을 추가하고 그들에게 몇 가지 데이터를 주었다. 그것은 아주 간단합니다. (놀랍고 간단한 설명을 위해 savjee.be 감사합니다.) 그것이이 이정표를 위한 것입니다. 액션 단계를 살펴 보겠습니다. C++, Javascript, C #, Go 등과 같은 많은 블록 체인 친화적 인 언어 중 하나에서 교육을 받으십시오. 마일스톤 #4: 스마트 계약에 대한 교육을 받으려면 스마트 계약을 어떻게 정의합니까? Wikipedia에 따르면, 현명한 계약은 “계약의 협상 또는 수행을 촉진, 확인 또는 시행하기위한 컴퓨터 프로토콜”입니다. 1996 년에 미국의 암호 작가 닉 Szabo (닉 Szabo) 가 처음 제안했지만 Ethereum은 종종 개념을 대중화하고 주류로 만드는 것으로 인정됩니다. 스마트 계약에 대한 자세한 내용은 여기에서 자세히 알아볼 수 있습니다. 그렇다면 스마트 계약에서 우리가 원하는 바람직한 속성은 무엇입니까? 블록 체인에서 실행되는 모든 것은 변경 불가능해야하며 무결성을 손상시키지 않으면 서 여러 노드를 실행할 수 있어야합니다. 결과적으로 스마트 계약 기능은 결정적 인 세 가지가되어야합니다. 종료가능. 격리된. 기능 #1: 그것은 주어진 입력마다 동일한 출력을 제공하는 경우 결정 론적 프로그램은 결정적이다. 예. 3+1 = 4이면 3+1은 항상 4가됩니다 (동일한베이스를 가정). 프로그램이 다른 컴퓨터에서 입력의 동일한 세트에 동일한 출력을 제공 할 때, 프로그램은 결정적이라고합니다. 프로그램이 비 결정적 방식으로 작동 할 수있는 다양한 순간이있다: 비 결정적 시스템 함수를 호출 프로그래머가 자신의 프로그램에서 비 결정적 함수를 호출 할 때. 비 결정적 데이터 자원: 프로그램 동안 데이터를 취득하는 경우 런타임에 있고 해당 데이터 소스가 비 결정적이면 프로그램이 비 결정적이됩니다. 예. 특정 쿼리의 상위 10 개 Google 검색을 얻는 프로그램을 가정하십시오. 목록이 계속 변경 될 수 있습니다. 동적 호출: 프로그램이 두 번째 프로그램을 호출 할 때 동적 호출이라고합니다. 호출 대상은 실행 중에 결정되기 때문에, 그것은 본질적으로 비 결정적이다. 특징 #2: 수학적 논리에서 터미네이팅 가능, 우리는 “중단 문제”라는 오류가 있습니다. 기본적으로 주어진 프로그램이 시간 제한에 기능을 실행할 수 있는지 여부를 알 수 없다는 것을 나타냅니다. 1936 년에 Alan Turing은 캔터의 대각선 문제를 사용하여 주어진 프로그램이 제한 시간 내에 완료 될 수 있는지 여부를 알 수있는 방법이 없다고 추론했습니다. 정의에 의한 계약은 주어진 시간 내에 종료 할 수 있어야하기 때문에 이것은 분명히 현명한 계약의 문제입니다. 외부 적으로 계약을 “종료”하고 리소스를 소모하는 무한 루프에 들어 가지 않도록하기위한 몇 가지 조치가 취해집니다. 튜링 불완전 성: 튜링 불완전 블록 체인은 제한된 기능을 가지며 점프 및/또는 루프를 만들 수 없습니다. 따라서 그들은 무한 루프를 입력 할 수 없습니다. 단계 및 요금 측정기: 프로그램은 단순히 수행 한 수의 “단계”를 추적 할 수 있습니다. 즉, 실행 한 명령의 수를 추적 한 다음 특정 단계 수가 실행되면 종료 할 수 있습니다.또 다른 방법은 수수료 미터입니다. 여기서 계약은 선불 된 수수료로 실행됩니다. 모든 명령 실행에는 특정 금액이 필요합니다. 지출 된 수수료가 선불 수수료를 초과하면 계약이 해지됩니다. 타이머: 여기에 미리 결정된 타이머가 유지됩니다. 계약 실행이 시간 제한을 초과하면 외부에서 중단됩니다. 기능 #3: 격리 된 블록 체인에서 누구나 스마트 계약을 업로드 할 수 있습니다. 그러나이 때문에 계약에는 고의적으로 무의식적으로 바이러스와 버그가 포함될 수 있습니다. 계약이 분리되지 않으면 전체 시스템을 방해 할 수 있습니다. 따라서 계약은 부정적인 영향으로부터 전체 생태계를 저장하기 위해 샌드 박스에 격리되어 유지되는 것이 중요합니다. 이제 이러한 기능을 보았으므로 실행 방법을 아는 것이 중요합니다. 일반적으로 스마트 계약은 두 시스템 중 하나를 사용하여 실행됩니다. 가상 머신: Ethereum은이를 사용합니다. 도커: 패브릭은 이것을 사용합니다. 이 두 가지를 비교하고 더 나은 생태계를 만드는 것을 결정합시다. 간단하게하기 위해 Ethereum (가상 머신) 과 패브릭 (Docker) 을 비교할 것입니다. Ethereum 개발에 특별히 관심이 있다면 견고 함을 배우는 것이 중요합니다. DApps (분산 된 응용 프로그램) 를 만들거나 ICO 게임에 들어가는 방법을 배우려는 사람은 솔리드성을 배우는 것이 절대적인 필수입니다. 우리는 이미 여기에서 읽을 수있는 자세한 안내서를 가지고 있습니다. 그러나 여기에서 우리는 당신에게 기본적인 개요를 제공 할 것입니다. 솔리드는 Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Hirai 요이치 및 Ethereum과 같은 블록 체인 플랫폼에서 스마트 계약을 작성할 수 있도록 전 Ethereum 핵심 기여자가 개발했습니다. 견고성은 ECMAScript (자바 스크립트) 와 매우 유사한 구문을 사용하여 의도적으로 슬리밍 된 느슨한 형식의 언어입니다. Ethereum Design 이론적 근거 문서에서 기억해야 할 몇 가지 요점이 있습니다. 즉, 32 바이트 명령어 워드 크기의 스택 및 메모리 모델에서 작업하고 있으며 EVM (Ethereum Virtual Machine) 은 레지스터 공간과 같은 프로그램 “스택”에 액세스 할 수 있습니다.주소를 사용하여 Program Counter 루프/점프 (순차적 프로그램 제어용), 확장 가능한 임시 “메모리”및보다 영구적 인 “저장소”를 만듭니다. 그리고 가장 중요한 것은 EVM이 스마트 계약 내에서 총 결정론을 필요로한다는 것입니다. 견고 함을 배우는 데 관심이 있다면 여기에서 심층 수업을 확인할 수 있습니다. 이제 행동 단계를 살펴 보겠습니다. 현명한 계약이 어떻게 작동하는지 이해하십시오. (이더리움 개발자를 위한 선택 사항) 견고성을 배우십시오. 이정표 #5: BE Iin and Mix 는 신진 개발자로서 할 수 있는 가장 중요한 일 중 하나는 끊임없이 믹스에 머물러라. Reddit 포럼, Gitbub 페이지 및 StackExchange에 참여하여 다른 개발자와 연결하고 항상 기술에 관한 뉴스를 확인하십시오. 이와 함께 블록 체인 개발자에서 사람들이 무엇을 찾는지 아는 것이 도움이 될 것입니다. 회사가 고용하고자 할 때 어떤 자질을 찾고 있습니까? 여기에서 해당 정보를 찾을 수 있습니다. 이 정보는 회사에 호소하기에 충분한 기술을 미세 조정하는 데 매우 유용 할 수 있습니다. 블록 체인 개발자 또는 엔지니어가 되기위한 경로: 결론 따라서 이것은 블록 체인 개발자가되기 위해 귀하와 귀하의 여정에 대한 대략적인 로드맵입니다. 이것만으로는 충분하지 않을 것입니다. 물론, 당신은 자신의 주도권을 보여주고 항상 혼합해야합니다. 블록 체인 개발에 대한 정보 리소스를 찾고 있다면 여기를 클릭하십시오. 우리는 당신이 당신의 여행에 최선을 기원합니다!

Like what you read? Give us one like or share it to your friends and get +16

7,696
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In