시가총액: $2.1505T 1.29%
거래량(24시간): $77.6399B -6.52%
공포와 탐욕 지수:

14 - 극도의 공포

  • 시가총액: $2.1505T 1.29%
  • 거래량(24시간): $77.6399B -6.52%
  • 공포와 탐욕 지수:
  • 시가총액: $2.1505T 1.29%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

스마트 계약을 어떻게 개발합니까?

A smart contract is a self-executing program on a blockchain that enforces agreement terms when conditions are met, ensuring trust and transparency.

2025/08/11 10:50

스마트 계약의 기본 사항 이해

스마트 계약은 사전 정의 된 조건이 충족 될 때 계약 조건을 자동으로 시행하는 블록 체인에 배치 된 자체 실행 프로그램입니다. 이 계약은 일단 배치 한 후에 불변 할 수 없으므로 변경 될 수 없어 신뢰와 투명성을 보장합니다. 스마트 계약을 개발하는 데 가장 널리 사용되는 플랫폼은 Solidity 프로그래밍 언어를 지원하는 Ethereum 입니다. 코드를 작성하기 전에 분산 , 가스 수수료거래 최종성과 같은 핵심 블록 체인 개념을 이해하는 것이 필수적입니다. 스마트 계약과의 각 상호 작용은 가스를 소비하며, 이는 블록 체인의 기본 토큰 (예 : Ethere on Ethereum)에서 지불됩니다. 개발자는 사용자의 비용을 최소화하기 위해 효율적으로 계약을 설계해야합니다.

개발 환경 설정

스마트 계약 개발을 시작하려면 적절한 개발 환경을 구성해야합니다. 대부분의 블록 체인 개발 도구의 전제 조건 인 Node.jsNPM을 설치하여 시작하십시오. 다음으로 두 개의 인기있는 이더 리움 개발 프레임 워크 인 Hardhat 또는 Truffle을 설치하십시오. 이 안내서는 하드 하트를 사용할 것입니다.

  • npm install --hardhat 사용하여 HardHat을 설치하십시오
  • 새 프로젝트 초기화 : npx hardhat
  • 프롬프트되면 'JavaScript 프로젝트 만들기'를 선택하십시오
  • 필수 플러그인을 설치하십시오 : npm install --save-dev @nomicfoundation/hardhat-toolbox

또한 구문 하이라이트 및 오류 감지 용 Solidity Extension이 있는 Visual Studio Code 와 같은 코드 편집기가 필요합니다. 또한 브라우저 지갑 인 메타 마스크를 설치하여 테스트 네트워크와 상호 작용하십시오. 연금술 또는 Infura 와 같은 서비스의 엔드 포인트를 사용하여 사용자 정의 RPC 네트워크를 추가하여 Goerli 또는 Sepolia 와 같은 테스트 네트워크에 연결하도록 메타 마스크를 구성하십시오.

첫 번째 스마트 계약서를 견고하게 작성합니다

contracts 디렉토리 내부에서 SimpleStorage.sol 이라는 새 파일을 만듭니다. Solidity 버전을 선언하여 시작하십시오.

 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;

contract 키워드를 사용하여 계약을 정의하십시오.

 contract SimpleStorage { uint256 private data; function setData(uint256 _data) public { data = _data; } function getData() public view returns (uint256) { return data; }

}

이 계약에는 유형 uint256 의 상태 변수 data , 그 값을 설정하는 함수, 다른 사람은이를 검색합니다. private 키워드는 계약 외부에서 data 에 직접 액세스 할 수 없도록합니다. public 기능을 외부에서 호출 할 수 있습니다. getDataview Modifier는 블록 체인 상태를 수정하지 않으므로 외부로 호출 할 때 읽기 전용 및 가스가 없습니다.

스마트 계약을 컴파일하고 테스트합니다

배포 전에 Hardhat을 사용하여 계약을 수집합니다.

  • 터미널에서 npx hardhat compile 실행하십시오
  • 성공하면 아티팩트가 artifacts 폴더에 나타납니다

다음으로 test 디렉토리에 테스트 스크립트 (예 : SimpleStorage.test.js :

 const { expect } = require('chai'); const { ethers } = require('hardhat'); 설명 ( 'simplestorage', function () { IT ( '올바른 초기 값을 반환해야한다', Async function () {

const SimpleStorage = await ethers.getContractFactory('SimpleStorage'); const simpleStorage = await SimpleStorage.deploy(); await simpleStorage.deployed(); expect(await simpleStorage.getData()).to.equal(0);

});

( '저장된 값을 업데이트해야한다', Async function () {

const simpleStorage = await ethers.getContractAt('SimpleStorage', /* deployed address */); await simpleStorage.setData(42); expect(await simpleStorage.getData()).to.equal(42);

}); });

테스트 실행 : npx hardhat test . 성공적인 테스트 출력은 계약 로직이 사운드인지 확인합니다. 배포 전에 버그를 잡는 데 테스트가 중요합니다.

계약을 테스트 네트워크에 배포합니다

deploy.js 라는 scripts 폴더에서 배포 스크립트를 만듭니다.

 const { ethers } = require('hardhat'); 비동기 기능 main () { const simplestorage = await ethers.getContractFactory ( 'simplestorage'); const simplestorage = simplestorage.deploy (); simplestorage.deployed ()를 기다립니다.

console.log ( '계약 배포 :', simplestorage.address); }

main (). catch ((오류) => { Console.error (오류); process.exitcode = 1; });

테스트 네트워크 및 지갑 자격 증명을 포함하도록 hardhat.config.js 구성하십시오.

 require('@nomicfoundation/hardhat-toolbox'); const INFURA_API_KEY = 'your-infura-key'; const PRIVATE_KEY = 'your-wallet-private-key'; module.exports = { 견고성 : '0.8.0', 네트워크 : {

goerli: { url: `https://goerli.infura.io/v3/${INFURA_API_KEY}`, accounts: [PRIVATE_KEY] }

} };

자리 표시자를 실제 값으로 교체하십시오. 그런 다음 배포 : npx hardhat run scripts/deploy.js --network goerli . 성공하면 계약 주소가 표시됩니다. Etherscan 과 같은 블록 체인 탐색기의 주소를 확인하여 배포를 확인하십시오.

배포 된 계약과 상호 작용합니다

배포 후 Ethers.js를 사용하여 또는 Metamask를 통해 직접 계약과 상호 작용하십시오. node.js 스크립트에서 :

 const { ethers } = require('hardhat'); const contractAddress = '0x...'; const contractABI = [ / ABI from artifacts / ]; Async 함수 interact () { Const Provider = New Ethers.providers.web3provider (Window.Ethereum); AWAIT PROVIDER.SEND ( 'eth_RequestAccounts', []); const signer = provider.getSigner (); const contract = new ethers.contract (ContractAddress, Contractabi, 서명자);

계약을 기다립니다. 세트 데이터 (100); const value = await contract.getData (); console.log ( '현재 값 :', value.toString ()); }

또는 지갑을 연결하고 '쓰기 계약'탭을 사용하여 Etherscan을 사용하여 계약서에 쓰십시오. ABI가 Etherscan에서 검증되어 작동하도록 확인하십시오.

자주 묻는 질문

SPDX 라이센스 식별자의 목적은 무엇입니까? SPDX-License-Identifier는 스마트 계약이 공개되는 오픈 소스 라이센스를 지정합니다. 법적 명확성과 투명성을 위해 그것을 포함시키는 것이 가장 좋은 관행입니다. 공통 라이센스에는 MIT, GPL 및 Apache-2.0이 포함됩니다.

견고성의 오류를 어떻게 처리합니까? 요구 , 반복주장 진술을 사용하십시오. require(condition, 'Error message') 사용자 입력을 확인하고 false 인 경우 메시지로 되돌아갑니다. revert() 수동으로 실행을 중단하기 위해 사용될 수 있습니다. assert 는 내부 오류를위한 것이며 남은 모든 가스를 소비합니다.

배포 후 스마트 계약을 업그레이드 할 수 있습니까? 불변성으로 인해 직접 수정이 불가능합니다. 그러나 UUPS 또는 Transparent Proxy 와 같은 프록시 패턴은 실행 가능한 논리에서 데이터 저장을 분리하여 로직 업그레이드를 허용합니다. 이를 위해서는 개발 중에 신중한 건축 계획이 필요합니다.

가스 추정이란 무엇이며 왜 중요한가요? 가스 추정은 거래가 소비 할 가스의 양을 예측합니다. 가스 외 오류를 방지하고 사용자가 거래 비용을 이해하도록 도와줍니다. Hardhat과 같은 도구는 가스를 자동으로 추정하지만 복잡한 기능에는 estimateGas() 사용하여 수동 검사가 필요할 수 있습니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?

Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?

2026-06-06 02:54:55

계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...

헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?

헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?

2026-06-07 14:20:10

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?

일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?

2026-06-04 16:40:15

계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...

마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?

마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?

2026-06-05 04:59:43

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?

열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?

2026-06-04 03:59:47

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?

미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?

2026-05-29 18:19:59

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....

Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?

Bybit에서 BTC 거래를 위해 선형 및 역 무기한 계약 중에서 선택하는 방법은 무엇입니까?

2026-06-06 02:54:55

계약 정산 메커니즘 1. Bybit의 선형 무기한 계약은 USDT로 정산됩니다. 즉, 모든 손익 계산, 마진 요구 사항 및 청산 기준액이 스테이블코인 단위로 표시됩니다. 2. 역영구 계약은 BTC 자체에 정산되므로 모든 거래는 거래자의 BTC 잔액에 직접적으로 영향을 ...

헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?

헌팅 중지 및 스푸핑과 같은 선물 시장 조작을 식별하고 방지하는 방법은 무엇입니까?

2026-06-07 14:20:10

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?

일일 최대 손실 한도를 설정하기 위해 Bybit에서 위험 관리 규칙을 설정하는 방법은 무엇입니까?

2026-06-04 16:40:15

계정 수준 손실 한도 구성 1. 이중 인증을 사용하여 웹 또는 모바일 애플리케이션을 통해 Bybit 계정에 로그인하세요. 2. "자산" 섹션으로 이동한 후 왼쪽 메뉴에서 "위험 관리"를 선택합니다. 3. "일일 손실 한도&q...

마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?

마진 요구 사항을 줄이기 위해 Binance에서 포트폴리오 마진 모드를 활성화하는 방법은 무엇입니까?

2026-06-05 04:59:43

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?

열린 선물 포지션을 닫지 않고 Binance에서 Bybit로 이전하는 방법은 무엇입니까?

2026-06-04 03:59:47

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?

미국에서 암호화폐 선물 거래 수익에 따른 세금 영향을 어떻게 처리합니까?

2026-05-29 18:19:59

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 블록 보상을 통해 새로운 단위가 도입되는 2,100만 코인의 고정 공급 한도를 시행합니다. 2. 210,000블록마다(대략 4년마다) 블록 보상이 절반으로 줄어듭니다. 이 프로세스를 절반으로 줄입니다. 3....

모든 기사 보기

User not found or password invalid

Your input is correct