[자료구조] 우선순위큐
·
개발/자료구조
[자료구조] 이진힙 - BinaryHeap 1. 이진힙이란? 힙이란 모양은 트리와 같다. 트리와는 다르게 힙은 부모와 자식간의 규칙이 있다는 것이다. 최대 이진힙에서는 부모노드가 항상 자식노드보다 큰 값을 가진다. 왼쪽이나 오른쪽 diary-blockchain.tistory.com 1. 우선순위큐 리스트 또는 구조 즉 우리가 데이터를 저장한곳에서 한번에 하나씩 요소를 가지고 온다. 한번에 하나씩 처리를 한 다음에 그 다음것을 처리하게 되는데 병원에 있는 응급실과 비슷하다. 많은 사람들이 대기하고 있고 모두에게는 어느정도의 우선순위가 부여된다. 그러면 간호사나 의사가 와서 한번에 한사람을 그 우선순위에 따라 데려가는것이다. 서로 다른 우선순위를 가지는 데이터나 정보를 관리할 필요가 있거나 무언가를 입력하는..
[BlockChain] NFT 만들기 (goerliETH)
·
개발/BlockChain
1. 초기설정 코드는 Remix툴을 이용하여 작성한다. NFT는 ERC721토큰으로 ERC20과 마찬가지로 표준 규격이 정해져 있다. 오픈제플린 설치 후 표준 규격을 가져다 쓸것이다. ERC721 구조 {"토큰아이디" : "주소"} 토큰에 고유값이 있고 그 토큰의 주인이 누구인지 나타내는 객체형식이다. 이 토큰은 대체불가토큰으로 NFT이다. 오픈제플린 설치 npm install openzeppelin-solidity 2. goerli 테스트넷 이더 받기 https://goerlifaucet.com 홈페이지에서 로그인후 메타마스크 주소를 입력하면 테스트이더를 받을수 있다. 3. Pinata Pinata Effortless IPFS File Management app.pinata.cloud Pinata 홈페..
[BlockChain] localhost에서 remix 연동
·
개발/BlockChain
1. Remix remix는 스마트컨트랙트 작성, 배포, 테스트 등을 편하게 할수 있게끔 만들어 놓은 툴이다. Remix - Ethereum IDE remix.ethereum.org 컨트랙트의 함수, 상태변수등을 별다른 코드 없이 바로 테스트 할수 있다는 장점이 있다. 2. vscode와 remix 연동 remix라이브러리 설치 npm install -g @remix-project/remixd contracts 폴더 이동해서 remixd -s . --remix-ide https://remix.ethereum.org 실행 시킨 후 remix홈페이지에 들어가서 localhost와 연결을 시키면 연동할수 있다.
[BlockChain] ERC20 Token - openzeppelin 사용
·
개발/BlockChain
1. openzeppelin 오픈제플린은 토큰의 표준 인터페이스를 모아놓은 라이브러리다. 이 라이브러리를 통해 토큰을 편하게 만들수 있다. npm install openzeppelin-solidity 오픈제플린을 설치하면 node_modules/openzeppelin-solidity/contracts/token 폴더 안에 표준 컨트랙트들이 있다. 2. 초기 설정 트러플 초기설정 npx truffle init truffle-config.js module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: 7722, }, }, compilers: { solc: { version: "0.8.17", }, }, }; ..
[BlockChain] ERC20 Token 만들기
·
개발/BlockChain
1. 초기 설정 트러플 초기 설정 npx truffle init truffle-config.js module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "7722", }, }, compilers: { solc: { version: "0.8.17", }, }, }; 가나쉬 실행 npx ganache-cli --chainId 7722 --networkId 7722 2. 스마트 컨트랙트 (1) contracts/ERC20.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; contract ERC20{ // 표준토큰 규격 string public nam..