본문 바로가기

전체 글95

틀 만들기 1. 서버 사이드 랜더링 이해하기 2. 틀 다지기 front 폴더 생성 npm init npm i next@9 packagejson 수정 => "scripts": { "dev": "next" }, "author": "gunwooKim", front 폴더 내 pages 폴더 생성 index.js 생성 const Home = () => { return( Hello, next! ) } export default Home; next js 는 폴더 내 pages라는 이름은 무조건 필수(next가 코드스플린팅) npm i react react-dom npm run dev 실행시 빌딩이 되고 뜨는 로컬호스트로 들어가보면 Hello, next가 뜬다 components 폴더 생성 AppLayout.js 생성 impor.. 2022. 2. 19.
Docker 간단한 명령어 정리 가져오고자하는 이미지 sudo docker image pull docker sudo docker image ls 리스트 docker container run --name 컨테이너_이름 docker/whalesay:latest cowsay boo docker container run[실행] --name[OPTIOS} docker/whalesay:latest[가져오고자하는IMG] cosway[초기 컨테이너 실행 시 수행되는 명령어, cowsay 호출] boo[COMMAND인 cosway에 넘겨질 파라미터] sudo docker container ps -a 모든 컨테이너 리스트 출력 docker container rm 컨테이너_이름 컨테이너 삭제 sudo docker image ls docker image의 .. 2022. 2. 19.
Docker 이해하기 Docker 도커(Docker)는 리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 서비스. 도커를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있으며, OS를 격리화하여 관리한다. Linux Container 란? Linux Container는 Linux 기반의 기술 중 하나로, 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것을 말한다. 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유 컨테이너 방식의 장점 의존성 충돌 문제를 해결해 준다 개발과 배포 환경을 일치시킨다 수평 확장을 쉽게 해준다 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다 컨테이너는 무엇을 격리하나? 프로세스 특정 컨테이너에서 작동.. 2022. 2. 19.
P2E NFT, 배팅 시스템 초기 설계안 초기 설계안 작성 (22.02.17) 전쟁 토너먼트 우승자 가리기 컨텐츠 1. 서버 혹은 서버 내 길드 단위 전쟁 시스템 도입(ex 보상 : 성 or 재화 or 능력치 버프 보상) 2. 컨트렉트 배팅 시스템 도입 3. 전쟁에 참여하는 순위권 길드 외 유저들 관람(전쟁에 참여하는 유저 외 모든 유저 참여가능) 4. 실시간 생중계 시스템 도입(시점 변경 기능 필수, 유저 추적 기능 필수, 생존자 사망자 킬수 트래킹 필수) 5. 우승자를 맞춘 유저는 효과 or 배팅금 정산받기 성 시스템 1. 길드 단위 전쟁 후 승자에게 성을 NFT화 시켜 소유권 이전 2. 1인 독점 방지를 위해 NFT를 쪼개서 n분으로 길드원 분배 3. 성에서 나오는 수익 재화 nft 소유 추적으로 배분 4. 수성전 시스템 : 승리하면 nf.. 2022. 2. 17.
기존 이더 기반 트랜잭션 처리와 klay 트랜잭션 처리 차이 ETH user가 날린 요청을 서버 EOAs로 받아 nonce 값이 쌓인다 이더리움은 대납기능이 없기 때문 이더리움 가스비가 비싸다 klay user가 날린 요청은 user의 EoAs 즉 개인 지갑에서 nonce가 생성된다 개인지갑에서 날려도 대납기능이 존재하기 때문에 상관없음 2022. 2. 16.
Klaytn 트랜잭션 비용 위임 TxTypeFeeDelegatedValueTransfer TxTypeFeeDelegatedValueTransfer는 사용자가 KLAY를 보내려고 할 때 사용 TxTypeFeeDelegatedValueTransfer는 KLAY를 EOA에 전송할 때 사용하는 기능 KLAY를 스마트 컨트랙트로 전송하려면 TxTypeFeeDelegatedSmartContractExecution을 대신 사용 수정중 2022. 2. 15.
Klaytn transactions 개요 트랜잭션은 블록체인의 상태를 변경하는 노드간 전송되는 메시지이다. 트랜잭션은 아토믹(atomic) 연산이기 때문에 한 트랜잭션이 다른 트랜잭션 사이에 낄 수 없다. Klaytn은 새로운 기능을 제공하고, 메모리 풋 프린트와 퍼포먼스를 최적화하기 위해 여러 가지 트랜잭션 유형을 제공한다 트랜잭션의 서명 검증 클레이튼에서 키 쌍은 Klaytn의 주소와 분리되어 있으므로 발신자 주소는 트랜잭션 서명을 사용하여 파생되지 않는다 TxTypeLegacyTransaction을 제외한 다른 Klaytn 트랜잭션 유형의 필드에 from이 있는 이유 트랜잭션을 검증하기 위해 클레이튼에서 from의 AccountKey가 사용 트랜잭션 수수료 위임 트랜잭션 수수료 보조금은 Ratio parameter를 조정하여 서비스 .. 2022. 2. 15.
Klaytn 계정 개요 Klaytn의 계정(account)은 개인의 잔액이나 스마트 컨트랙트에 관한 정보를 포함하는 데이터 구조 Klaytn의 상태(state)는 모든 계정의 상태, 즉 Klaytn의 계정들에 저장된 모든 데이터의 과거와 현재 상태를 의미 Klaytn 노드에서 트랜잭션이 실행되면, Klaytn의 상태는 모든 노드에서 변경 주소로부터 키 쌍(key pairs) 분리하기 클레이튼은 사용자가 자신의 주소와 키 쌍을 선택할 수 있도록 하는 기능을 제공 사용자는 원하는 주소를 선택할 수 있고, 다중 키 쌍을 사용하여 보안을 강화할 수 있다. 다중 키 쌍과 역할기반 키 klaytn 계정은 키쌍과 연결 되는데 이 키 쌍은 변경 될 수 있다. 다중 키 쌍을 지원하며 각 키는 다른 목적을 가질 수 있다. 주소와 강하게 결.. 2022. 2. 15.
klaytn 합의 메커니즘 합의 메커니즘 PBFT PBFT에서는 각 노드가 다른 참여 노드와 통신하여 합의에 도달하고 노드가 합의에 도달하는 즉시 블록의 완결성를 보장 노드 간의 통신은 다음과 같이 진행된다 PBFT에 참여하는 노드는 기본적으로 네트워크의 모든 노드와 여러 단계에서 통신합니다. 이 특성은 노드 수가 증가할수록 통신량이 기하급수적으로 증가하므로 노드 수를 '제한'한다. BTC, ETH(PoW, PoS) 일반적으로 이러한 알고리즘들은 블록의 유효성을 결정할 때 노드 간에 통신하지 않는다 이러한 시스템에서는 포크가 발생할수 있다. 같은 높이에서 둘 이상의 서로 다른 블록이 만들어질 수 있다는 의미 일반적으로 가장 긴 체인의 길이를 유효한 체인으로 인정하는 규칙이 포크 상태를 해결한다 결국 하나의 체인으로 병합되긴 하지만.. 2022. 2. 15.
web3, 컨트렉트 연결 Eth - version 순서 프론트에서 컨트렉트 호출 api를 날린다 서버단에서 api를 받고 컨트렉트로 신호를 보낸다 server web3와 연결 const Web3 = require('web3'); const web3 = new Web3( new Web3.providers.HttpProvider( 'https://ropsten.infura.io/v3/c2cc008afe67457fb9a4ee32408bcac6' ) ); abi 읽어 오고 변환해주기 const fs = require('fs'); const WTABI = fs.readFileSync('server/abi/WTToken.json', 'utf-8'); const NWTABI = fs.readFileSync('server/abi/NWTToke.. 2022. 2. 15.