본문 바로가기

전체 글

(117)
Package 'python3.10-venv' has no installation candidate 파이썬 가상환경을 생성하려고 python3 -m venv .venv 를 실행 시켰을 때 python3.10-venv 를 설치하라고 해서 설치를 하려 했지만 다음과 같은 에러가 발생했다. Package 'python3.10-venv' has no installation candidate 해결 sudo apt-get update sudo apt-get install python3-virtualenv sudo apt install python3.10-venv
Github 저장소 언어 통계에서 원하는 언어만 보이게 하기 깃허브에서 저장소에 들어가 보면 각 저장소마다 사용된 언어를 비율로 보여주고 있다. 간혹 내가 원하지 않은 언어가 비중을 많이 차지하게 되는 경우가 있는데 이런 경우. gitattributes를 이용해 설정할 수 있다. 1. 프로젝트 폴더에서 .gitattributes 파일 생성 2. *.js linguist-vendored //.py 등 원하는 확장자 입력 3. commit & push
EC2 에서 포트포워딩 하기 fastAPI를 이용해서 로컬에서만 돌리던 서버를 ec2에 올려서 사용하기 위해서 EC2에서 포트포워딩 작업을 해보았다. EC2 콘솔 인바운드 규칙에서 다음과 같이 설정이 되어 있으면 된다. 인바운드 규칙을 설정했으면 EC2에 접속해서 다음 명령어를 입력한다. sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000(사용할 서버 포트 ) 기본 http 연결 포트가 80 이므로 80으로 들어오는 모든 요청을 서버에서 사용할 8000번으로 리디렉션 시켰다. sudo iptables -t nat -L --line-numbers 위처럼 결과가 출력된다면 포트포워딩 설정은 성공적으로 된 것이다.
[terra.js] CreateTxFailed: First argument must be...에러 terra.js로 컨트랙트를 호출하려고 하는데 ExecuteMsg로 트랜잭션 생성 과정에서 다음과 같은 에러가 발생했다. 원인 package.json 에서 라이브러리는 보통 다음과 같이 표시되는데 "@terra-money/terra.js": "^3.0.4" 원인은 모르지만 특정 버전을 표시하더라도 최신 버전으로 작동하는 경우가 있다고 한다. 해결 버전 앞에 '^'를 제거해주면 된다. "@terra-money/terra.js": "3.0.4"
[에러]Error: error:0308010C:digital envelope routines::unsupported 해결 Error: error:0308010C:digital envelope routines::unsupported Code: ERR_OSSL_EVP_UNSUPPORTED nvm의 버전이 맞지 않아서 생기는 문제였다. 해결 방법 nvm install 16 nvm use 16
Re-Entrancy Attack Re-Entrancy Attack? 재진입 공격(Re-Entrancy Attack)이란 재귀적인 방법을 통해 컨트랙트에서 자금을 빼내는 방법이다. 간단하게 작성된 자금을 출금하는 함수가 있는 컨트랙트 A와 re-entrancy 공격을 실행하는 컨트랙트 B가 다음과 같이 작성되어 있다. pragma solidity ^0.8.7; contract A { mapping(address => uint256) balances; . . . function withdraw() public{ msg.sender.call{value :balances[msg.sender]}(""); balances[msg.sender] = 0; } } contract B { A a; constructor(address _a) { a = A..
[에러] linker 'cc' not found 에러 해결 terrain 설치 중 linker 'cc' not found 라는 에러 발생 해결 방법 sudo apt install build-essential
머클트리 블록체인에서 사용되는 머클트리에 대해 알아보겠습니다. 머클트리란? 머클트리는 간단히 말해서 트랜잭션을 해싱해서 이진트리의 형태로 나타낸 것입니다. 1979년 머클트리를 개발한 랄프 머클(Ralph Merkle)의 이름을 따서 머클트리라고 부르며 해시트리(Hash Tree), 혹은 이진트리(Binary Tree)라고도 합니다. 먼저 위와 같이 일련의 트랜잭션들이 존재한다고 가정하겠습니다. 일련의 트랜잭션들을 해시 함수를 이용해 암호화합니다. 해시함수로 나온 결과물들은 다시 2개씩 합쳐서 4개의 결과물을 만들어냅니다. 이 과정을 반복해서 나온 마지막 1개의 노드를 머클 루트 or 루트 해시라고 부르며 머클루트는 블록의 헤더에 저장됩니다. 위의 과정은 하나의 블록이 생성되는 과정에서 일어납니다. 이제 트랜잭션..