본문 바로가기
728x90
반응형
SMALL

블록체인 공부16

이더리움 기반 소프트웨어 논리구성 이더리움 기반 소프트웨어의 논리구성은 기존의 프로그램의 시스템과 약간 다르다. 기존 시스템과 이더리움의 차이는 백엔드측 애플리케이션에 있다. 이러한 애플리케이션을 기존 시스템과 구별하기 위해 분산 애플리케이션, 즉 탈중앙화 애플리케이션이라 부른다. 소프트웨어 구성 소프트웨어 구성은 위와 같습니다. 그리고 이더리움의 Dapp은 다음과 같은 구성입니다. Dapp = 프론트엔드 + 블록체인(백엔드역할) 프론트엔드 유저 인터페이스를 위한 시스템이며 기존 애플리케이션들과 마찬가지로 HTML/Javascript 프로그램으로 구성되어 Web.js API를 통해 블록체인과 통신한다. 블록체인(백엔드) geth프로세스는 Web3.js API를 통해 프론트엔드와 통신하고 백엔드 프로그램과의 소통을 위한 중개 역할을 한다... 2023. 2. 15.
[개발 환경설정-4] 블록체인 연결하기 - 메인넷, 테스트넷 동기화 컨트랙트를 배포하거나 네트워크 트랜잭션을 실행하려면 사용할 각 네트워크에 전체 노드를 동기화 해야합니다. 주로 이더리움 메인넷 (mainnet)과 링키비 테스트넷(testnet)의 두 네트워크를 동기화 한다. 테스트넷은 이더리움 프로토콜을 실행하지만 토큰이 없는 네트워크라고 할 수 있습니다. 가스 비용을 지불하지 않고도 코드, 배포, 트랜잭션을 테스트하는데 유용합니다. 메인넷에서 반복 테스트를 수행하려면 상당한 비용을 써야 한다.= 진짜 돈을 사용해야한다. 네트워크 동기화 Geth에서는 세 가지 모드로 네트워크 동기화를 진행할 수 있습니다. 각각 라이트(Light) 풀 (Full) 아카이브 (archive) 모드, 3개가 있습니다. 라이트 노드 블록헤더를 동기화 하지만 트랜잭션을 처리하거나 상태 트리를 .. 2023. 1. 30.
[기본geth명령어] 기본 geth명령어 / Geth (Go-Ethereum)는 많은 기능을 처리하는 고도화된 프로그램이다. geth에서 실행할 수 있는 명령의 전체목록을 보려면 geth help 를 실행하면된다. 사용 가능한 포괄적인 명령이 나타나는데, 그중 필수적인 명령 몇가지를 알아보겠습니다. geth에 대한 문서는 깃허브 링크 github.com/ethereum/go-ethereum/wiki/geth에서 찾을 수 있습니다. 이 페이지에서는 geth console API 및 geth 명령 레퍼런스에 대한 링크도 담겨있습니다. 유용한 geth 명령 기본동작을 위한 geth 모드 geth 통신용 콘솔 ( 로그가 없는 사일런트 로그 ) geth console --verbosity 0 명령 도움말 geth help 링키비 테스트넷 geth -rink.. 2023. 1. 30.
geth --rpc 명령어 에러 flag provided but not defined: -rpc geth 명령어를 사용했을때 이런 오류가 발생했습니다. geth --rpc -rpcapi web3.eth.net.personal flag provided but not defined: -rpc 바로 -rpc 명령어를 인식못하는 경우입니다. 이것을 --http로 변환해서 사용하면 됩니다. 그럼 위의 명령어를 아래와같이 rpc를 http로 모두 변환해서 사용한다면 geth --http -http.api web3.eth.net.personal 비슷한 사례 --rpcapi -> --http.api --rpcport -> --http.port --rpccorsdomain -> --http.corsdomain 2023. 1. 30.
[개발 환경설정-3]이더리움 개발 환경 셋팅 - 배포설명과 트러플 설치 및 배포해보기 배포 이더리움 주소에는 지갑 주소와 컨트랙트 주소라는 두 가지 주소유형이 있다. 동일한 형태를 가지고 있고 기능도 거의 동일하지만, 사용자에게 귀속하느냐 컨트랙트에 귀속하느냐의 차이가 있다. 특정 지갑 주소에 담긴 이더를 다른 곳으로 보내려면 해당 지갑 주소의 개인키가 반드시 필요하다. 컨트랙트 주소도 지갑 주소와 마찬가지로 잔고를 가지고 있다. 컨트랙트 주소에 담긴 이더를 다른 곳으로 보내는 것은 해당 컨트랙트 코드만 수행할 수 있다. 트러플이란? 트러플은 솔리디티 및 EVM의 개발 프레임워크이다. 트러플이 컨트랙트의 컴파일, 배포, 테스트 절차를 간소화해주기 때문에 개발자는 컨트랙트의 작성에 집중할 수 있다. 트러플을 전역으로 설치하려면 다음 명령을 사용하면 된다. sudo npm install -g.. 2023. 1. 27.
Truffle init not creating Migration.sol file / truffle init 오류 외국에서 관심해할것같아서 영어로 작성하겠습니다. 은근 외국사람들이 많이 찾더라구요 그 아래엔 한국어로 작성하겠습니다. when we make new folder and init truffle but there not create Migration.sol file or any files, it just created folders... Don't warry you can create they are that folder. let's follow me, I create new folder name is "sample" and I order truffle init in this folder. But it has nothing in folers ... You can try This order truffle un.. 2023. 1. 27.
[개발 환경설정-2]이더리움 개발 환경 셋팅 - 이더리움 클라이언트 설명 및 Geth설치 이더리움 클라이언트 이더리움 클라이언트(Ethereum Client)는 이더리움 프로토콜 구현체로서, 이더리움 네트워크 및 블록체인과 통신하는 프로그램이다. 이더리움 클라이언트의 역할은 다음과 같다. 새로운 체인 동기화 새 블럭 다운로드 및 확인 피어와 연결 트랜잭션 확인 및 실행 로컬 트랜잭션을 네트워크로 브로드 캐스트 기본적인 채굴 기능 제공 이더리움 클라이언트에도 여러 종류가 있으며 각각 장단점이 있습니다. 저는 주로 geth와 가나슈(Ganache)라는 두 가지 클라이언트를 사용하겠지만 Eth와 패리티(parity)도 함께 조금씩 다뤄보겠습니다. Geth Geth는 이더리움 프로토콜의 공식 구현체로 Go 언어로 작성되었습니다. 최신 업데이트가 반영되는 이더리움 클라이언트이며 모든 이더리움 업데이트.. 2023. 1. 27.
[개발 환경설정-1]이더리움 개발 환경 셋팅 - 필수 사항 설치 운영체제 맥os , 리눅스 에서 진행 - 윈도우의 경우 VMWare의 리눅스에서 진행하겠습니다. 엥? 리눅스??? 다양한 버전의 리눅스는 이더리움 클라이언트를 실행하는데 필요한 도구를 담고 있습니다. 특히 리눅스의 커맨드 라인 인터페이스(CLI) 에서 많은 시간을 쓰게 될 것입니다. 모든 리눅스 시스템에는 터미널, 배시 또는 셸 과 같은 이름의 CLI 프로그램을 제공합니다. 그리고 그런 CLI 환경으로 이더리움을 보다 집중적으로 개발하고 알아볼 수 있습니다. 따라서 이번포스팅에서는 node.js , 솔리디티 , 깃 정도를 설치하겠습니다. 프로그래밍 도구 모든 프로그래밍 프로젝트에는 텍스트 편집기, 컴파일러/런타임, 버전 제어 등 기본적인 프로그래밍 도구가 필요합니다. 이더리움 클라이언트를 본격적으로 사용.. 2023. 1. 26.
[블록체인 개념-마지막] 간단한 스마트컨트랙 및 기술응용 유용한 스마트 컨트랙트 블록체인의 스마트 컨트랙트 및 댑은 급부상하는 신기술입니다. 그러나 기술이 널리 사용돼 보급될 가능성을 100%확신 할 순없습니다. 계석 업계에서 잠재력이 큰 용례를 탐색하는 시기이고 응용하려고 하고 있습니다. 스마트컨트랙트의 가장 입증된 용레는 맞춤식 토큰과 크라우드세일로, 지금까지 이더리움 상에서 수백개의 토큰이 출시, 판매되었습니다. 이러한 형태의 크라우드세일을 일반적으로 토큰판매, 또는 ICO라고 합니다. 에스크로 스마트 컨트랙트는 신뢰할 수 없는 당사자 간의 토큰 전송에 널리 사용됩니다. 판매자는 스마트컨트랙트에 토큰 제어권을 부여하고 구매자가 이더를 컨트트랙트로 보내는 경우에만 토큰을 구매자에게 보냅니다. 스마트컨트랙트를 사용해 토큰 이외의 다른 디지털 자산을 저장할 수.. 2023. 1. 25.
[블록체인 개념-7] 이더리움 내의 프로그램, 솔리디티(Solidity), 해킹방지, 이더리움 게임 블록체인 개발 시 자주 사용되는 개념입니다. 다른 백서나 글에서 자세히 나오지만 간단하게 이해만 하고 지나가고 싶으신 분들에게는 도움될 수 있을것같아서 정리했습니다. 1. 이더리움 내의 프로그램 이더리움 내의 프로그램은 상호 작용하는 하나 이상의 스마트컨트랙트로 구성된다. 스마트 컨트랙트는 다른 스마트컨트랙트의 기능을 호출 할 수 있습니다. 개별 컨트랙트는 기존의 프로그램언어에 존재하는 클래스와 유사합니다. 스마트 컨트랙트는 EVM 어셈블러, 솔리디티, LLL (Low-Level Lisp), 서펀트 등의 언어로 작성할 수 있습니다. 모든 컨트랙트는 결국 EVM 어셈블리 바이트 코드로 컴파일 됩니다. 여러 언어 중 솔리디티가 가장 일반적으로 사용되는 언어이며, 주변에서도 솔리디티를 주로 사용합니다. 물론 .. 2023. 1. 25.
[블록체인 개념-6] Web3 , 비트코인 vs 이더리움 , 주소와 키 쌍 , 컨트랙트와 외부 계정 블록체인 개발 시 자주 사용되는 개념입니다. 다른 백서나 글에서 자세히 나오지만 간단하게 이해만 하고 지나가고 싶으신 분들에게는 도움될 수 있을것같아서 정리했습니다. 1. Web3 블록체인 기술을 초기에 채택한 많은 사람은 인터넷의 새로운 시대, 웹 3.0을 열 수 있는 가능성에 모두 흥분했었습니다. 웹 1.0 웹 1.0은 인터넷의 초기 단계를 가리키는 용어로, 당시의 인터넷은 주로 상품을 판매하고, 정보를 게시하는 데 사용하는 플랫폼이었습니다. 웹 2.0 웹 2.0은 소셜 네트워크와 인터넷 공동 작업을 도입했습니다. 페이스푹, 플리커, 인스타그램 등의 사이트는 사용자가 제작한 콘텐츠를 중앙 서버에 담고 프런트 엔드로 게시했습니다. 웹 3.0 웹 3.0은 더 이상 중앙 권력이 검열을 수행하거나 사용자 데.. 2023. 1. 25.
[블록체인 개념-5] 상태 트리 - What is State Trie 상태트리란? 이더리움의 기본 데이터 베이스는 Keccak256 해시 키를 32byte 값에 매핑하는, 키/값 쌍으로 구성된 상태트리이다. 솔리디티의 데이터 구조는 하나 이상의 상태 트리 항목을 사용해서 프로그래밍에 도움되는 프로그래밍 구문을 생성한다. 간단한 자료형은 32byte 이하이며, 하나의 상태트리 항목에 저장할 수 있다. 배열과 같은 복잡한 자료형에는 여러 상태 트리 항목이 필요하다. Keccak256 해시는 256 비트 길이이므로, 이더리움 상태 트리는 최대 2,245개의 고유 항목을 저장하도록 설계되었다. 그러나 약 280개의 항목 이후에는 해시 충돌로 인해 트리의 사용에 상당한 제약이 발생한다. 어느 쪽이든, 이것은 현재 전 세계에 존재하는 것보다 많은 디스크 공간이므로 개발자는 주한정의 .. 2023. 1. 23.
728x90
반응형
LIST