kohanucha
kohanucha@siamstr.com
npub1d0gj...0hxg
Back-end developer
meta.title
meta.description
วิธีคร่าว ๆ ถ้าอยาก run bitcoin node docker container โดยให้อยู่หลัง tor ครับ #siamstr
1. Install tor ในเครื่อง server ของเรา ตาม link นี้
2. ถ้าเอาง่ายสามารถรัน docker container ด้วย network mode host ได้เลยแล้วก็ config tor เหมือนเรา run bitcoin node ในเครื่อง server ได้เลย
3. ถ้าต้องการแยก network ให้สร้าง docker network ขึ้นมาแล้ว config ให้ docker container มาใช้ network ที่เราสร้างเพื่อเชื่อมต่อไปหา tor บน host machine
4. config tor ให้รับ request จาก docker และ authen ด้วย cookie ที่ไฟล์ /etc/tor/torrc
ถ้าใช้ docker bridge network
```
SOCKSPort ${DOCKER_HOST_GATEWAY_IP}:9050
ControlPort ${DOCKER_HOST_GATEWAY_IP}:9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
```
*** ${DOCKER_HOST_GATEWAY_IP} สามารถดูได้จาก docker network inspect <network-name>
ถ้าใช้ network host
```
SOCKSPort 127.0.0.1:9050
ControlPort 127.0.0.1:9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
```
5. config bitcoin node ในไฟล์ bitcoin.conf ให้ใช้ tor (config อาจจะต่างกันในแต่ละ version)
ถ้าใช้ docker bridge network
```
debug=tor
onlynet=onion
proxy=${DOCKER_HOST_GATEWAY_IP}:9050 # where to connect tor SOCKS5 for outgoing connections
torcontrol=${DOCKER_HOST_GATEWAY_IP}:9051 # where to connect tor control for hidden bitcoin service
bind=0.0.0.0:8334=onion # where to receive incoming peer connections
```
ถ้าใช้ network host
```
debug=tor
onlynet=onion
proxy=127.0.0.1:9050
torcontrol=127.0.0.1:9051
bind=127.0.0.1:8334=onion
```
6. เขียน docker-compose.yml file ตัวอย่างผมใช้ image ของ
```
services:
bitcoind:
container_name: bitcoind
image: lncm/bitcoind:v28.0
user: "1000:1000" # run process with user 1000 (bitcoind user in container)
group_add:
- "${DEBIAN_TOR_GID}" # add user 1000 to debian-tor group (debian-tor group in host machine) to read tor control.authcookie file
volumes:
- ~/data/bitcoin/:/data/.bitcoin/ # where to store bitcoin data
- /run/tor/control.authcookie:/run/tor/control.authcookie:ro # map tor control.authcookie for authentication
ports:
- "8334:8334" # expose port 8334 to receive incoming peer from tor network
networks:
- ext_bitcoind_bridge # use external network to prevent ip changing after docker compose down and up again
networks:
ext_bitcoind_bridge:
external: true
name: bitcoind_bridge # need to run 'docker network create bitcoind_bridge' before docker compose up
```
7. docker compose up -d
8. ถ้าใช้ firewall ร่วมด้วยก็ต้องไป allow proxy port กับ control port ของ tor ให้เชื่อมต่อจาก docker network ได้ด้วย
Tor Project | How to install Tor
Defend yourself against tracking and surveillance. Circumvent censorship. | How to install Tor
GitHub
GitHub - lncm/docker-bitcoind: Flexible multi-arch (amd & amd64) Bitcoin Core Docker image
Flexible multi-arch (amd & amd64) Bitcoin Core Docker image - lncm/docker-bitcoind
ChatGPT ยังรู้กำเมียง 5555 แต่ถูกไม่ถูกผมก็ไม่ฮู้นะ #siamstr


GM ครับ #siamstr
วันนี้การจราจรไม่ติดขัดรวบ transactions กันได้นะครับ


It’s a good chit เสียดายเค้าไม่รับ sats #siamstr


ลองทำครับ ไม่รู้ว่าถูกมั้ย ฝากตรวจการบ้านด้วยครับ #siamstr #righttech
ข้อ 5 สร้าง multisig address แบบ P2SH แบบ 1-of-4 จาก publickey ในอินพุตทั้งสี่ของธุรกรรมนี้
37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517
1. get raw transaction แล้วหา public key เนื่องจาก address เป็น segwit ให้ดูตรง txinwitness index ที่ 1 ตรงนั้นจะเป็น public key
```
$ bitcoin-cli getrawtransaction 37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517 true
{
"txid": "37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517",
"hash": "e28a0885b6f413e24a89e9c2bac74d4c6f335e17545f0b860da9146caf7ffe39",
"version": 2,
"size": 666,
"vsize": 344,
"weight": 1374,
"locktime": 818817,
"vin": [
{
"txid": "c9da5e51de40985b8e29d9ddd11b5d8818250773e3f3129bf065900ee841f6b5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402200dd758801b40393f68dad8ab57558803efcd2b681ee31eb44fb3cfa9666d2bf90220254d34fa4990e23652bf669053c5e16fd2fbb816bed2eeb44c1f1e6e54143e3e01",
"02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7"
],
"sequence": 4294967294
},
{
"txid": "44fbdaec8b794fa0b6e9ff70d76d4464ada38fe5aeac7285f16fbbaf86894fd5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402201694761a5749b6a84f71459c04a44cf9d34a36ae8c9044c3af7a3a5514ef2e64022058f61feb92d6d54b71fdea47e7dfcd20f6a5c12e2fbcb15bc44fe95c73f2e80801",
"03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760"
],
"sequence": 4294967294
},
{
"txid": "c5263cf8798dd44f4aeae6421a1b5ab6a26d8623d7294c5487eec3b162305e47",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"3044022014b65c60f65e62d9dac893e404c8de2a007c7c6b74dbac18e454d8374e159759022012453f69112adadf9495fd3fe288aa5ed9e3d836340da06fa1e82c8e09adef5701",
"03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce"
],
"sequence": 4294967294
},
{
"txid": "09f87c09c96058b8b72ed0caefff37fbefd9d4ebe64876d3df93cc2e358763a5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402203d3b02390803c1d673fa49bd64d4a26fbeb29e3fc152af8f844d776c9409e41302206903a011a04e00a7f4ec606da4320226d2d393f565702cc58cfcef6dca67f84c01",
"0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2"
],
"sequence": 4294967294
}
],
"vout": [
{
"value": 0.01000698,
"n": 0,
"scriptPubKey": {
"asm": "0 8070ec3954ecdcbfc210d0117e8d28a19eb84672",
"desc": "addr(bc1qspcwcw25anwtlsss6qgharfg5x0ts3njad8uve)#pzjnvw8p",
"hex": "00148070ec3954ecdcbfc210d0117e8d28a19eb84672",
"address": "bc1qspcwcw25anwtlsss6qgharfg5x0ts3njad8uve",
"type": "witness_v0_keyhash"
}
},
{
"value": 0.08230000,
"n": 1,
"scriptPubKey": {
"asm": "0 b5fe46c647353ec9c06374655502094095f0289c",
"desc": "addr(bc1qkhlyd3j8x5lvnsrrw3j42qsfgz2lq2yu3cs5lr)#hzcalwww",
"hex": "0014b5fe46c647353ec9c06374655502094095f0289c",
"address": "bc1qkhlyd3j8x5lvnsrrw3j42qsfgz2lq2yu3cs5lr",
"type": "witness_v0_keyhash"
}
}
],
"hex": "02000000000104b5f641e80e9065f09b12f3e373072518885d1bd1ddd9298e5b9840de515edac90000000000feffffffd54f8986afbb6ff18572acaee58fa3ad64446dd770ffe9b6a04f798becdafb440000000000feffffff475e3062b1c3ee87544c29d723866da2b65a1b1a42e6ea4a4fd48d79f83c26c50000000000feffffffa56387352ecc93dfd37648e6ebd4d9effb37ffefcad02eb7b85860c9097cf8090000000000feffffff02fa440f00000000001600148070ec3954ecdcbfc210d0117e8d28a19eb8467270947d0000000000160014b5fe46c647353ec9c06374655502094095f0289c0247304402200dd758801b40393f68dad8ab57558803efcd2b681ee31eb44fb3cfa9666d2bf90220254d34fa4990e23652bf669053c5e16fd2fbb816bed2eeb44c1f1e6e54143e3e012102bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f70247304402201694761a5749b6a84f71459c04a44cf9d34a36ae8c9044c3af7a3a5514ef2e64022058f61feb92d6d54b71fdea47e7dfcd20f6a5c12e2fbcb15bc44fe95c73f2e808012103aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c76002473044022014b65c60f65e62d9dac893e404c8de2a007c7c6b74dbac18e454d8374e159759022012453f69112adadf9495fd3fe288aa5ed9e3d836340da06fa1e82c8e09adef57012103a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce0247304402203d3b02390803c1d673fa49bd64d4a26fbeb29e3fc152af8f844d776c9409e41302206903a011a04e00a7f4ec606da4320226d2d393f565702cc58cfcef6dca67f84c01210383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2817e0c00",
"blockhash": "000000000000000000024a848a9451143278f60e4c3e73003da60c7b0ef74b62",
"confirmations": 70717,
"time": 1701158269,
"blocktime": 1701158269
}
```
2. นำ public key ทั้ง 4 อันมาสร้าง multisig address
```
$ bitcoin-cli createmultisig 1 '["'"02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7"'","'"03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760"'","'"03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce"'","'"0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2"'"]'
{
"address": "3GyWg1CCD3RDpbwCbuk9TTRQptkRfczDz8",
"redeemScript": "512102bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f72103aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c7602103a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce210383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd254ae",
"descriptor": "sh(multi(1,02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7,03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760,03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce,0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2))#0a7gjjjl"
}
```
View article →
ตั้งกลางห้างแถวที่ทำงานเลย ต้องจัดซักวันแล้วแหละ #siamstr #chithole


“ที่ครอบครัวกูแม่งจน ไม่ใช่เพราะพ่อกูไม่ขยัน ไม่ใช่เพราะแม่กูไม่ฉลาด แต่เพราะระบบแม่งเหี้ย”
#siamstr #เงินเฟ้อคือคดีอาญา
