일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 솔리디티
- nodejs
- Geth
- Web
- 블록체인
- vue.js
- 클레이튼
- vue
- 제어자
- geth구현
- web3
- kas
- Solidity
- 서비스체인
- Klaytn API Service
- web3.js
- API
- Klaytn
- ethereum
- 이더리움
- blockchain
- 프론트엔드
- 블록체인 구조와 이론
- 프레임워크
- 앵커링
- 접근제어자
- javascript
- 웹
- frontend
- SCN
- Today
- Total
목록블록체인 (26)
BloCCat
함수 제어자는 인수 또한 받을 수 있다. // 사용자의 나이를 저장하기 위한 매핑 mapping (uint => uint) public age; // 사용자가 특정 나이 이상인지 확인하는 제어자 modifier olderThan(uint _age, uint _userId) { require (age[_userId] >= _age); _; } function driveCar(uint _userId) public olderThan(16, _userId) { // 필요한 함수 내용들 }
Gas : Dapp이 사용하는 연료 Dapp 함수를 호출할 때마다 (=트랜잭션이 발생할 때마다) 사용자가 내야하는 실제 돈(이더) 가스를 아끼기 위한 코딩법 1. 구조체 압축 struct 안에 여러개의 uint 타입의 데이터가 있다면 더 작은 크기의 uint를 쓰자. 그 변수들은 더 적은 공간을 차지하기 위해 스스로 메모리를 압축하여 사용한다. struct NormalStruct { uint a; uint b; uint c; } struct MiniMe { uint32 a; uint32 b; uint c; } // `mini`는 구조체 압축을 했기 때문에 `normal`보다 가스를 조금 사용한다 NormalStruct normal = NormalStruct(10, 20, 30); MiniMe mini =..
* 꼭 알고 넘어가야 할 것 1.컨트랙트 불변성 컨트랙트는 변하지 않는다. 즉 한번 블록체인에 배포된 컨트랙트는 수정/업데이트를 할 수 없다. 반대로 이런 특성때문에 함수 호출에 대한 의심또한 할 수 없다. 2. 외부 의존성 내 컨트랙트에 외부 컨트랙트 주소(CA)값을 인터페이스 개체에 직접 넣어 사용하게 되면 외부 컨트랙트가 문제가 생길시 내 컨트랙트(함수)에도 영향을 끼치게 된다. 따라서 이런 부분을 방지하기 위해 문제가 생기면 문제가 생긴부분만 바꿔주는 함수를 만들어 값을 저장한다. (SET METHOD) 변경 전 address ckAddress = 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d; KittyInterface kittyContract = KittyInte..
생성자 : 컨트랙트랑 같은 이름으로 정의하거나 constructor() 로 정의 modifier : 함수 제어자, 다른 함수들에 대한 접근을 제어하기 위해 사용되는 일종의 유사 함수. /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address in..
1. 매핑 기본적으로 키-값(key-value) 저장소로 데이터를 저장하고 검색하는 데 이용 // 금융 앱용으로, 유저의 계좌 잔액을 보유하는 uint를 저장한다: mapping (address => uint) public accountBalance; // 혹은 userID로 유저 이름을 저장/검색하는 데 매핑을 쓸 수도 있다 mapping (uint => string) userIdToName; 2. msg.sender : 함수를 호출한 eoa(계정주소) 혹은 ca(컨트랙트 주소) mapping (address => uint) favoriteNumber; function setMyNumber(uint _myNumber) public { // `msg.sender`에 대해 `_myNumber`가 저장되도록..
1. 함수 선언 function eatHamburgers(string _name, uint _amount) { } parameter명은 _를 붙이는 것이 관습 2. public / private solidity에서 함수는 기본적으로 public으로 선언됨. 다만 함수는 기본적으로 private로 선언하고 공개할 수 있는 함수만 public으로 선언할 것. uint[] numbers; function _addToArray(uint _number) private { numbers.push(_number); } 3. 함수의 반환값 타입 지정 string greeting = "What's up dog"; function sayHello() public returns (string) { return greetin..
1. license & version 설정 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 uint8, uint16,uint32 과 같이 비트제한 가능, 제한 없으면 256비트 int : 정수형 -> int와 마찬가지로 비트제한이 가능하며 없으면 256비트 bool : 논리 자료형 string : UTF-8 인코딩 문자열 bytes : 바이트 address : 이더리움 주소 값 (0xaDc7192A0…) 4.수학 연산 다른 언어와 마찬가지로 기본 연산에 지수 연산까지 지원 uint x = 5 ** 2; // = 5^2 = 25 5.구조체와 배열 struct Person { uint age; string name; } // 2개의 원소를 담을 수 ..

solidity = contract 기반 language 여기서 말하는 contract란 블록체인 네트워크에서 쓰이는 smart contract를 말하는 것. *Smart Contract : 계약의 이행을 자동으로 해주는 코드 ex) 어떤 물건을 코인을 받고 보내주기로 했을 때 물건을 받고 물건 받은 사람이 '받았음' 버튼을 누르면 물건을 판 사람한테 코인이 가게끔 하는 방식. 솔리디티는 쉽게 말하면 '스마트 컨트랙트'라는 계약서를 만드는 랭기지라고 할 수 있다. 이더리움 버추얼 머신(Ethereum Virtual Machine)에서 작동하게끔 디자인된 언어라고 한다.

정의 web3란 Decentralized Web, 분산 웹으로 모든 자료와 정보가 분산화, 분건화된 차세대 네트워크 구조를 의미한다. Web3.js Ethereum 네트워크는 여러 사용자(EOA)들이 연결되어있다. 또한 특정 역할을 수행하는 smart contract들로 구성되어 있다. DApp을 만들기 위해서는 해당 서비스를 이용하는 사람들간의 smart contract를 통해 거래, 혹은 ether 획득 등을 handing해야 하는데 이때 web3.js 를 이용하여 web3 api를 사용하여 보다 편리하게 웹과 모바일 어플을 개발할 수 있다. Web3.js 연동 1. 작업 디렉터리 생성 (C:\testnet\wallet) 2. npm 초기화 C:\testnet\wallet> npm init 3. 프로..