(이전 문서)
[IT/Blockchain] - Hardhat 튜토리얼 - 1) 시작
[IT/Blockchain] - Hardhat 튜토리얼 - 2) 소스 분석
hardhat.config.ts 를 통해 배포 설정을 할 수 있습니다.
기본적으로 하드햇 컴파일 명령어는 다음과 같습니다.
npx hardhat complie
Solidity 컴파일 버전 설정
기본적으로 컴파일 할 버전을 한개만 사용할 경우 다음과 같이 설정합니다.
const config: HardhatUserConfig = {
solidity: "0.8.19",
};
하지만, 작업 시에 다른 컴파일 버전이 필요할 수 도 있습니다. (오픈소스 또는 예전 컴파일 버전이 필요한 경우)
그럴 때 아래와 같이 컴파일 버전을 추가할 수 있습니다.
- solidity 안에 compilers 구문을 추가하고 사용할 컴파일 버전을 나열합니다.
const config: HardhatUserConfig = {
solidity: {
compilers: [
{
version: "0.8.19"
},
{
version: "0.6.1"
}
]
},
};
이렇게 해놓으시면 .sol 파일 중 해당 컴파일 버전이 사용될 경우 맞춰서 컴파일을 할 수 있게 됩니다.
네트워크 설정
하드햇에서 제공하는 로컬네트워크는 설정하지 않아도 기본적으로 사용할 수 있습니다.
개발이 어느 정도 진행되면, 테스트넷, 메인넷에 배포해야 하는 상황이 오게 됩니다.
그 때, networks 라는 필드를 통해 배포할 네트워크를 지정할 수 있습니다.
네트워크 설정을 하기 위해서는 배포할 메인넷/테스트넷의 노드 엔드포인트 정보를 알아야합니다.
기본적인 모양을 아래와 같습니다.
networks: {
ethereum: { // 이 부분의 이름은 구분할 수 있게 자유롭게 작성하면 됩니다.
url: '<Ethereum RPC node URL>',
accounts: {
mnemonic: 'test test test .... test'
}
/**
* account: ['my private key']
* 두 가지 방식으로 account를 지정할 수 있습니다. mnemonic, private key
*/
}
}
개인이 직접 노드를 구축하였을 경우 해당 노드를 엔드포인트로 지정하시면 됩니다.
규모가 큰 메인넷의 경우 대부분 Public Node Endpoint를 제공합니다.
Ethereum의 경우 다음 사이트에서 정보를 찾을 수 있습니다.
https://www.allthatnode.com/ethereum.dsrv
All That Node
Everything you need to build on Ethereum. Come build the multi-chain future without barriers.
www.allthatnode.com
* 제공 되는 엔드포인트 중 Mainnet은 실제 통화로 거래소에서 거래되는 ETH를 사용하는 메인넷입니다.
- Goerli, Sepolia는 이더리움 2.0의 테스트 넷입니다.
추가적인 하드햇의 기능
메인넷을 포크하여 로컬에서 메인넷에 배포하는 것과 같이 테스트를 해볼 수 있습니다.
실제 메인넷에 배포하여 테스트하려면 비용이 들어가야 합니다. 하지만, 이 기능을 사용해 메인넷 배포 테스트를 하게 되면 비용을 크게 절감할 수 있습니다.
메인넷 노드 정보 -> Hardhat이 복사 -> Local Node(forked) 로 사용하게 됩니다.
아래와 같이 작성하여 사용할 수 있습니다.
networks: {
hardhat: { //hardhat이라고 작성해야 합니다
forking: {
url: "https://ethereum-mainnet-rpc.allthatnode.com",
blockNumber: 2800000 //포크 시작할 블록, 미지정 가능
},
accounts: { // 위의 두 가지 방법 모두 가능
mnemonic: 'test test test test .... junk',
accountsBalance: "10000000000000000000000000", // 10,000,000 KLAY
}
blockGasLimit: 30000000,
}
참고 니모닉(mnemonic)
블록체인에서의 니모닉(Mnemonic)
니모닉(mnenonic)은 원래 쓰이는 단어입니다. 두산 백과 사전 니모닉의 해석을 보면, '니모닉은 재사용이 필요할 때 사람의 기억을 돕기 위해 명확하게 선택된 상징이나 상징의 조합을 사용하는 것
infomauntain.tistory.com
'IT > Blockchain' 카테고리의 다른 글
블록체인에서의 니모닉(Mnemonic) (0) | 2023.08.10 |
---|---|
Hardhat 튜토리얼 - 4) 컨트랙트 테스트 (0) | 2023.08.10 |
Hardhat 튜토리얼 - 2) 소스 분석 (0) | 2023.08.09 |
Hardhat 튜토리얼 - 1) 시작 (0) | 2023.08.09 |
블록체인 초보자를 위한 단계별 가이드 (번역-4) (0) | 2023.08.07 |