웹 엔지니어가 사쿠와 사내 통화를 만들어 보았습니다.

※2개월전에 만든 것을 드디어 기사로 한 것이 됩니다. cryptocurrencies는 빠르기 때문에 이미 만드는 방법 등 정보가 오래되었을 수 있으므로 양해 바랍니다.

일시기의 가상 통화 붐이 조금 침착해 최근에는 시세는 완전히 차갑게 되어 버렸네요. .

그러나 블록체인 기술은 아직 앞으로입니다!

그래서 이더리움 위에서 발행한 토큰을 사용하여 Slack에서 쉽게 전송할 수 있는 사내 통화 & Slack 앱(DApps)을 만들어 보았습니다.

완제품




internal-coin 라는 bot 와 상호 작용하여 토큰을 메시지와 함께 지정된 주소로 보낼 수 있습니다.

사양(명령의 상세 설명)


welcome : welcome 메시지를 표시합니다.help : bot 의 사용법을 설명합니다.add {address} : 자신의 지갑 주소를 등록합니다. 이 명령으로 등록하면 Slack의 멘션과 등록한 주소가 연결됩니다.send `{message}` to @{mention} : @{mention} 목적지에 메시지와 함께 100ITN 토큰 보냅니다.
(지금은 디버그용으로 자신에게도 보낼 수 있게 되어 있습니다.)show message : 자신에게 도착한 최신 메시지를 볼 수 있습니다.balance : 자신의 ITN 토큰 잔액을 확인할 수 있습니다.

자신의 계정에서 상대의 계정으로 직접 ITN 토큰을 보낼 수 있도록 하면 비밀키도 Slack bot 상에서 관리해야 하기 때문에 Owner 계정을 만들어 Owner 계정에서 사용자에게 토큰을 배포하도록 했습니다.


토큰 구현



거의
- Truffle로 시작하기 Ethereum 입문 - ERC20 토큰 만들기
- Ethereum의 ERC20 토큰으로 사내 통화 (바람)를 만들겠습니다.
- Ropsten의 테스트 넷에서 ERC20 토큰을 만들고 보냅니다.
여기를 참고하겠습니다 m

마찬가지로 ERC20 기반으로 스마트 계약을 작성하고 있습니다.
↑를 보면 토큰 발행까지 할 수 있다고 생각하므로 코드만 붙여 둡니다.
토큰 코드: GitHub internal-coin(ITN)
토큰 세부사항: Etherscan

또한 메인 넷이 아닌 Ropsten (테스트 넷)에 배포하고 있습니다.

최근에는 MetaMask(베타판)이나 Ethereum/Mist 하지만 토큰 발행만이라면 쉽게 할 수 있게 되어 있으므로 업계 정말 활발하네요.

Slack bot 만들기



Slack bot에는 botkit을 사용하고 있습니다.
완제품 코드

시작 명령
CONTRACT_ADDRESS={コントラクトのアドレス} ACCESS_TOKEN={infura のアクセストークン} MNEMONIC='{ウォレットの MNEMONIC}' BOT_TOKEN='{Slack の bot トークン}' PARENT_ADDRESS='{Owner アカウント の アドレス}' node index.js

bot의 인터페이스 코드는 /그리고 x. js에 있습니다.
스마트 계약과의 연결 코드는 /이 t 등 ct. js에 기록되어 있습니다.

contract.js
const PROVIDER = new HDWalletProvider(
  config.MNEMONIC,
  "https://ropsten.infura.io/" + config.ACCESS_TOKEN
);

const web3 = new Web3(PROVIDER);

const contract = new web3.eth.Contract(ABI, config.CONTRACT_ADDRESS);
PROVIDER 에서 infura 에 연결하여 블록체인에 있는 스마트 계약에 액세스하고 있습니다.
function thanksMessage(address) {
  return contract.methods.thanksMessage(address).call();
}

function thanks(address, message) {
  return contract.methods.thanks(address, message);
}

function balanceOf(address) {
  return contract.methods.balanceOf(address).call();
}
thanksMessage , thanks , balanceOf 를 각각 스마트 계약에서 호출합니다.

요약



이러한 느낌으로 필요한 메소드를 스마트 컨트랙트상에서 정의해, 그것을 읽어내는 DApps(이번은 Slack bot)를 실장하면 비교적 바삭바삭한 그러한 것이 실장할 수 있었습니다.
블록체인 세계는 일진월보에서 개발이 진행되고 있습니다.
시세뿐만 아니라 제대로 기술을 쫓아가고 싶네요!

좋은 웹페이지 즐겨찾기