我想要创建一个本地测试网,可以在钱包之间移动USDT (测试硬币)。
我设法在Docker中创建了一个ETH测试网。在下面的docker-compose.yml中,# ETH testnet setup (start)和# ETH testnet setup (end)之间的线对此负责。
version: '3'
services:
#
# BTC testnet setup (start)
#
node:
image: ulamlabs/bitcoind-custom-regtest:latest
electrumx:
image: lukechilds/electrumx:latest
links:
- node
ports:
- "51001:50001"
- "51002:50002"
environment:
- NET=regtest
- COIN=BitcoinSegwit
- DAEMON_URL=http://test:test@node:19001
explorer:
image: ulamlabs/btc-rpc-explorer:latest
links:
- node
- electrumx
ports:
- "3002:3002"
environment:
- BTCEXP_HOST=0.0.0.0
- BTCEXP_BITCOIND_URI=http://test:test@node:19001
- BTCEXP_ELECTRUMX_SERVERS=tls://electrumx:50002
- BTCEXP_ADDRESS_API=electrumx
#
# BTC testnet setup (end)
#
#
# ETH testnet setup (start)
#
geth:
image: ulamlabs/geth-poa-testnet:latest
environment:
- ETH_PASSWORD=QfdxTYxkwASj
- ETH_PRIVATE_KEY=0d0b4c455973c883bb0fa584f0078178aa90c571a8f1d40f28d2339f4e757dde
- ETH_ADDRESS=0c56352F05De44C9b5BA8bcF9BDEc7e654993339
ports:
- 8178:8178
- 8546:8546
volumes:
- ./genesis.json:/app/genesis.json
postgres:
image: postgres:12
command: postgres -c 'max_connections=500'
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
blockscout:
image: ulamlabs/blockscout:latest
links:
- geth
- postgres
ports:
- 4000:4000
environment:
- DATABASE_URL=postgresql://postgres:@postgres:5432/postgres?ssl=false
- ETHEREUM_JSONRPC_VARIANT=geth
- ETHEREUM_JSONRPC_HTTP_URL=http://geth:8178
- ETHEREUM_JSONRPC_WS_URL=ws://geth:8546
- MIX_ENV=prod
- BLOCKSCOUT_HOST=localhost
- COIN=eth
- NETWORK=POA
- SUBNETWORK=Local Testnet
#
# ETH testnet setup (end)
#文件./genesis.json:/app/genesis.json包含以下内容:
{
"config": {
"chainId": 5555,
"clique": {
"period": 60,
"epoch": 30000
},
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"muirGlacierBlock": 0
},
"extraData": "0x00000000000000000000000000000000000000000000000000000000000000000c56352F05De44C9b5BA8bcF9BDEc7e6549933390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"alloc": {
"411167FeFecAD12Da17F9063143706C39528aa28": {
"balance": "0x200000000000000000000000000000000000000000000000000000000000000"
}
},
"nonce": "0x0",
"timestamp": "0x5eaa7b09",
"gasLimit": "0x47b760",
"difficulty": "0x1",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}据我所知,
docker-compose.yml和/或genesis.json文件,以便将ETH 20/USDT支持添加到ETH?发布于 2021-10-04 13:00:48
我会尽我所能尽我所能回答问题,虽然我对这个问题并不十分清楚。
账户之间的以太转移是由区块链处理的。这样做不需要部署任何智能契约。
USDT和其他ERC-20令牌在区块链上本机不存在。每个ERC-20令牌都是某个人部署的智能契约。例如,这是USDT合同地址。您还可以阅读USDT合同代码这里。
上的应用
要回答您的问题,您可以在testnet上测试USDT,方法是在该测试网上部署USDT合同的确切副本(上面链接),然后调用一些函数,比如智能契约上的transfer()。
请注意,您不需要创建自己的testnet。您可以使用公共测试网(如Ropsten、Kovan、Rinkeby等),也可以使用类似ganache-cli的工具来执行的本地分支。对于后者,USDT合同已经部署好了,您可以在您的本地分支上测试它。加纳奇还允许您非常容易地创建本地测试网。
https://ethereum.stackexchange.com/questions/110684
复制相似问题