How To Get Start Hardhat+NodeJs?[#1 SetUp]
2022. 8. 24. 16:19
블록체인
First, you neet to create typescriptFile //1 npx create-next-app@latest -- typescript //2 npm install --save-dev hardhat //3 npx hardhat //4 and then test for was it complete npx hardhat test //5 npx hardhat compile If you have an error pls npm i @nomicfoundation/hardhat-toolbox last i want to get test eth AC and PV key run npx hardhat node then just put in My MetaMask
코어 이더리움 18 [스웜프로토콜]
2022. 6. 7. 00:23
블록체인/코어 이더리움
p2p 파일시스템, 스웜 스웜은 인센티브 방식으로운영되는 p2p 파일시스템 1.웹 시스템 특정서버주소가있어야함 2.스웜 특정 서버주소가 없어도됌 3.스웜에 파일을 업로드하면 실제해당파일은 온라인 상태에 있는 스웜노드 중 하나에 업로드된다. 4.데이터삭제기능이 없음 용량이 큰 파일을 여러 블록으로 쪼개서 저장하는 방식을 사용한다 : 블록으로 쪼개어 저장하므로 동시에 여러 블록을 받을 수 있다. Bittorrent 방식의 파일 교환이 가능하다는 의미이다. 어떤 노드가 용량 큰 파일을 받고자 할 때, 해당 파일을 보유한 여러 노드가 동시에 부분 별로 나누어 보내줄 수 있다- 파일이 여러 블록으로 쪼개져 있기 때문이다. 또한 content-addressing을 통해 파일의 무결성을 확인할 수 있다. 모두 URL..
코어 이더리움 16 [P2P 네트워크]
2022. 6. 2. 03:28
블록체인/코어 이더리움
앞서말한것들의 틀이라고생각해보면된다. 공통 계층 (=공통으로 사용하는 기능을 포함하고 있다.) 이더리움 P2P 네트워크는 1.마이닝 작업을 수행하는 마이너 노드 2.일반 사용자 노드 로 나뉜다. 이 노드들이 이더리움의 P2P 네트워크에 연결 블록체인 데이터의 동기화 방식에 따라 전체노드(전부동기화)와 라이트노드(일부분 동기화)로 나뉜다 모든 노드가 블록체인의 모든 데이터를 동기화해야 효율적으로 운영된다. 단점과 조심해야할 점들 분산형 구조이다 보니 네트워크 끊김 현상이 자주 발생하고, 프로토콜상의 질의 내용을 변조하거나 다수의 노드를 악의적으로 점령한 뒤 네트워크를 혼란시키는 이클립 스 공격 등 여러 보안상 문제가 발생할 수 있다. 그래서 NAT(Network Address Translation) 서버를..
코어 이더리움 15 [P2P 네트워크,Level DB]
2022. 6. 2. 03:18
블록체인/코어 이더리움
P2P 네트워크 연결 관리 이더리움 P2P 네트워크 계층에서는 각 노드의 품질을 모니터링하고 통계를 낸 후 좋은 노드 와 나쁜 노드를 구별하고, 좋은 노드와의 연결을 지속적으로 유지하기 위해 노력한다 좋은 노드는 네트워크에 연결되어 작동되는 시간이 길고 다른 노드의 요청에 빠르게 반응하는 노드를 말한다. 노드에는IP 주소, TCP/UDP 포트, 노드 의 공개키인 노드 ID 정보를 담고 있다 type Table struct { count int // 노드들의 숫자 buckets [nBuckets]bucket // 알고 있는 노드들의 목록 nodeAddedHook func(Node) // 테스팅 목적 self *Node // 로컬 로드의 메타데이터 } type Node struct { IP net.IP //..
코어 이더리움 14 [RLP 인코딩]
2022. 6. 2. 03:14
블록체인/코어 이더리움
RLP인코딩 이더리움은 데이터를 저장하기 위해 trie 구조를 사용하며, 해당 구조를 DB에 저장할땐, 다음그림과 같이 RLP인코딩을 한다고 알려져 있다. RLP인코딩을 사용하는 이유 1.이더리움 내부에서 중첩된 바이너리 배열을 인코딩하기위해 2.해시값이 달라질수 있는 위험이 존재하기떄문 RLP라는 인코딩 패키지를 구현 인코딩 과정이 아주 단순하여 인코딩 크기를 줄이고 바이트 단위의 일관성을 확보하기위해서이다. RLP란? RLP(Recursive Length Prefix)는 임의의 깊이와 개수로 중첩된 배열을 binary data로 표현하는 인코딩 방식이다. 인코딩할 데이터 앞에 binary data의 길이를 추가하는 방식으로 동작하기 때문에 Length Prefix라는 이름이 붙었다 RLP의 input..
코어 이더리움 13 [스마트 컨트랙트와 evm에대해]
2022. 5. 30. 02:52
블록체인/코어 이더리움
스마트 컨트랙트 특정 계약을 스스로 수립,검증,이행하기위한 컴퓨터 프로토콜이다 무한반복 같은 악의적인 코드 를 막고 데이터의 무결성을 지키기위해 “모든 트랜잭션을 실행할 때는 해당 실행 비용을 지급해야 한다.” “컨트랙트의 모든 내용과 입력을 공유한다.” 모든 컨트랙트의 내용과 입력 정보를 공유한다. 그러나 결과는 공유하지 않는다. 결과를 공유 하지 않는 이유는 블록체인의 컨트랙트와 트랜잭션, 리시트 정보를 재구성하면 언제든지 해당 트랜잭션의 결과를 확인할 수 있기 때문이다. 이처럼 컨트랙트의 모든 내용과 입력을 공유함으 로써 악의적으로 컨트랙트를 조작하는 것을 방지할 수 있다. 컨트랙트 메시지 메시지는 한마디로 가스 비용이 발생하지 않는 컨트랙트 간의 내부 호출이다 코드에 담기는 내용들 발신자 주소(f..