설정 파일입니다.
Copyright© 2018 Gluwa, Inc.
This file is part of Creditcoin.
Creditcoin is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with Creditcoin. If not, see https://www.gnu.org/licenses/.
version: “3.7”
services:
settings-tp:
image: hyperledger/sawtooth-settings-tp:1.0
container_name: sawtooth-settings-tp-default
depends_on:
- validator
entrypoint: settings-tp -C tcp://validator:4004
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”
validator:
image: gluwa/creditcoin-validator:latest
container_name: sawtooth-validator-default
volumes:
- type: volume
source: validator-block-volume
target: /var/lib/sawtooth/
- type: volume
source: validator-key-volume
target: /etc/sawtooth/keys/
expose:
- 4004
- 8800
ports:
- 4004:4004
- 8800:8800
secrets:
- source: validator_logging
target: /etc/sawtooth/log_config.toml
entrypoint: |
bash -c ‘if [[ ! -f /etc/sawtooth/keys/validator.pub ]]
then
echo “First run”
sawadm keygen
fi
sawtooth-validator -vv
–endpoint tcp://111.111.111.11:8800 \ <-(my ip)
–bind component:tcp://eth0:4004
–bind network:tcp://eth0:8800
–peering dynamic
–seeds tcp://creditcoin-node.gluwa.com:8800
–seeds tcp://creditcoin-gateway.gluwa.com:8800
–seeds tcp://118.27.14.197:8800
–seeds tcp://118.27.20.120:8800
–seeds tcp://160.251.9.11:8800
–seeds tcp://160.251.9.75:8800
–seeds tcp://160.251.10.137:8800
–seeds tcp://160.251.13.5:8800
–maximum-peer-connectivity 5
–scheduler parallel’
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “100m”
rest-api:
image: hyperledger/sawtooth-rest-api:1.0
container_name: sawtooth-rest-api-default
ports:
- 8008:8008
secrets:
- source: rest_api_logging
target: /etc/sawtooth/log_config.toml
depends_on:
- validator
entrypoint: sawtooth-rest-api -C tcp://validator:4004 --bind rest-api:8008
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”
processor:
image: gluwa/creditcoin-processor:latest
container_name: creditcoin-processor
depends_on:
- validator
- settings-tp
- rest-api
entrypoint: |
bash -c ‘rest_status=$$(curl -s --head -w %{http_code} http://rest-api:8008/state?address=000000 -o /dev/null)
while [ “$$rest_status” != “200” ]
do
echo $$rest_status
sleep 2
rest_status=$$(curl -s --head -w %{http_code} http://rest-api:8008/state?address=000000 -o /dev/null)
done
./ccprocessorLinux.out tcp://validator:4004 tcp://gateway:55555 http://rest-api:8008’
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”
gateway:
image: gluwa/creditcoin-gateway:latest
container_name: creditcoin-gateway
expose:
- 55555
ports:
- 55555:55555
secrets:
- source: gateway_config
target: /home/Creditcoin/Gateway/appsettings.json
entrypoint: ./ccgateway
stop_signal: SIGKILL
logging:
driver: “json-file”
options:
max-file: “5”
max-size: “10m”
secrets:
gateway_config:
file: ./gatewayConfig.json
rest_api_logging:
file: ./rest_api-log_config.toml
validator_logging:
file: ./validator-log_config.toml
volumes:
validator-block-volume:
validator-key-volume:
=========================
gatewayConfig 설정 파일입니다.
{
“bindIP”: “0.0.0.0”,
“bitcoin”: {
“rpc”: “”,
“credential”: “<rpc_username:rpc_password>”
},
“ethereum”: {
“creditcoinContract”: “0xa3ee21c306a700e682abcdfe9baa6a08f3820419”,
“creditcoinContractAbi”: “[{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales730Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘VestingStartDate’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘name’,‘outputs’:[{‘name’:’’,‘type’:‘string’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘spender’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘approve’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘totalSupply’,‘outputs’:[{‘name’:‘amount’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf365Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘value’,‘type’:‘uint256’},{‘name’:‘sighash’,‘type’:‘string’}],‘name’:‘exchange’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘from’,‘type’:‘address’},{‘name’:‘to’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘transferFrom’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf183Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘decimals’,‘outputs’:[{‘name’:’’,‘type’:‘uint8’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales1095Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf365Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘burn’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf2190Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales183Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale365Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf730Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘owner’,‘type’:‘address’}],‘name’:‘balanceOf’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[],‘name’:‘finalizeSales’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘from’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘burnFrom’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf2190Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf730Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘symbol’,‘outputs’:[{‘name’:’’,‘type’:‘string’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale183Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘to’,‘type’:‘address’},{‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘transfer’,‘outputs’:[{‘name’:‘success’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘creditcoinSalesLimit’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘vestedBalanceOf1095Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘creditcoinLimitInFrac’,‘outputs’:[{‘name’:’’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale2190Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale730Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf1095Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘owner’,‘type’:‘address’},{‘name’:‘spender’,‘type’:‘address’}],‘name’:‘allowance’,‘outputs’:[{‘name’:‘remaining’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[],‘name’:‘startVesting’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales2190Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:true,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’}],‘name’:‘purchasedBalanceOf183Days’,‘outputs’:[{‘name’:‘balance’,‘type’:‘uint256’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:true,‘inputs’:[],‘name’:‘IsSalesFinalized’,‘outputs’:[{‘name’:’’,‘type’:‘bool’}],‘payable’:false,‘stateMutability’:‘view’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolders’,‘type’:‘address[]’},{‘name’:‘amounts’,‘type’:‘uint256[]’}],‘name’:‘recordSales365Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘constant’:false,‘inputs’:[{‘name’:‘tokenHolder’,‘type’:‘address’},{‘name’:‘numCoins’,‘type’:‘uint256’}],‘name’:‘recordSale1095Days’,‘outputs’:[],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘function’},{‘inputs’:[{‘name’:‘creditcoinFoundation’,‘type’:‘address’},{‘name’:‘devCost’,‘type’:‘address’}],‘payable’:false,‘stateMutability’:‘nonpayable’,‘type’:‘constructor’},{‘payable’:true,‘stateMutability’:‘payable’,‘type’:‘fallback’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’},{‘indexed’:true,‘name’:‘sighash’,‘type’:‘string’}],‘name’:‘Exchange’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Burnt’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘from’,‘type’:‘address’},{‘indexed’:true,‘name’:‘to’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Transfer’,‘type’:‘event’},{‘anonymous’:false,‘inputs’:[{‘indexed’:true,‘name’:‘owner’,‘type’:‘address’},{‘indexed’:true,‘name’:‘spender’,‘type’:‘address’},{‘indexed’:false,‘name’:‘value’,‘type’:‘uint256’}],‘name’:‘Approval’,‘type’:‘event’}]”,
“rpc”: “https://mainnet.infura.io/v3/06343434443344343434346a”
indent preformatted text by 4 spaces
},
“ethless” : {
“rpc”: “https://mainnet.infura.io/v3/06d8343434343434433456a”
},
“erc20”: {
“rpc”: “https://mainnet.infura.io/v3/06d8734343434434343056a”
}
}
==================================================--------------------
설정이 끝나고 나서 PowerShell window 에서
docker-compose -f docker-compose.yaml down
docker-compose -f docker-compose.yaml up -d
docker-compose -f docker-compose.yaml up
이렇게 해주었습니다.
설정이 잘못 된 부분이 있을까요?
Is there any wrong setting?