본문 바로가기

개발 학습74

로컬환경에서 CA 인증과 HTTPS 서버열기 https에는 인증서라는 것이 있다. 브라우저는 접속시 서버로 부터 응답을 받게 되는데 이 응답에는 인증서가 있고 인증서는 발급한 CA정보가 있으며 인증된 CA가 아닌 곳에서 발급한 인증서라면 크롬에서 자주보이는 아래와 같은 화면을 볼 수 있다. 이렇게 브라우저는 인증서의 도메인과 데이터를 제공한 도메인을 비교해 중간자 공격을 감지하게 된다. 여기서 CA란 공인인증기관을 말한다. 우리는 서버를 만들어볼 것이고 서버는 CA가 될 조건을 갖춰서 정식 CA가 될 순없으므로 임시로 CA가 되도록 하고 인증서를 발급해 클라이언트가 접속하면 인증서를 보내보자. mkcert라는 프로그램을 이용하여 로컬환경 즉 내가 만드는 서버에서도 신뢰하는 인증서를 만들 수 있다. 우분투 경우 아래 명령어로 설치를 시작해보자 $ s.. 2022. 6. 28.
mysql-sequelize error : ER_ACCESS_DENIED_ERROR (using password: NO) mysql을 설치후 nodejs 환경에서 시퀄라이즈로 마이그레이션하려고 명령어를 입력했다. > npx sezuelize-cli db:migrate config 파일안에 mysql 비밀번호도 정확히 입력했고 DB 이름부터 설정을 정확하게 하였지만 아래와 같은 오류가 계속 나타났다. const dotenv = require('dotenv'); dotenv.config(); module.exports = { development: { username: 'root', password: process.env.DATABASE_PASSWORD, database: 'authentication', host: '127.0.0.1', dialect: 'mysql', logging: false }, test: { userna.. 2022. 6. 27.
React 상태관리 제대로 해보기 (useState ↔ Redux) Hook - useState 우선 useState로 최상위 컴포넌트에서 장바구니에 담은 아이템들을 관리하고 있으며 장바구니에서 담긴 아이템은 삭제하거나 수량을 변경하면 최상위 컴포넌트에 있는 장바구니 상태인 cartItems가 변경되며 상품리스트에 있는 새 아이템들을 장바구니에 담으면 기존 장바구니에 있는 itemId가 존재하는, 담겨있던 상품이라면 갯수만 추가해주고 담겨 있지 않던 상품이라면 아이템을 새롭게 추가하게 된다. 최상위 컴포넌트 App function App() { const [items, setItems] = useState(initialState.items); //판매중인 itemList const [cartItems, setCartItems] = useState(initialState... 2022. 4. 19.
클레이튼 트랜잭션 처리시 "invalid unit price" 프로젝트3에서 만든 staking에 추가적인 기능을 구현해보려고 하는도중에 잘 예치해둔 10개의 KFT토큰을 출금하거나 현재 발생된 예치이자를 출금하려고하니.. 다음과 같은 오류가 발생했다. 처음에는 출금 메소드안에 들어 갈 숫자가 toWei나 toFrom으로 쓰지말고 caver에서 제공하는 convertToPeb의 convert를 사용하지 않아서 그런가?.. 하며 생각해보았지만 이전에는 잘 작동 됐는데 갑자기 안된다는 것에서 새로운 업데이트가 있었는지 확인해보았다. 클레이튼 공지사항을 보니 3월3일자로 GAS비가 변경이 돼었다. https://medium.com/klaytn-kr/notice-gas-price-adjustment-announcement-kr-6e45db8056c0 그래서 기존에 send.. 2022. 4. 2.
지속 연결 네트워크를 위한 static.nodes.json bootnode를 만들어 연결하면 연결중일때는 피어가 네트워크에 연결이 잘 되지만 geth를 종료하고 다시 bootnode에 연결하려고하면 되지 않는 문제가 발생한다. 이유는 기존노드를 실행한 후 admin.addPeer()를 사용해 테스트네트워크를 만들고 피어를 연결했으나, geth 종료후 지정된 노드에 다시 연결 되지 않는다. 그래서 geth가 실행 될 때마다 지정된 노드로 연결 해주는 json을 작성해보자. static.nodes.json을 만들것이며 노드1폴더 즉, /root/go-ethereum/test_node1에 만들자. vim static-nodes.json [ "enode://12asidmascasleamncmacm77fca13afd2e46c04a1c1a83aa92fbc30f07a7495.. 2022. 2. 21.
Docker로 노드 운영 (5) : 부트노드 운용 부트노트란 지난번처럼 docker로 노드1과 노드2를 운용할때 노드2에 노드1의 enode를 직접 admin.addPair로 추가해줘야했다. 만약 노드수가 많아진다면 일일이 이렇게 추가해주는것이 힘들고 그런 경우를 위해 부트노드를 운영하여 부트노드에 모든 기존노드와 새노드를 연결하면 부트노드가 중개자 역할을 하여 기존의 노드가 가진 데이터를 부트노드에 연결한 새 노드들에게 전달하고 동기화 할 수 있게 해준다.  2. 부트노드 구성 하기apt-get install bootnode부트노드 패키지를 설치한다. 노드 1과 노드2를 각각 연결하기 위해 지난번 노드1,2 연결하기 처럼 docker의 exec를 이용해 우선 노드1부터 docker로 접근한다. # 실행중인 container list 확인docker p.. 2022. 2. 21.