- bitcoind,比特币全节点,1组statefulset + 集群内service
- ord-sync,用于同步或升级ord,其他ord节点的pvc克隆自ord-sync,1组statefulset
- ord,为mint提供服务的ord,2组statefulset + 集群内service
- mint,http服务,1组deployment + ingress
- ord-scale,用于ord扩容,多组statefulset
- 启动bitcoind和ord-sync,同步后,停止ord-sync(scale设为0),克隆出ord所需的pvc,启动ord
- 启动后ord-sync加入ord服务,扩容、更新时通过修改label将ord-sync踢出服务
- 大版本更新是redb数据不兼容,修改label将ord-sync踢出服务
- ord-sync重新同步完成后,依次对ord的多个sts更新(停止ord,重新克隆pvc,启动)
- 修改label将ord-sync踢出服务,停止ord-sync后克隆pvc
- ord-scale同步后,设置label加入ord服务
- https://cloud.google.com/armor/docs/rate-limiting-overview?hl=zh-cn
- https://cloud.google.com/load-balancing/docs/https/setup-global-ext-https-serverless?hl=zh-cn
- k8s部署 + armor
- k8s + nginx ingress
.env
# btc network
BTC_NETWORK=testnet
# ord url
ORD_URL=http://ord.testnet.octopus.network
# utxo provider
UTXO_PROVIDER=mempool
curl -X POST \
https://rune-mint-ryziih63hq-uc.a.run.app/mint \
-H 'Content-Type: application/json' \
-d '{
"wallet_address": "tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j",
"receiver_address": "tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j",
"rune_name": "HELLO•WORLD•FAIR",
"fee_rate": 1
}'
./bitcoin-26.1/bin/bitcoin-cli -chain=test\
> -rpcuser=user -rpcpassword=password \
> decodepsbt 'cHNidP8BAIUCAAAAAZsVJgyCZ+JRrBJsc+F7Jfb1VtPR5E+Mic3DNX9Kh1V4AAAAAAD/////AwAAAAAAAAAAC2pdCBSm4J0BFI8BIgIAAAAAAAAWABRxwlf7R2FPEqz66Ki681foNxU/xiwiAAAAAAAAFgAUccJX+0dhTxKs+uiouvNX6DcVP8YAAAAAAAEBHxwlAAAAAAAAFgAUccJX+0dhTxKs+uiouvNX6DcVP8YBAwQBAAAAAQQWABSg9UDkihcikJx3/HEJsh3mNElpMCIGA3qoOmvFPtEs4TBt5bK6Dys1xVqReFf+gYHmPiwf8bDAECe/k0UAAACAAAAAgAAAAIAAAAAA'
{
"tx": {
"txid": "48dfb79f76cb97cf1adc796953c453efedd94822ce116759471fa79cbb7e3f3e",
"hash": "48dfb79f76cb97cf1adc796953c453efedd94822ce116759471fa79cbb7e3f3e",
"version": 2,
"size": 133,
"vsize": 133,
"weight": 532,
"locktime": 0,
"vin": [
{
"txid": "7855874a7f35c3cd898c4fe4d1d356f5f6257be1736c12ac51e267820c26159b",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.00000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_RETURN 13 14a6e09d01148f01",
"desc": "raw(6a5d0814a6e09d01148f01)#zzwvqpkc",
"hex": "6a5d0814a6e09d01148f01",
"type": "nulldata"
}
},
{
"value": 0.00000546,
"n": 1,
"scriptPubKey": {
"asm": "0 71c257fb47614f12acfae8a8baf357e837153fc6",
"desc": "addr(tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j)#tk90rw9m",
"hex": "001471c257fb47614f12acfae8a8baf357e837153fc6",
"address": "tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j",
"type": "witness_v0_keyhash"
}
},
{
"value": 0.00008748,
"n": 2,
"scriptPubKey": {
"asm": "0 71c257fb47614f12acfae8a8baf357e837153fc6",
"desc": "addr(tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j)#tk90rw9m",
"hex": "001471c257fb47614f12acfae8a8baf357e837153fc6",
"address": "tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j",
"type": "witness_v0_keyhash"
}
}
]
},
"global_xpubs": [
],
"psbt_version": 0,
"proprietary": [
],
"unknown": {
},
"inputs": [
{
"witness_utxo": {
"amount": 0.00009500,
"scriptPubKey": {
"asm": "0 71c257fb47614f12acfae8a8baf357e837153fc6",
"desc": "addr(tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j)#tk90rw9m",
"hex": "001471c257fb47614f12acfae8a8baf357e837153fc6",
"address": "tb1qw8p90768v9839t86az5t4u6haqm3207xz42j3j",
"type": "witness_v0_keyhash"
}
},
"sighash": "ALL",
"redeem_script": {
"asm": "0 a0f540e48a1722909c77fc7109b21de634496930",
"hex": "0014a0f540e48a1722909c77fc7109b21de634496930",
"type": "witness_v0_keyhash"
},
"bip32_derivs": [
{
"pubkey": "037aa83a6bc53ed12ce1306de5b2ba0f2b35c55a917857fe8181e63e2c1ff1b0c0",
"master_fingerprint": "27bf9345",
"path": "m/0h/0h/0h"
}
]
}
],
"outputs": [
{
},
{
},
{
}
],
"fee": 0.00000206
}