본문 바로가기
반응형

블록체인15

[솔리디티] 나만의 토큰 만들기 (feat. ERC20) 나만의 ERC20 토큰 생성하기. 토큰 생성 및 mint pragma solidity >=0.4.22 2022. 5. 28.
[블록체인] 블록체인에서 트랜잭션과 블록의 의미 트랜잭션 블록체인은 전세계적으로 공유되어 트랜잭션이 일어나는 데이터베이스다. 이것은 네트워크에 참여하면 누구나 데이터베이스를 살펴볼 수 있다는 것을 뜻한다. 만약 여러분이 데이터베이스의 어떤 것을 변경하려고 한다면, 소위 트랜잭션을 만들어야 하며 이는 다른 모두가 동의해야만 한다. 트랜잭션이라는 단어는 당신이 만드려는 어떤 변화(동시에 두 값을 바꾸려 할 때)가 모두 안 되었거나, 모두 되었다는 것을 뜻한다. 그리고 여러분의 트랜잭션이 데이터베이스에 적용되는 동안 어떤 트랜잭션도 그 값을 바꿀 수 없다. 예를 들어 한 계좌에서 다른 계좌로 이체하는 작업이 필요할 때, 데이터베이스의 트랜잭션은 한 계좌에서 돈이 빠져나갔으면 다른 계좌에 그 금액만큼 추가가 되있어야 한다는 걸 보장해야 한다. 어떤 이유로 금.. 2022. 5. 24.
[솔리디티] 간단한 Smart Contract (코인 발행 예제) 코인 발행은 컨트랙트를 만든 사람만이 할 수 있다. 코인을 전송할 땐 아이디와 비밀번호 등이 필요하지 않다. 오직 필요한 것은 Ethereum 키 쌍 뿐이다. Smart Contract 예제 pragma solidity ^0.5.0; contract Coin { // The keyword "public" makes those variables // easily readable from outside. address public minter;// (1) address 변수 타입 mapping (address => uint) public balances; // Events allow light clients to react to // changes efficiently. event Sent(address f.. 2022. 5. 24.
[블록체인] ERC20 ERC20 이더리움과의 호환성을 위한 기본 규칙이다. 즉, ERC20 토큰은 이더리움과 교환 가능하며 이더리움을 지갑으로 전송 가능하다. 쉽게 말해 이더리움을 사용하려면 반드시 ERC20 토큰을 사용해야 한다. 이더리움은 자신의 생태계를 활용하여 다른 탈중앙화된 애플리케이션(dApp)이 작동할수 있게 만들어진 플랫폼 네트워크 이다. 가장 큰 특징으로는 dApp들은 ERC20 토큰을 따라간다. 생태계에서 사용하는 화폐는 이더(ETH)가 사용이 되며, 다른 dApp들은 각각 자신들 만의 고유한 화폐를 가지고 있다. ERC20토큰을 사용하여 이더리움과 호환을 하지만 ERC20토큰을 사용 하였지만 자체적으로 메인넷을 발표하여 독립적인 생태계를 가지는 경우도 있다. 참고 사이트 - 스마트 컨트랙트와 ERC-20 개발 2022. 5. 21.
[Solidity]Truffle, Ganache를 이용한 Smart Contract 작성 Remix에서 스마트 컨트랙트를 작성하여 실행하는 것도 좋지만, 전체적인 흐름을 알기위해선 Local 환경 블록체인에 솔리디티를 개발하고 배포해보는 것이 좋을 것 같아서 유튜브보고 그대로 따라해보았다. Smart Contract 개발 환경 세팅하기 Dapp 개발시 준비물 지금 바로 Dapp 개발이 아니라 local 환경에 스마트 컨트랙트 개발 하는 것이지만, 최종 목표는 Dapp 개발이므로 Dapp 개발시 어떤 준비물이 필요한지 알아보았다. 보통 Dapp을 개발하기 위해선 다음의 준비물들이 필요하다. - Metamask: 개인 지갑 - Truffle: 컴파일, 배포, 디버깅을 지원하는 개발 도구 (쉽게 말해서 Spring같은 프레임워크) - Ganache: 로컬 가상 이더리움 간이 블록체인 - Truff.. 2021. 12. 10.
[Solidity] 함수 pragma solidity ^0.4.19; contract ZombieFactory { uint dnaDigits = 16; uint dnaModulus = 10 ** dnaDigits; struct Zombie { string name; uint dna; } Zombie[] public zombies; // 여기서 시작 function createZombie(string _name, uint _dna) { } } 함수 인자값은 보통 '_' 언어스코어를 변수앞에 붙여서, 전역 변수와 구별하는 것이 관례라고 한다. Public / Private 함수 // public 함수 function createZombie(string _name, uint _dna) { zombies.push(Zombie(_name.. 2021. 12. 4.