Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)
9900 단어 Azure쿼럼블록체인Blockchain
마에오키
마지막 기사에서는 Azure Blockchain Service를 사용하여 블록체인을 구축할 때까지 했습니다.
이번 기사에서는 구축한 블록체인에 대해 계약(이번에는 ERC20의 토큰 계약)을 배포합니다.
트랜잭션 노드와의 통신
우선은 구축한 블록체인과 통신하는 곳부터 시작합니다.
Azure Blockchain Service에서 체인과의 상호 작용은 트랜잭션 노드가 제공하는 엔드포인트를 통해 이루어집니다.
메뉴에서 Settings > Transaction nodes를 열고 트랜잭션 노드를 선택한 다음 Settings > Connection strings를 열면 엔드포인트가 표시됩니다.
※ 검은색 부분이 액세스 키가 됩니다.
그러면 터미널에서 JSON RPC 요청을 보냅니다.
$ curl -X POST -H 'Content-Type:application/json' --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' 'https://member12345.blockchain.azure.com:3200/アクセスキー'
{"jsonrpc":"2.0","id":1,"result":"0xc059"}
정상적으로 결과가 돌아온 것을 확인할 수 있습니다.
트랜잭션 노드 보안 설정
트랜잭션 노드에 대한 연결 권한 설정으로 IAM에 의한 액세스 제어 또는 Firewall 규칙에 의한 IP 주소 범위 제한이 가능합니다.
계약 배포
이번에 배포하는 계약에는 오픈 소스로 게시된 ALIS의 토큰 계약을 사용합니다.
배포는 Ethereum 개발 도구인 Truffle을 사용하여 수행합니다. Azure Blockchain Service에서 사용되는 Quorum 블록체인이 Ethereum 에코시스템을 그대로 이용할 수 있다는 점은 큰 장점입니다.
배포 흐름은 기본적으로 Ethereum에 계약을 배포 할 때와 유사하므로 자세한 내용은 여기에서 생략합니다
배포 시 truffle-config.js
를 편집합니다.
truffle-config.jsvar Web3 = require("web3");
module.exports = {
networks: {
development: {
provider: new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー"),
network_id: "*",
gas: 5000000,
gasPrice: 0,
}
}
};
회원 계정 잠금 해제
계약을 배포하기 전에 회원 계정을 잠금 해제해야 합니다. 잠금 해제는 다음 JSON RPC 요청으로 수행할 수 있습니다.
$ curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["メンバーアカウントのアドレス", "メンバーアカウントに設定したパスワード", アンロックする秒数],"id":1}' "https://member12345.blockchain.azure.com:3200/アクセスキー"
{"jsonrpc":"2.0","id":1,"result":true}
배포
$ truffle deploy
Using network 'development'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x86fd31820ca0e43c79a72ef6b3d2a686461b42142e611de7e1b060084152de64
Migrations: 0x132364b78fb0a7108fd2868dd362a67a9e6a48a8
Saving successful migration to network...
... 0xdcd24af063d07a4be577ddd69cfb563980d5fae8e1afec7d0ed35fa15860860d
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying AlisToken...
... 0xcaf88f603e8ac96188484e33b3f1f8d3fc5e47d05cf74b3d455f0b0c137777ca
AlisToken: 0xdbf7355b30598f24107c05076eed0aa69f028048
Saving successful migration to network...
... 0x2e77575f898c78938d32a3b57bf5b8d23226a1ad184c0313276e6925cad41055
Saving artifacts...
✨ Done in 25.06s.
(사용중인 Truffle 버전이 오래되었습니다 )
꽤 할애해 버렸습니다만, 이상으로 컨트랙트의 배포가 완료입니다.
계약의 메소드 호출
배포된 계약에 대해 web3.js를 사용하여 상호작용합니다. 시도해 보면 토큰의 상징을 가져옵니다.
get_symbol.jsconst Web3 = require("web3");
const provider = new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー");
const web3 = new Web3(provider);
const jsonInterface = [{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [{
"name": "",
"type": "string"
}],
"payable": false,
"stateMutability": "view",
"type": "function"
}];
const tokenContract = new web3.eth.Contract(jsonInterface, "0xdbf7355b30598f24107c05076eed0aa69f028048");
tokenContract.methods.symbol().call().then(console.log);
실행
$ node get_symbol.js
ALIS
이상, 간단합니다만 web3.js 경유로 컨트랙트와 교환할 수 있는 것을 확인 할 수 있었습니다.
결론
Azure Blockchain Service로 구축한 블록체인에 대해 Truffle을 사용하여 계약을 배포하고 web3.js를 통해 계약과 상호작용했습니다.
Quorum 블록체인이 Ethereum 기반으로 Ethereum의 에코시스템을 그대로 이용할 수 있기 때문에, Ethereum에서의 개발 경험이 있으면 학습 비용은 거의 걸리지 않을까 생각합니다.
이제 다음 기사에서는 Azure Blockchain Service 메트릭 주위와 블록 체인 탐색기에 대해 설명합니다 .
Reference
이 문제에 관하여(Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hayago/items/ba4ca93bcd5d99735b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선은 구축한 블록체인과 통신하는 곳부터 시작합니다.
Azure Blockchain Service에서 체인과의 상호 작용은 트랜잭션 노드가 제공하는 엔드포인트를 통해 이루어집니다.
메뉴에서 Settings > Transaction nodes를 열고 트랜잭션 노드를 선택한 다음 Settings > Connection strings를 열면 엔드포인트가 표시됩니다.
※ 검은색 부분이 액세스 키가 됩니다.
그러면 터미널에서 JSON RPC 요청을 보냅니다.
$ curl -X POST -H 'Content-Type:application/json' --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' 'https://member12345.blockchain.azure.com:3200/アクセスキー'
{"jsonrpc":"2.0","id":1,"result":"0xc059"}
정상적으로 결과가 돌아온 것을 확인할 수 있습니다.
트랜잭션 노드 보안 설정
트랜잭션 노드에 대한 연결 권한 설정으로 IAM에 의한 액세스 제어 또는 Firewall 규칙에 의한 IP 주소 범위 제한이 가능합니다.
계약 배포
이번에 배포하는 계약에는 오픈 소스로 게시된 ALIS의 토큰 계약을 사용합니다.
배포는 Ethereum 개발 도구인 Truffle을 사용하여 수행합니다. Azure Blockchain Service에서 사용되는 Quorum 블록체인이 Ethereum 에코시스템을 그대로 이용할 수 있다는 점은 큰 장점입니다.
배포 흐름은 기본적으로 Ethereum에 계약을 배포 할 때와 유사하므로 자세한 내용은 여기에서 생략합니다
배포 시 truffle-config.js
를 편집합니다.
truffle-config.jsvar Web3 = require("web3");
module.exports = {
networks: {
development: {
provider: new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー"),
network_id: "*",
gas: 5000000,
gasPrice: 0,
}
}
};
회원 계정 잠금 해제
계약을 배포하기 전에 회원 계정을 잠금 해제해야 합니다. 잠금 해제는 다음 JSON RPC 요청으로 수행할 수 있습니다.
$ curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["メンバーアカウントのアドレス", "メンバーアカウントに設定したパスワード", アンロックする秒数],"id":1}' "https://member12345.blockchain.azure.com:3200/アクセスキー"
{"jsonrpc":"2.0","id":1,"result":true}
배포
$ truffle deploy
Using network 'development'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x86fd31820ca0e43c79a72ef6b3d2a686461b42142e611de7e1b060084152de64
Migrations: 0x132364b78fb0a7108fd2868dd362a67a9e6a48a8
Saving successful migration to network...
... 0xdcd24af063d07a4be577ddd69cfb563980d5fae8e1afec7d0ed35fa15860860d
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying AlisToken...
... 0xcaf88f603e8ac96188484e33b3f1f8d3fc5e47d05cf74b3d455f0b0c137777ca
AlisToken: 0xdbf7355b30598f24107c05076eed0aa69f028048
Saving successful migration to network...
... 0x2e77575f898c78938d32a3b57bf5b8d23226a1ad184c0313276e6925cad41055
Saving artifacts...
✨ Done in 25.06s.
(사용중인 Truffle 버전이 오래되었습니다 )
꽤 할애해 버렸습니다만, 이상으로 컨트랙트의 배포가 완료입니다.
계약의 메소드 호출
배포된 계약에 대해 web3.js를 사용하여 상호작용합니다. 시도해 보면 토큰의 상징을 가져옵니다.
get_symbol.jsconst Web3 = require("web3");
const provider = new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー");
const web3 = new Web3(provider);
const jsonInterface = [{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [{
"name": "",
"type": "string"
}],
"payable": false,
"stateMutability": "view",
"type": "function"
}];
const tokenContract = new web3.eth.Contract(jsonInterface, "0xdbf7355b30598f24107c05076eed0aa69f028048");
tokenContract.methods.symbol().call().then(console.log);
실행
$ node get_symbol.js
ALIS
이상, 간단합니다만 web3.js 경유로 컨트랙트와 교환할 수 있는 것을 확인 할 수 있었습니다.
결론
Azure Blockchain Service로 구축한 블록체인에 대해 Truffle을 사용하여 계약을 배포하고 web3.js를 통해 계약과 상호작용했습니다.
Quorum 블록체인이 Ethereum 기반으로 Ethereum의 에코시스템을 그대로 이용할 수 있기 때문에, Ethereum에서의 개발 경험이 있으면 학습 비용은 거의 걸리지 않을까 생각합니다.
이제 다음 기사에서는 Azure Blockchain Service 메트릭 주위와 블록 체인 탐색기에 대해 설명합니다 .
Reference
이 문제에 관하여(Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hayago/items/ba4ca93bcd5d99735b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var Web3 = require("web3");
module.exports = {
networks: {
development: {
provider: new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー"),
network_id: "*",
gas: 5000000,
gasPrice: 0,
}
}
};
$ curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["メンバーアカウントのアドレス", "メンバーアカウントに設定したパスワード", アンロックする秒数],"id":1}' "https://member12345.blockchain.azure.com:3200/アクセスキー"
{"jsonrpc":"2.0","id":1,"result":true}
$ truffle deploy
Using network 'development'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x86fd31820ca0e43c79a72ef6b3d2a686461b42142e611de7e1b060084152de64
Migrations: 0x132364b78fb0a7108fd2868dd362a67a9e6a48a8
Saving successful migration to network...
... 0xdcd24af063d07a4be577ddd69cfb563980d5fae8e1afec7d0ed35fa15860860d
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying AlisToken...
... 0xcaf88f603e8ac96188484e33b3f1f8d3fc5e47d05cf74b3d455f0b0c137777ca
AlisToken: 0xdbf7355b30598f24107c05076eed0aa69f028048
Saving successful migration to network...
... 0x2e77575f898c78938d32a3b57bf5b8d23226a1ad184c0313276e6925cad41055
Saving artifacts...
✨ Done in 25.06s.
배포된 계약에 대해 web3.js를 사용하여 상호작용합니다. 시도해 보면 토큰의 상징을 가져옵니다.
get_symbol.js
const Web3 = require("web3");
const provider = new Web3.providers.HttpProvider("https://member12345.blockchain.azure.com:3200/アクセスキー");
const web3 = new Web3(provider);
const jsonInterface = [{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [{
"name": "",
"type": "string"
}],
"payable": false,
"stateMutability": "view",
"type": "function"
}];
const tokenContract = new web3.eth.Contract(jsonInterface, "0xdbf7355b30598f24107c05076eed0aa69f028048");
tokenContract.methods.symbol().call().then(console.log);
실행
$ node get_symbol.js
ALIS
이상, 간단합니다만 web3.js 경유로 컨트랙트와 교환할 수 있는 것을 확인 할 수 있었습니다.
결론
Azure Blockchain Service로 구축한 블록체인에 대해 Truffle을 사용하여 계약을 배포하고 web3.js를 통해 계약과 상호작용했습니다.
Quorum 블록체인이 Ethereum 기반으로 Ethereum의 에코시스템을 그대로 이용할 수 있기 때문에, Ethereum에서의 개발 경험이 있으면 학습 비용은 거의 걸리지 않을까 생각합니다.
이제 다음 기사에서는 Azure Blockchain Service 메트릭 주위와 블록 체인 탐색기에 대해 설명합니다 .
Reference
이 문제에 관하여(Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hayago/items/ba4ca93bcd5d99735b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Azure Blockchain Service를 사용해보십시오.2(컨트랙트 배포)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hayago/items/ba4ca93bcd5d99735b9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)