코어 이더리움 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..
DID(자기주권신원증명(탈중앙)에 관해)[임혜정,남민우]
2022. 6. 2. 03:03
페어프로그래밍
https://piquant-march-efe.notion.site/b430c0a719d04d14b54408ada51d8dd0 코드스테이츠 페어프로그래밍[임혜정, 남민우] Decentralized Identity(탈중앙 신원증명, 이하 DID)란 piquant-march-efe.notion.site 느낀점:좋은분과 함께한다는건 언제나 신나고 짜릿한일이다. DID를 이해하기 어려웠지만 우리만의 방식으로 요약하고 기억하기쉬울 수 있도록 작성하려고 노력을 많이했다. 가장중요하게 생각했던건 DID의 인증절차 단계가 많았지만 3단계로 나누어 정리를진행하였다. 1.전송 및 답신 Transfer and Response 소유자가 회사에 트랜잭션을 보내면(response) 2.찾기 indexing Universal Re..
왜 스타일컴포넌트를 쓰는가?
2022. 6. 2. 02:52
리액트/스타일컴포넌트(Style conponents)
css의 오염을 막을 수 있다. =>대규모 어플리케이션 프로젝트의 경우에는 CSS파일의 부피가 커지고, 복잡해질 수 있다. moulde.css 이런식으로 짜지 않아도 컴포넌트 내에서 쓰이기때문에 관리가 용이해짐 div투성이의 코드를 짜지않을 수 있게 됀다. function App() { return ( Log in Hello */} ); } 이런식으로 코드가이뻐짐 SSR 서버사이드렌더링 Styled-components 는 서버 사이드 렌더링을 지원합니다. 기본 아이디어는 서버에서 앱을 렌더링 할 때마다 ServerStyleSheet 컨텍스트 API를 통해 스타일을 허용하는 공급자를 생성하고 반응 트리에 추가 할 수 있다는 것입니다. 이것은 키 프레임과 같은 전역 스타일을 방해하지 않으며 createGlo..
redux state가 array/object인 경우 변경하려면
2022. 6. 1. 02:23
리액트/리덕스( Redux Toolkit)
1.store에 저장된 state가 array, object 자료인 경우 state 변경을 좀 쉽게 편리하게 할 수 있는데 state변경함수에 파라미터 뚫는법 let user = createSlice({ name : 'user', initialState : {name : 'kim', age : 20}, reducers : { changeName(state){ return {name : 'park', age : 20} } } }) let user = createSlice({ name : 'user', initialState : {name : 'kim', age : 20}, reducers : { changeName(state){ state.name = 'park' } } }) 근데 state를 직접 수정하..
Redux 쓰는 방법 1
2022. 6. 1. 02:10
리액트/리덕스( Redux Toolkit)
Redux 쓰면 뭐가 좋냐면 Redux는 props 없이 state를 공유할 수 있게 도와주는 라이브러리입니다. 이거 설치하면 js 파일 하나에 state들을 보관할 수 있는데 그걸 모든 컴포넌트가 직접 꺼내쓸 수 있습니다. 그래서 귀찮은 props 전송이 필요없어집니다. 컴포넌트가 많아질 수록 좋을듯. 그래서 사이트가 커지면 쓸 수 밖에 없어서 개발자 구인시에도 redux같은 라이브러리 숙련도를 대부분 요구합니다. Redux 셋팅은 1.state보관하는통만들기 import { configureStore } from '@reduxjs/toolkit' export default configureStore({ reducer: { } }) 2.index.js import { Provider } from "re..