본문 바로가기

728x90

study

(53)
함수 타입 제어자 view 1. 데이터 read-only 2. 가스 비용 없음 uint numOfStudents; function getNumOfStudents() public view returns (uint) { return numOfStudents; } pure 1. 데이터 읽지 않음 2. 인자 값만 활용해서 반환 값 정함 3. 가스비용 없음 function multiply(uint x, uint y) public pure returns (uint) { return x*y; } constant 1. 0.4.17버전 이전에는 view/pure 대신 쓰임 function getNumOfStudents() public constant returns (uint) { return numOfStudents; } payable ..
접근 제어자 external 1. 외부 컨트랙만 호출 가능. 2. 상태 변수는 external 사용불가. pragma solidity ^0.4.23; contract Mycontract{ uint external count; //상태변수. 이것도 에러남. constructor() public { //... } function numOfStudent(address_teacher) public view return(uint) { test(); //에러남. 밑의 external붙은 함수를 같은 컨트랙내부에 있는 함수에서 호출했기 때문. } function test() external { //... } } contract YourContract { MyContract myContract; function callTest()..
컨트랙의 구조 솔리디티의 컨트랙은 객체지향 언어들의 클래스와 비슷한 개념이다. 문법은 자바스크립트와 비슷하지만 솔리디티에는 타입을 구분할 수 있고, 상속같은 객체지향의 개념도 존재한다. pragma solidity ^0.4.23; //solidity버전 contract Mycontract{ uint count; //상태변수 , 클래스의 멤버변수라고 생각하면 된다. constructor() public { // 생성자 //... } // 함수 이름 매개변수함수타입리턴타입 function numOfStudents(address_teacher) public view returns(uint) { // ... } }
nodestart.cmd /DAG파일 생성 geth //geth실행시킨다~ --networkid 4386 //네트워크식별자 명시하는 파라미터 --mine // 이 노드에서 채굴을 시작하게 하는 파라미터 --minerthreads 2 // 몇개의 스레드에서 채굴을 할 것인지, 너무 높게 설정하면 과부하걸린다. --datadir "./" // 우리 체인파일을 어디에 저장할것인지 --nodiscover // 탐색 프로토콜을 해지하는 것, 다른 노드가 우리 체인에 연결하는 것을 못하게. 테스팅목적이라 붙임 --rpc // 나중에 메타마스크에서 geth로 실행된 노드에 연결 가능. --rpcport "8545" // 어떤 포트에 접속해야하는지 명시하는 파라미터 --rpccorsdomain "*" //아무 도메인에서나 우리 rpc엔드포인트에 접속할 수 있도..
genesis block { "config": { //체인의 파라미터들을 정의하는 데에 쓰임. "chainId": 4386, "homesteadBlock": 0, "eip150Block": 0, "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "ethash": {} // 체인의 합의알고리즘이 작업증명임을 말한다. }, "nonce": "0x0", "timestamp": "0x5d976229", // 이더리움 가상머신에서 블록 생성의 난이도를 조..

728x90
반응형