본문 바로가기
HTTP 메서드 측면에서의 API 작업 정의 HTTP 메서드 측면에서의 API 작업 정의 HTTP 프로토콜은 요청에 체계의미를 할당하는 다양한 메서드를 정의하고 있음 일반적인 HTTP 메서드 메서드 내용 응답 메세지의 본문 GET 지정된 URI에서 Resource의 Representation을 검색 요청된 Resource의 세부 정보 POST 지정된 URI에 새로운 Resouce를 생성 Resource를 생성하지 않는 작업을 수행할 수도 있음 새 Resource의 새부 정보를 제공 PUT 지정된 URI에 Resource를 생성하거나 대체 만들 또는 업데이트할 Resource를 지정 PATCH 지정된 URI에서 Resource의 부분 업데이트 수행 Resource에 적용할 변경 내용을 지정 DELETE 지정된 URI의 Resource를 제거 특정 요.. 2023. 3. 13.
RESTful Web 디자인 well-formed 웹 디자인이 지원하는 특성 플랫폼 독립성 모든 클라이언트는 내부에서 API가 구현되는 방법에 관계없이 API를 호출할 수 있어야 함 그러려면 프로토콜을 사용해야 하며, 클라이언트 및 웹 서비스가 교환할 데이터 형식에 동의할 수 있는 메커니즘이 있어야 함 서비스진화 Web API는 클라이언트 앱과 독립적으로 기능을 진화시키고 추가할 수 있어야 함 API가 진화해도 기존 클라이언트 앱은 수정없이 계속 작동할 수 있어야 함 모든 기능은 클라이언트 앱이 해당 기능을 완전히 이용할 수 있도록 검색 가능해야 함 REST란? 2000년 Roy Fielding이 제안한 서비스를 디자인하는 아키텍처 접근방식 하이퍼미디어 기반 분산 시스템을 구축하기 위한 아키텍처 스타일 REST는 어떤 기본 프로토콜.. 2023. 3. 12.
ERC20토큰 목차 인터페이스 개념 IERC20.sol ERC20.sol IvyToken.sol 1. 인터페이스 개념 인터페이스는 추상 contract와 비슷하지만, 절대로 body 부분, 즉 {} 을 가진 함수를 포함할 수 없다. 다음은 인터페이스가 가지고 있는 추가적인 제한의 내용이다. 다른 contract로부터 상속받을 수 없지만, 다른 interface로부터 상속받을 수 있다. 모든 선언된 함수는 contract 안에서 public일지라도, interface에서는 external 선언이 되어야만 한다. constructor 선언 불가 상태 변수 선언불가 modifier 선언 불가. 위의 제한은 미래에 변경될 수도 있는 부분임을 참고 바란다. 인터페이스는 기본적으로 Contract ABI가 나타낼 수 있는 것들로.. 2022. 7. 21.
스마트컨트랙트에 결제 기능 넣기 사과가게 만들기 함수의 payable 개념 payable 키워드가 있어야만 tx 객체의 to 속성값인 CA 계정으로, value 속성값인 ETH를 줄 수 있다. 즉, tx 객체를 보낼 때, value 속성에 이더를 넣기 위해서 payable를 작성해주어야 한다, // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; contract AppleShop{ mapping(address => uint) myApple; //구매: myApple 변수의 address에 사과 갯수++, //tx 객체 보낼 때 단위당 사과 갯수 만큼 value값을 주기 위해 payable 작성 function buyApple() public payable { myApple[msg.send.. 2022. 7. 20.
address 타입의 분류: address / address payable 목차 address 타입의 분류 타입 전환 address payable의 추가 구성 address type 1. address type 의 두 가지 분류 address 타입은 크게 두 가지로 나눌 수 있다. address: 20 byte 값 (이더리움 address의 크기) address payable: address와 같지만, transfer와 send라는 추가 구성을 가짐 이러한 타입 구분의 포인트는 address payable이 함수 호출자로 하여금 ether를 보낼 수 있게 하는 address인 반면 일반적인 address에서는 이더를 보낼 수 없다 는 사실이다. (일반적으로 스마트 컨트랙트는 이더를 보내기 위한 목적으로 빌드되지 않았다....) 2. 타입 전환 address payable에서 a.. 2022. 7. 20.
솔리디티 문법 실행 목차 셋팅 솔리디티 코드 작성 컴파일 abi 변수 및 bytecode 변수 선언 Tx 객체 생성 및 네트워크로 보내기 contract 변수 선언 instance 변수 선언 솔리디티 코드 배포 확인 오늘은 솔리디티 문법의 실행을 해보자. 사실 문법을 먼저 숙지하고 나중에 실행을 하는 것이 좋은 방법이긴 하지만, 문법의 숙지가 생각보다 쉽지 않기 때문에 오류가 난 지도 모르고 배울 수 있다. 솔리디티 언어 실행이 타 언어에 비해서 쉽지 않음 수업이 끝났을 때 다음과 같은 것들을 할 수 있어야 함 코드 작성 후 컴파일러를 통해 바이트 코드로 변경 이더리움 네트워크 안에 바이트 코드를 넣어서 tx 발생시키기 마이닝이 됬을 때 작성한 코드가 실행시키기 만약 tx가 실행되지 않으면 마이닝이 됬는 지 아닌 지 확인할.. 2022. 7. 11.
geth 통해서 tx보내기 및 balance에 반영시키기 목차 geth 환경 셋팅 test 환경 셋팅 수신 계정 생성 및 tx 보내기 이번 게시글에서는 txpool에 내 tx 내용이 있는 지 확인 후 채굴을 해서 블럭이 생성되면 잔액에 반영되는 지 확인해보자! 1. geth 환경 셋팅 1-1. geth 실행 geth --datadir node --http --http.addr "0.0.0.0" --http.port 9000 -http.corsdomain "\*" --http.api "admin, miner, txpool, web3, personal, eth, debug, net" --syncmode full --networkid 7722 —port 30300 --allow-insecure-unlock 1-2. 새로운 터미널 실행해서 geth 노드에 대한 쌍방향.. 2022. 7. 1.
geth command line option 자주쓰이는 geth 커맨드 라인 옵션 USAGE: geth [options] [command] [command options] [arguments...] VERSION: 1.10.19-stable-23bee162 COMMANDS: attach 특정 노드에 대한 쌍방향 자바스크립트 환경 시작 console 쌍방향 자바스크립트 환경 시작 dumpconfig 설정값 확인 export 블록체인 파일로 내보내기 import 블록체인 파일 가져오기 init 부트스트랩, 새로운 제네시스 블럭 초기화 js 지정한 js파일 실행하기 removedb 블록체인과 상태 db 제거하기 snapshot 스냅샵 커맨드 version 버전 정보 확인 help, h Shows a list of commands or help for o.. 2022. 7. 1.
web3로 블럭, tx, txReceipt 가져오기 목차 블럭 가져오기 transaction 가져오기 transaction receipt 가져오기 1. 블럭 가져오기 1-1. 문법(syntax) web3.eth.getBlock(1,2,3) 1-2. 매개변수(parameters) String|Number|BN|BigNumber - 블록 번호 또는 블록 해시. 또는 "earliest", "latest" or "pending 불리언(선택, 디폴트는 false) - 만약 true라면, 반환된 블록의 transactions의 배열은 {}, false라면 tx 해시로 반환됨 함수(선택) - 첫번째 매개변수로 error 객체, 두번째 매개변수로 result를 반환하는 콜백함수 3. 반환(return): block 객체 { difficulty: '558380',//블록.. 2022. 7. 1.