분류 전체보기
-
토큰 만들기카테고리 없음 2022. 7. 15. 14:15
코인과 토큰의 차이 코인 : 메인넷이 있다. 토큰 : 메인넷이 없는 가상의 데이터이다. 토큰 만들기 mapping 함수명은 어느정도 규격이 정해져있는것이라 벗어나면 안된다. 초반에 선언해주는 변수명은 상관없음. mapping(string=>uint256) public balances; mapping(string=>uint256) = {} mapping(uint256=>string) { 0 : "ㅎㄹㅇㅎㅇㅎ" } mapping(address=>uint256) public balances; { "0x3":1000 } from from은 있지만 to가 없으면 단순 배포용 from도 있고 to도 있으면 함수 실행용 const contract = web3.eth.Contract(abi) TxObject = { f..
-
counter Dapp 이벤트작성카테고리 없음 2022. 7. 14. 14:36
counter DAPP 이벤트 구현 컴퓨터 재부팅시 가나시 다시 실행 npx truffle migration --reset counter.json 최신화 후 front에 복붙 실수 : truffle/migrations안에 2_deploy_Counter.js 파일을 만들지 않아서 migration 파일만 network연결이 되었었다. 위 파일을 만든 후 npx truffle migration --reset을 입력하면 networks 연결이 된다. ganache 연결을 안하고 truffle을 실행했었다. ganache가 튕길 경우 metamask도 연결이 끊긴다. 이벤트 추가 작성 Counter.jsx import React from "react"; import { useEffect } from "react..
-
Counter DAPP카테고리 없음 2022. 7. 13. 13:59
Counter 만들기 truffle cd truffle npx truffle init Front : create-react-app front npx create-react-app front front/src/hooks import React, { useEffect, useState } from "react"; import Web3 from "web3/dist/web3.min"; const useWeb3 = () => { const [account, setAccount] = useState(null); const [web3, setWeb3] = useState(null); useEffect(() => { (async () => { //너 실행하는 브라우저가 메타마스크가 있습니까? if (!window.et..
-
truffle을 이용한 스마트 컨트랙트 개발 및 배포카테고리 없음 2022. 7. 12. 17:12
Truffle 컴파일, 배포, 디버깅을 지원하는 도구 $ npm install -g truffle $ truffle init npm install -g truffle를 입력해 스마트 컨트랙트 개발을 진행할 폴더를 생성한 후, 터미널에서 해당 폴더로 위치 시킨 뒤 해당 명령어를 통해 트러플 프로젝트를 생성한다. truffle init 그러면 다음과 같은 폴더와 파일들이 만들어진다. 해당 폴더들 기능에 맞게 파일을 추가하여 개발을 하면 된다. build/contracts 폴더 : 작성한 스마트 컨트랙트를 compile하면, json 파일이 생성되어 저장된다. contracts 폴더 : 스마트 컨트랙트 작성하는 폴더 migrations 폴더 : 이더리움 네트워크에 배포할 때 사용되는 js 파일들이 저장 되어 ..
-
typescript, hex-to-binary, eslint , prettier, Jest카테고리 없음 2022. 6. 30. 17:03
typescript $ npm init -y $ npm i -D typescript ts-node @types/node npx tsc index.ts 로 실행하면 된다. tsconfig.json { "compilerOptions": { "outDir": "./dist/" } } index.ts import {a} from "@core/utils.ts" typescript 에서 모듈 받는법 import express,{Request,Response} from "express" const app =express() app.get('/',(req,Request,res)=>{ }) app.listen(3000,()=>{ console.log('서버시작') }) npm i hex-to-binary import h..
-
블록 구성 연습카테고리 없음 2022. 6. 29. 16:22
블록 헤더 버전 4byte version 이전블록해시 32byte previousHash 머클루트 32byte merkle root hash1 + hash2 + hash3 + hash4 hash1,2 + hash3,4 = merkleroot 해쉬 hash version + previousHash + merkleRoot+ difficulty + nonce sha256 알고리즘으로 암호화한 정보 타임스탬프 4byte 채굴난이도 4btye difficulty 논스 4byte nonce 바디 거래 내역의 정보가 들어감 바디값중 첫번째 값+ 두번째 값= 해쉬값 블록만들기 설정 crypto 메소드 호출도 짧고 직관적이게 하는 라이브러리 $ npm install crypto-js $ npm install merkle..
-
지갑 연습카테고리 없음 2022. 6. 16. 14:02
키 스토리지 지갑 내에는 거래를 하기 위해 필요한 중요한 키 값들을 저장합니다. 이 키 값은 공개키, 개인키에 해당하는데요, 공개키는 개인의 계좌번호, 개인키는 계좌의 비밀번호와 같은 역할을 합니다 거래소 지갑 암호화폐를 거래하려는 사람들은 대부분 거래소를 통하게 됩니다. 암호화폐 거래소에서 자신의 계정을 만들게 되면 자동적으로 본인 계정에 연결된 거래소 지갑이 생성됩니다. 하지만 이렇게 생성된 거래소 지갑을 사용하는 경우, 개인의 공개키와 개인키를 본인이 소유하지 않고 거래소에서 관리하게 됩니다. 따라서 거래소가 폐업하거나 해킹 당하는 경우, 자신의 자산이 완벽하게 보호됨을 보장할 수 없습니다. 해커가 거래소의 서버에 접속해 나의 개인키를 탈취한 후, 그 개인키를 이용해 나의 자산을 몽땅 훔쳐갈 수도 ..
-
블록체인을 생성하고 서로 공유하기카테고리 없음 2022. 6. 16. 13:55
thunder로 연결 config.ts 에서 제네시스 코드 맞추고 peer.json ip설정 block.ts 에 제네시스 코드도 변경 순서 : addPeers> mineBlock> chains 서버 연결 post http://192.168.0.108:3000/addPeers 메인 아이피 주소 { “peer”:“ws://192.168.0.160:7545” } 블록 만들기 post http://192.168.0.108:3000/mineBlock { “data”:[“다들 보이시나요?”] } post http://192.168.0.108:3000/addPeers 체인 확인 get http://192.168.0.108:3000/chains ./serve/p2p.ts // 1. 서버 2. 클라이언트 /// impo..