기사 메일전송
기사수정

[출처 : ETC Labs Core 수석 컴파일러 엔지니어 Alan Li 제공]

 

Ethereum Classic Labs Core는 LLVM 생태계를 이더 리움 제품군에 제공하기위한 혁신을 주도하고 있다. 이것을 EVM-LLVM 프로젝트로 명칭하였다.

LLVM이란, Low Level Virtual Machine으로, 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화에 용이한 특징을 가지고 있다. LLVM을 컴파일러 프레임 워크로 사용하여“프론트 엔드”(parser and lexer)와“ 백 엔드”(LLVM의 표현을 실제 머신 코드로 변환하는 코드)를 제공할 수 있다. [2]

 

개발자는 Ethereum Virtual Machine (EVM)을 대상으로 Solidity 이외의 광범위한 프로그래밍 언어 (스마트 컨트랙트 용)를 사용할 수있을뿐만 아니라 LLVM 인프라를 기반으로 구축된 다양한 개발 도구를 즉시 활용할 수 있다.

 

수년에 걸쳐 사람들은 Ethereum 제품군에 DApp을 구축하기 위해 Solidity에 의존하는 편이다.  물론 툴링, 프레임 워크 및 커뮤니티에 가장 많이 사용되는 스마트 컨트랙트 프로그래밍 언어이다.  많은 DApp 개발자는 조금씩 개발에 익숙해지고 있으나, 여전히 짧은 히스토리로 인한 Solidity와의 불편함을 토로한다. 물론 EVM 기반 플랫폼의 성장은 여전히 높은 편이다.

 

 #RUNEVM이 발전하고있는 Ethereum Classic, Ethereum 및 기타 플랫폼은 사용 사례의 기본 구성 요소 인 Solidity로 발전하고 있다.

 

한편 ETC Labs에서는 블록 체인 툴체인의 전반적인 상황을 개선하기위한 노력을 시작했다.

  • 흥미롭고 유용한 DApp을 작성할 수 있는 개발자의 능력향상
  • DApp의 품질, 휴대성 및 수명을 향상시키는 더 나은 솔루션
  • DApp 코드를 작성하고 유지하기 위해 번거로움운 작업을 줄이는 방법

 

이더리움 클래식 랩스는 여러분들의 LLVM에 참여를 독한다. LLVM에 대한 EVM 백엔드 대상을 통해 EVM은 LLVM 에코 시스템의 이점을 활용하고 LLVM 커뮤니티에 EVM 관심을 노출시킨다.



LLVM이란 무엇인가?

(그림설명: 기존의 LLVM Compiler Infrastructure에서 CPU (및 MCU)의 선택지에 이더리움 클래식이 개념적 연산장치의 하나로 추가된다)

LLVM은 Rust, Objective C, Fortran, Ada, Haskell, Java 바이트 코드, Python, Ruby, ActionScript, GLSL 등을 포함한 다양한 프런트 엔드를 지원한다. 반면 LLVM을 사용하면 새로운 대상 플랫폼을 지원할 수도 있다. 이 경우 EVM을 제품군에 추가한다.

 


LLVM은 EVM 및 타 블록 체인 플랫폼에 어떤 장점을 가져오는가?

  1. 더 많은 프로그래밍 언어.

 Rust? Golang? OCaml? Haskell? 개발자는 어떤 언어를 사용해서 블록체인 프로그래밍을 작성해야 할까 고민하게 된다. 

 LLVM의 EVM 백엔드는 최종적으로 컨트랙트 프로그래밍에 적용 할 수 있다. 더 많은 언어를 사용하여 EVM에 액세스하면 더 많은 개발자가 Ethereum Classic 및 기타 EVM 기반 블록 체인에서 DApp을 구축 할 수 있다. 플랫폼의 빠른 확장을 위해, 더 많은 언어를 선택할 수 있도록 이더리움 클래식 랩스에서 노력하고 있다. 

 

2. 성숙한 툴체인 지원.               

LLVM 에코 시스템은 디버깅, 유효성 검사기, 정적 분석 등을위한 도구를 포함하여 개발을 돕는 많은 고품질 도구를 제공한다. 

 

3. 장기적 마일스톤 및 지원

LLVM 커뮤니티는 LLVM 프로젝트를 지원하는 곳이다. LLVM 기반 인프라를 기반으로 개발자는 LLVM 커뮤니티의 혜택과 지원을 계속받게 된다. 이더리움 클래식은 해당 커뮤니티와 인프라 및 생태계를 (이더리움 클래식의 장기적인 미래를 위해) 이더리움(클래식)으로 가져올 것이다. 

 

EVM의 정의는 플랫폼과 동시에 OS(운영체제)


이더리움 가상 머신 (EVM)은 단어 크기가 256 비트 인 스택 기반의 빅 엔디안 VM이며 EVM 기반 블록 체인 (ETC, ETH 등)에서 스마트 컨트랙트를 실행하는 데 사용된다. 스마트 컨트랙트는 트랜잭션을 수신 할 때 EVM 바이트 코드를 실행하여 계산 (트랜잭션)을 수행 할 수 있도록 한다. 컨트랙트는 바이트 코드의 시작 부분에서 실행되며 각 opcode는 PUSH opcode를 제외하고 1 바이트로 인코딩된다.

 

Geth Classic, Geth, Multi-Geth 또는 Parity Ethereum과 같은 Ethereum 클라이언트를 실행할 때 스마트 컨트랙트를 실행하기 위해 특별히 작성된 운영 체제 (EVM)도 함께 제공된다.

 

EVM-LLVM은 알파 테스트를 준비중이며 최신 개발 내용은 공식 EVM-LLVM 프로젝트 저장소 [4]를 참고하면 된다. (이 프로젝트에 대해 공동 작업 요청은 ETC Labs Discord [5]에서 수석 컴파일러 엔지니어 인 Alan Li과 협의 가능.)

 


출처

[1] http://llvm.org/

[2] https://stackoverflow.com/questions/2354725/what-exactly-is-llvm/2354750#2354750

[3] https://stackoverflow.com/a/49081640

[4] https://github.com/etclabscore/evm_llvm

[5] https://discord.gg/S9AT3X2



블록체인24

0
기사수정
  • 기사등록 2019-08-30 13:38:20
나도 한마디
※ 로그인 후 의견을 등록하시면, 자신의 의견을 관리하실 수 있습니다. 0/1000
모바일 버전 바로가기