일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 블록체인
- blockchain
- 네트워크
- web3
- NFT
- truffle
- erc
- MySQL
- web3.js
- server
- tcp
- Programming
- 트랜잭션
- Python
- solidity
- 제어의역전
- Docker
- ethers
- 스마트 컨트랙트
- 솔리디티
- JavaScript
- 이더리움
- web
- Ethereum
- geth
- git
- ERC165
- github
- erc721
- ERC20
- Today
- Total
목록블록체인 (50)
멍개의 연구소
smart contract에 대해서 알아보도록 하겠습니다. 간단하게 smart contract의 생성원리를 알아보겠습니다. · 컨트랙트 배포 후 확인 transaction 정보를 보면 contract create라고 표시됩니다. 이더리움은 어떻게 contract 생성을 알고 contract create라고 표시하는지 알아보겠습니다. · contract 배포직후 transaction 확인 이더리움에서 컨트랙트가 배포할 때 일반적인 transaction과 다르게 to를 비워서 보냅니다. 또한, Input Data를 컨트랙트를 작성한 코드를 컴파일한 결과를 포함하여 보냅니다. 해당 트랜잭션을 처리하는 노드는 to가 비어있고 Input Data가 있으면, contract 생성을 하게됩니다. 이때 Contract..
이더리움에서 스마트 컨트랙트를 개발하다보면 상당히 다양한 에러를 접할 수 있습니다. 그중에 하나가 gas와 관련된 에러입니다. ● 정상 Transaction VS 비정상 Transaction 우선 정상적인 transaction과 비정상적으로 처리된 transaction을 비교해보겠습니다. · 정상 Transaction 정상적인 transaction은 Success 상태가 됩니다. · 비정상 Transaction gas 문제로 발생된 트랜잭션 실패는 Out of gas라고 표기됩니다. 과연 이 문제가 왜 발생할까요?? 적색으로 박스친 부분을 명심해야 합니다. Gas Used By Transaction(해당 트랜잭션을 실행하면서 소모한 가스)가 Gas Limit을 넘치면 앞의 에러처럼 발생합니다. 이때는 해..
이번글에서는 solidity로 개발한 스마트 컨트랙트에서 다른 계정으로 이더를 전송하는 방법에 대해서 알아보겠습니다. 이번글도 0.5 버전을 기준으로 작성됩니다. 물론 이전 버전과 어떤 차이가 있는지도 함께 알아보겠습니다. 먼저, 컨트랙트에서 다른 계정으로 이더를 전송하기 위해서는 컨트랙트에서 이더를 보유하고 있어야 합니다. 즉, 다른 계정으로부터 이더를 전송받아야 하는데 전송 받는방법 부터 알아보겠습니다. · 이더 전송받는 방법 pragma solidity ^0.5; contract address05 { function () external payable{ } } solidity에서는 이름이 없는 함수를 fallback 함수라고 하는데 fallback 함수에 external과 payable 옵션을 붙여..
solidity에서 call과 delegatecall에 대해서 다뤄보겠습니다. 우선 이번글은 solidity 0.5 버전 기준으로 합니다. call과 delegatecall은 0.5 버전 전, 후로 사용법이 바뀌었습니다. ● 샘플코드 먼저, call과 delegatecall을 사용한 sample 코드부터 확인하겠습니다. pragma solidity ^0.5; contract Sample1 { uint public t ; constructor() public { } event L(uint a, uint b, address c); function test(uint a, uint b) public returns(uint){ t = a + b; emit L(a, b, msg.sender); return a ..