backend

backend/blockchain

20231005 블록체인 baseball

truffle config.js development: { host: "127.0.0.1", // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }, development 의 host와 portf 위와같이 설정함으로 ganache와 소통할 준비를 한다. 컴파일러는 solc의 버전 설정을 위해 사용된다. 0.8.13 버전사용의 이유는 명확하지는않다. compilers: { solc: { version: "0.8.13", // Fetch exact version from solc-bin (default: truffle's ver..

backend/blockchain

20231005 블록체인

블록체인 메타마스크를 통한 이더리움 지갑연결 truffle이용한 배포및 테스트 그리고 빌드 web3라이브러리 Counter.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; contract Counter{ uint256 private value; // function setValue(uint256 _value) public { // value = _value; // } function increment() public { value +=1; } function decrement() public { value -=1; } function getValue() public view returns(uint256) { return value; } } tr..

backend/blockchain

20230912 블록 체인 지갑

지갑에대한 이록적인 내용 # 지갑 구성 및 지갑의 역할 - 기본적인 역할로 암호화폐를 안전하게 보관할수있고 암호화폐를 전달하거나 받을수있다. - 자산의 소유권을 암호화 방식으로 증명 지갑의 개인키를 사용해서 거래의 서명을 검증하고 본인의 자산을 관리 - 본인의 암호화폐의 보유량 확인 - 지갑의 거래내역확인 - 복구 문구를 사용해서 지갑 복원(복구 문구를 가지고 특정 알고리즘을 거쳐서 개인키를 추출한다.) ## 금융 - 금융쪽에서는 장부를 가지고 모든 거래내역을 기록하는방식 - 은행이라는 금융기관은 장부에 거래 내역으로 의존 할수 밖에 없는 중앙 집권 방식 # 분산 원장 - 분산원장은 금융과 반대로 거래에 참여하는 모든 참여자가 장부를 가지고있고 거래가 발생했을때 해당 거래 내역을 각자의 장부에 기록하는 ..

backend/nodejs

20230516 엑세스 해싱

엑세스 해싱 정확히 무슨기능을 만드는지 인식하고 들어가는게 중요하다. 회원가입을 진행하면 비밀번호를 해싱해서 저장하는것. 비밀번호 탈취시에도 뚫리는시간을 오래걸리게끔 방지한다. 과정에서 암호화하는데 두가지 방법이있다. 하나는 내부 모듈 crypto 다른 하나는 외부 모듈 bcrypt bcrypt //express path mysql ejs const express= require("express"); const path= require("path"); const mysql2=require("mysql2/promise"); const ejs= require("ejs"); const joinRouter=require("./routers/joinrouter"); const loginRouter=require(..

backend/nodejs

20230508 nodejs 미들웨어 등

nodejs middelware express.urlendecoded({extend:false}); 미들웨어는 프로그램 사이에서 이어주는 기능을 가지게되는데 app.use(express.urlencoded({extended:false})); 이 명령어는 쿼리문을 사용할수있게 해준다. body parser 대신사용하는것 원래는 body parser를 따로 사용해줘야했지만 mysql2로 넘어오면서 따로 사용할 필요가없어졌다. app.use(express.static(path.join(__dirname,"public"))); 제공해주신 코드는 Express 프레임워크를 사용하여 현재 디렉토리 내의 "public" 폴더에서 정적 파일을 제공하는 역할을 합니다. 각 부분에 대한 설명은 다음과 같습니다: app.u..

backend/nodejs

20230504 nodejs express ejs mysql2 path

node // 처음 프로젝트 만들었으면 이제 // npm init -y // pageage.json를 기본값으로 설정해서 만들자 // 사용할 모듈 express ejs mysql2 path // express // 1. express 가져오고 // 2. 서버인스턴스 만들고 // 3. 서버 대기상태 // express 설치 // npm i express // express 모듈 가져오고 const express = require("express"); // ejs 설치 // npm i ejs // mysql2 설치 // npm i mysql2 const mysql2 = require("mysql2"); // path 가져오자 const path = require("path"); // 서버 인스턴스 만들어서 ..

backend/blockchain

블록체인

블록체인의 체인? import { Block } from "@core/block/block"; import { GENESIS } from "@core/config"; import { Failable } from "@core/interface/failable.interface"; class Chain { private chain: Block[] = [GENESIS]; private readonly INTERVAL = 10; // 현재 체인을 반환하는 함수 get() { return this.chain; } // 길이를 반환하는 함수 length() { return this.chain.length; } // 체인에 마지막 블록 변환함수 latestBlock() { return this.chain[this.l..

backend/blockchain

블록체인 블록생성, 검증,테스트 ts

블록체인 블록체인 내용 구현 다른것도 중요하지만 전체적인 흐름이 중요하다 여겨진다. 구현의 흐름이 블록체인 검증의 흐름이나 체인에 추가하는 흐름하고는 다를것이다. 우선 block이 무엇으로 구성되는지 미리 설계를 하고 들어간다. Iblock 이라는 이름으로 interface IblockHeader를 상속을 받아 구현한다. 그내용에는 버전,높이,타임스탬프,이전해시,머클루트,nonce(논스),난이도,그리고 data 로 구성된다. 이형태는 블록을 생성하는 경우 사용된다. 약간 다른언어에서 사용하는 구조체처럼 보이기도? merkleRoot 머클 루트에대한 설명이다. 이 사진을 보자마자 떠오른것이 있다면 레인보우 테이블이다. md5 암호화를 통해서 여러번 거쳐서 최종적인 암호 책을 만들어서 다시 해당 코드로 복호..

goldenbeer
'backend' 카테고리의 글 목록