شخصی سازی کیف پول ترزور با برنامه python-trezor
اصطلاح شخصی سازی یک عبارت نام آشنا برای برنامه نویسان است. با دانستن علم برنامه نویسی دستگاه ها و نرم افزار های مختلف همه در خدمت شما خواهند بود . حال کیف پول سخت افزاری ترزور نیز با ارائه برنامه python-trezor اختیار عمل بیشتری به کاربران خود داده تا از کار با دستگاه های این شرکت بیشترین بهره را ببرند.
دستورات Trezorctl ابزاری هستند که به زبان برنامه نویسی Python نوشته شده اند و می توانند به وسیله دستگاه Trezor و با استفاده از خط دستوری کاربر اجرا شوند.
البته قبل از ادامه کار باید توجه داشت که این مقاله مخصوص کاربرانی است که برنامه نویسی را به خوبی می دانند بنابراین با احتیاط مراحل گفته شده را طی کنید.
همچنین توجه داشته باشید که راهنمای گفته با ورژن 0.11.2 برنامه python-trezor و بر روی سیستم هایی نظیر Linux Mint 19 ، Ubuntu 18.04.1 قابل اجرا خواهد بود؛ همچنین برای برنامه نوسی شما باید دستگاه ترزور وان با بوت لودر 1.6.0 و فریمور 1.7.0 یا بالاتر و یا دستگاه ترزور تی را در اختیار داشته باشید.
خب با این مقدمه به سراغ آموزش روش کار برویم..
مرحله ی اول برنامه python-trezor را نصب کنید
برنامه Python-trezor به Python نسخه 3.5 نیاز دارد. ساده ترین راه نصب python-trezor همرا با پکیج منیجر pip است.
- ابتدا الگوی ریپازیتوری (repository) را آپدیت کنید، و سپس وابستگی ها (Dependency) را نصب کنید:
sudo apt update && sudo apt install -y python3-pip python3-dev libusb-1.0-0-dev libudev-dev
توجه داشته باشید که در صورت استفاده از Trezor Bridge نیازی به کتابخانه های Notelibusb و libdev نیست.
- setuptool و wheel را نصب کنید.
pip3 install setuptools wheel
- python-trezor را نصب کنید.
pip3 install trezor
- مسیر های برنامه نویسی (PATH) خود را به روز کنید.
source .profile
- دستورات Udev باید بر روی سیستم شما تنظیم شود. که از دو طریق قابل اجرا است:
الف) با نصب Trezor Bridge از طریق https://wallet.trezor.io
یا
ب) با تنظیم قوانین Udev با استفاده از این لینک
توجه داشته باشید بعد از این مرحله کیف پول سخت افزاری ترزور خود را دوباره وصل کنید.
حال می توانید با استفاده از ابزارهای پایتون تنظیمات دستگاه ترزور خود را در مواردی مانند ، امضای تراکنش ها ، بازیابی اطلاعات و آدرس های حساب ها و موارد دیگر تغیر دهید!
به روزرسانی نسخه python-trezor
شما می توانید آخرین نسخه python-trezor را از این نشانی دانلود کنید. برای به روزرسانی نسخه Python-trezor این دستور را اجرا کنید:
pip3 install -U trezor
دستورات و گزینه های پیکر بندی مورد نیاز در python-trezor چگونه است؟
توجه داشته باشید در صورتی که از نسخه 7 برنامه استفاده می کنید ، خط های تیره ( _) به خط های dash ( –) تغیر پیدا می کنند. هنگام استفاده از نسخه قدیمی python-trezor ، از نامگذاری قدیمی (زیرخط ها) استفاده کنید.
دریافت آدرس
- دستور: trezorctl get-address
- توضیحات: این دستور آدرس را برای یک مسیر خاص BIP32 و یک نوع اسکریپت برمی گرداند.
- گزینه های پیکر بندی مورد نیاز:
-n یا –address
مسیر BIP32 به عنوان مثال “m / 49 ‘/ 0’ / 0 ‘/ 0/0”
- گزینه های پیکر بندی:
-c یا – coin
انواع کوین های پشتیبانی شده: بیت کوین ، Testnet ، Bcash ، Bgold ، Bitcore ، Bprivate ، Crown ، Dash ، Decred ، Decred Testnet ، DigiByte ، Dogecoin ، Feathercoin ، Flashcoin ، Fujicoin ، Groestlcoin ، Groestlcoin Testnet ، Koto ، Litecoin ، Litecoin Testnet ، Monacoin ، MonetaryUn ، Pesetacoin ، SmartCash ، Terracoin ، Vertcoin ، Viacoin ، Zcash ، Zcash Testnet ، Zcoin ، Zencash
-t یا – script-type
شما همچنین می توانید نوع آدرس اسکریپت را برای دریافت xpub مشخص کنید.
address/segwit/p2shsegwit
-d یا – show-display
این گزینه آدرس خاصی را در صفحه نمایش Trezor نشان می دهد.
- مثال :
trezorctl get-address -n “m/49’/0’/0’/0/0” -t “p2shsegwit” -d
پاک کردن دستگاه Trezor
- دستور: trezorctl wipe-device
- توضیحات: این دستور دستگاه ترزور را به حالت پیش فرض کارخانه ریست می کند و تمام داده های اختصاصی را حذف می کند.
اگر دستگاه در حالت بوت لودر نباشد ، داده های کاربر را پاک می شود، و اگر دستگاه در حالت بوت لودر نباشد اما گزینه –bootloader فراخوانده شده باشد ، کاربر ابتدا باید وارد حالت بوت لودر شود.
اگر دستگاه در حالت بوت لودر باشد و گزینه –bootloader فراخوانی شود ، هم داده های کاربر و هم داده های سیستم عامل پاک می شود.
همچنین اگر دستگاه در حالت بوت لودر باشد و گزینه –bootloader فراخوانی نشود ، به دستگاه به کاربر هشدار می دهد که در حالت بوت لودر است.
- گزینه ها :
–help : نمایش دستورات فرمان داده شده .
-b یا –bootloader :
دستگاه را در حالت بوت لودر ریست می کند . همچنین در این حالت سیستم عامل نیز ریست می شود.
- مثال:
trezorctl wipe-device
به روزرسانی فریمور (Firmware)
- دستور: trezorctl firmware-update
- توضیحات: با این دستور فریمور انتخاب شده بر روی کیف پول سخت افزاری تروزر بارگیری و نصب می شود ، توجه کنید که دستگاه باید در حالت بوت لودر باشد.
- گزینه ها:
help — : نمایش دستورات فرمان داده شده .
-f یا –filename :
این گزینه به کاربر اجازه می دهد فایلی را که سیستم عامل باید درآنجا نصب شود تنظیم کند.
البته شما نیز می توانید نسخه خاصی از فریمور را که به صورت (.bin file) را دانلود و نصب کنید.
دقت داشته باشید که Folder 1 شامل پرونده هایی برای ترزور مدل وان و Folder 2 شامل داده های مربوط به ترزور مدل تی می باشد.
- مثال
trezorctl firmware-update -f trezor-2.1.0.bin
-u یا –url
شما در این قسمت به طور مستقیم آدرس فریمور را که می خواهید نصب کنید وارد می کنید
- مثال
trezorctl firmware-update -u https://github.com/trezor/webwallet-data/raw/master/firmware/2/trezor-2.1.0.bin
-v یا –version
در این قسمت نیز می توانید نسخه مورد نظر برای نصب را تعیین کنید.
- مثال
trezorctl firmware-update -v 2.1.0
توجه: فقط می توانید از یکی از آپشن ها استفاده کنید: نام پرونده ، آدرس اینترنتی ، ورژن.
اثر انگشت (fingerprint)
هنگام به روزرسانی فریمور می توانید اثر انگشت را وارد کنید. در این هنگام دستگاه بررسی خواهد کرد که آیا اثر انگشت نسخه با اثر انگشت وارد شده مطابقت دارد یا خیر. در صورتی که ورژنی برای دستگاه تعریف نشده باشد ، اثر انگشت با جدیدترین اثر انگشت فریمور مقایسه می شود.
- مثال:
برای فریمور 2.1.0:
trezorctl firmware-update –fingerprint bb5b0308807b45d41d1e2ab66a468152997ad69a01099789d8a35e464cde999f
بکآپ گیری از دستگاه
- دستور: trezorctl backup-device
- توضیحات: با این دستور، عبارت بازیابی کیف پول (recovery seed) را دو بار نشان می دهد. دستگاه باید قبل از استفاده از این دستور مقداردهی اولیه ( initialized) شود. نمایش عبارت بازیابی در صفحه نمایش دستگاه به کاربر اجازه می دهد تا به درستی از دستگاه بکآپ گیری کند.
تغییر پین دستگاه
- دستور: pin-change trezorctl
- توضیحات: این دستور به کاربر اجازه می دهد تا پین یا رمز عبور دستگاه Trezor را تغییر داده یا حذف کند.
- گزینه های پیکر بندی:
– r یا –remove : این گزینه به کاربر امکان می دهد تا پین محافظ دستگاه را پاک شود.
پاک کردن نشست ها (session)
- دستور: trezorctl clear-session
- توضیحات: این دستور نشست های دستگاه (session) را پاک می کند (عبارت عبور و غیره را حذف می کند).
غیرفعال کردن عبارت عبور (passphrase)
- دستور: trezorctl disable-passphrase
- توضیحات: این دستور عبارت عبور را غیرفعال می کند. و باید توسط کاربر روی دستگاه تأیید شود.
فعال کردن عبارت عبور
- دستور: trezorctl enable-passphrase
- توضیحات: این دستور محافظت از عبارت عبور را امکان پذیر می کند. و باید توسط کاربر روی دستگاه تأیید شود.
مقدار دهی اولیه دستگاه
- دستور: trezorctl reset-device
- توضیحات: این دستور پس از نصب فریمور جدید ، دستگاه را مقداردهی کرده و عبارت بازیابی جدیدی تولید می کند.
این همان مراحل اولیه راه اندازی دستگاه و ایجاد کیف پول جدید در سایت ترزور است. با استفاده از این دستور ، کاربر می تواند طول عبارت بازیابی را در هر دو دستگاه تنظیم کند ، پین یا عبارت عبور را فعال کند ، ، یک شمارنده U2F سفارشی تنظیم کند یا از مراحل پشتیبان گیری را رد کند.
- گزینه های پیکر بندی:
-b یا –backup_type
این گزینه به شما امکان می دهد بین عبارت بازیابی BIP-39 یا شامیر بکآپ (Shamir Backup) یکی را انتخاب کنید.
- مثال:
trezorctl reset-device -b shamir -t 128
دستگاه ها با استفاده از بکآپ شامیر با اشتراک 20 کلمه آغاز می کنند. تغییر گزینه -t به 256 باعث ایجاد کیف پول با اشتراک گذاری 33 کلمه می شود.
-t یا –strength
این گزینه به کاربر اجازه می دهد تا نسخه عبارت بازیابی را انتخاب کند. این آپشن ها 128 بیتی (12 کلمه) ، 192 بیتی (18 کلمه) و 256 بیتی (24 کلمه) هستند، اما پیش فرض روی 256 بیت تنظیم شده است.
- مثال:
دستور آورده شده در مثال زیر یک کیف پول جدید با 18 کلمه بازیابی ایجاد می کند.
trezorctl reset-device -t 192
-r یا –passphrase-protection
این گزینه پس از ایجاد کیف پول جدید ، عبارت عبور جدید را ایجاد می کند.
-p یا -pin-protection
این گزینه به کاربر اجازه می دهد قبل از ایجاد کیف پول جدید ، پین تنظیم کند.
-l یا –label
این گزینه به کاربر اجازه می دهد قبل از ایجاد کیف پول جدید ، برچسبی را برای دستگاه تعیین کند.
- مثال:
trezorctl reset-device -l “MyTrezor”
-u یا — u2f-counter
این گزینه به کاربر اجازه می دهد یک شمارنده U2F سفارشی تنظیم کند.
-s یا –skip-backup
این گزینه به کاربر اجازه می دهد تا از فرآیند بکآپ گیری عبارت بازیابی عبور کند . با استفاده از این گزینه صفحه نمایشگر ترزور پس از ایجاد کیف پول جدید علامت “نیاز به پشتیبان” را نشان می دهد.
بررسی ایمنی دستگاه
- دستور: trezorctl set safety-checks [OPTIONS] [strict|prompt]
- توضیحات: در این قسمت سطح ایمنی تنظیم می شود. برای دریافت امنیت کامل دستگاه را بر روی گزینه روی “strict” تنظیم کنید.
اما اگر می خواهید به فعالیت های نا امن مانند عدم تطبیق کلیدهای سکه یا کارمزد های شدید اجازه دهید ، گزینه “prompt” فعال کنید.
این یک ویژگی برای کاربران پیشرفته یا به اصطلاح power-user است بنابراین با احتیاط از آن استفاده کنید.
- مثال:
trezorctl set safety-checks prompt
تنظیم ویژگی های دستگاه
- دستور: trezorctl get-features
- توضیحات: این دستور ویژگی ها و تنظیمات دستگاه را بازیابی می کند.
نمونه ای از پاسخ دریافت ویژگی ها را در زیر می توانید مشاهده کنید:
Features (90 bytes) {
device_id: ‘3B5328CA18BAE5F0553BCD3A’,
flags: 0,
initialized: True,
language: ‘english’,
major_version: 2,
minor_version: 1,
model: ‘T’,
needs_backup: False,
no_backup: False,
passphrase_cached: False,
passphrase_protection: True,
patch_version: 0,
pin_cached: True,
pin_protection: True,
revision: 8 bytes b’3f0e3a33′,
unfinished_backup: False,
vendor: ‘trezor.io’,
}
دریافت گره عمومی
- دستور: trezorctl get-public-node
- توضیحات: این دستور یک کلید عمومی گسترده را بازیابی می کند که می تواند برای ایجاد کیف پول watch-only استفاده شود.
- گزینه های پیکر بندی مورد نیاز:
-n یا –address
- مثال:
trezorctl get-public-node -n “m/44’/0’/0’/0/0”
- گزینه های پیکر بندی:
-c یا – coin
انواع کوین های پشتیبانی شده: بیت کوین ، Testnet ، Bcash ، Bgold ، Bitcore ، Bprivate ، Crown ، Dash ، Decred ، Decred Testnet ، DigiByte ، Dogecoin ، Feathercoin ، Flashcoin ، Fujicoin ، Groestlcoin ، Groestlcoin Testnet ، Koto ، Litecoin ، Litecoin Testnet ، Monacoin ، MonetaryUn ، Pesetacoin ، SmartCash ، Terracoin ، Vertcoin ، Viacoin ، Zcash ، Zcash Testnet ، Zcoin ، Zencash
-d یا –show-display
این گزینه، کلید عمومی گره را در صفحه نمایش کیف پول ترزور نمایش می دهد.
-t یا –script-type
شما می توانید مشخص کنید که کدام نوع اسکریپت آدرس را برای گرفتن xpub می خواهید استفاده کنید.
address/segwit/p2shsegwit
تنظیم لیست
- دستور: trezorctl list
- توضیحات: این دستور تمام دستگاه های ترزور متصل را لیست می کند.
تنظیم پینگ
- دستور: trezorctl ping
- توضیحات: این دستور برای اطمینان از اینکه آیا ارتباط بین رایانه و دستگاه برقرار است ، یک پیام پینگ به دستگاه می فرستد.
- مثال:
trezorctl ping “ahoy!”
- گزینه های پیکر بندی:
-b یا –button-protection
برای فعال کردن این گزینه نیاز هست تا کاربر در دستگاه تأیید کند که پیام پینگ را دریافت کرده است.
-p یا -pin-protection
برای این گزینه نیز لازم است کاربر قبل از ارسال پیام پینگ به دستگاه ، پین دستگاه را وارد کند.
-r یا –passphrase-protection
در این گزینه نیز لازم است کاربر قبل از ارسال پیام پینگ ، عبارت عبور را وارد کند.
بازیابی دستگاه
- دستور: trezorctl recovery-device
- توضیحات: این دستور با استفاده از عبارت بازیابی روند کار بازیابی امن را آغاز می کند.
- گزینه های پیکر بندی:
-w یا –words
این گزینه به کاربر اجازه می دهد تعداد کلمات عبارت بازیابی (12 ، 18 یا 24 کلمه) را انتخاب کند.
-e یا – Expand
این گزینه به کاربر اجازه می دهد تا فقط چهار حرف اول هر کلمه عبارت یاد آور (mnemonic) را وارد کند (که در نتیجه بازیابی دستگاه احتمال موفقیت بیشتری دارد).
-p یا -pin-protection
این گزینه به کاربر اجازه می دهد قبل از شروع روند بازیابی ، پین را تنظیم کند.
- مثال
trezorctl recovery-device -p
-r یا –passphrase-protection
این گزینه به کاربر اجازه می دهد قبل از شروع روند ریکاوری دستگاه ، گزینه حفاظت از دستگاه به وسیله عبارت عبور را فعال کند.
-l یا –label
این گزینه به کاربر اجازه می دهد قبل از شروع روند بازیابی دستگاه ، برای کیف پول ترزور خود یک اسم انتخاب کند.
-t یا –type
scrambled or matrix
این گزینه به کاربر اجازه می دهد تا بین روند بازیابی استاندارد (درهم) و پیشرفته (ماتریس) یکی را انتخاب کند.
- مثال:
trezorctl recovery-device -t matrix
-d یا –dry-run
این گزینه به کاربر اجازه می دهد تا به صورت آزمایشی فرایند بازیابی را انجام دهد و بررسی کند که آیا عبارت بازیابی وارد شده با عبارت دستگاه مطابقت دارد یا خیر.
این گزینه را می توان در دستگاه هایی که مقدار دهی اولیه شده باشند و یا نشده باشند نیز اجرا کرد.
خودآزمایی دستگاه
- دستور: trezorctl self-test
- توضیحات: این دستور فقط برای کیف پول Trezor One و در حالت بوت لودر کار می کند. این تست شامل بررسی USB ، RNG ، CPU و FLASH می شود. و نتایج آن در صفحه دستگاه نشان داده می شود.
تأخیر در قفل خودکار
- دستورات: trezorctl set auto-lock-delay
- توضیحات: این دستور قفل خودکار پیش فرض را برای چند ثانیه به تأخیر می اندازد.
- مثال:
trezorctl set auto-lock-delay 86400
تنظیمات صفحه اصلی
- دستور: trezorctl set-homescreen
- توضیحات: این دستور به کاربر اجازه می دهد صفحه اصلی دستگاه ترزور خود را تغییر دهد.
- گزینه های پیکر بندی:
-f یا –filename
دقت داشته باشید که برای ترزور تی تصویر انتخابی باید در قالب فایل TOIF و در اندازه 144×144 پیکسل باشد.
همچنین برای ترزور وان نیز این اندازه باید 128×64 پیکسل باشد.
- مثال:
trezorctl set-homescreen -f mynewhs.png
تنظیم برچسب (label)
- دستور: trezorctl set-label
- توضیحات: این دستور به کاربر اجازه می دهد تا برچسب جدیدی تنظیم کند یا برچسب کیف پول خود را تغییر دهد.
- گزینه های پیکر بندی مورد نیاز:
-l یا –label
- مثال:
دستور trezorctl set-label -l “Trezor Wiki” نام دستگاه شما را به Trezor Wiki تغییر می دهد.
تنظیم قابلیت چرخش صفحه
- دستور: trezorctl set-display-rotatinon
- توضیحات: این دستور به کاربر اجازه می دهد تا جهت صفحه نمایش را در جهت دلخواه بچرخاند.
- گزینه های پیکر بندی مورد نیاز:
غرب (west) یا شمال ( north) یا شرق (east) یا جنوب(south)
- مثال:
trezorctl set-display-rotation west
امضا پیغام تراکنش
- دستور: trezorctl sign-message
- توضیحات: این دستور به کاربر اجازه می دهد تا با استفاده از آدرس مسیر داده شده پیامی را علامت گذاری یا امضا کند.
- گزینه های پیکر بندی مورد نیاز:
-n یا –address
لازم است تا مسیر BIP32 را به وسیله پیام دستوری علامت گذاری کرد ، به عنوان مثال. “m / 44” / 0 “/ 0” / 0/0 “
- مثال:
trezorctl sign-message -n “m/44’/0’/0’/0/0” “ahoy”
- گزینه های پیکر بندی:
-c یا –coin
می توان مشخص کرد که از کدام کوین یا ارز دیجیتال برای امضای پیام استفاده شود. که در این مورد پیش فرض “بیت کوین” است.
- مثال:
trezorctl sign-message -n “m/44’/0’/0’/0/0” -c “Litecoin” “ahoy”
-t یا –script-type
می توان مشخص کرد که از کدام نوع آدرس اسکریپت برای امضای پیام / segwit / p2shsegwit استفاده شود.
تنظیم تایید پیام
- دستور: trezorctl verify-message
- توضیحات: این دستور به کاربر اجازه می دهد تا پیام امضا شده را با استفاده از آدرس تأیید کند. پس از اجرای دستور ، دستگاه از کاربر می خواهد آدرس را تأیید کرده تا پیام تأیید شود.
- گزینه های پیکر بندی:
-c یا –coin
- مثال:
trezorctl verify-message 1aWUN65K8ecrc4yi4CnWWB76SaeB8CxHt H2cYhELO9G/NES63uARBidkkgV2ARD8nhCNWHjf+rcTmJreVi+OEfZzL7WvXn02ky62yDQmFFSgxzvaijYPA2ec= ahoy
برای مشاهده و خرید کیف پول سخت افزاری لجر کلیک کنید.
تنظیم سورس عبارت عبور (passphrase)
- دستور: rezorctl set passphrase enabled –force-on-device
- توضیحات: این دستور فقط برای ترزور تی کاربرد دارد. با این دستور دستگاه همیشه از شما می خواهد تا عبارت عبور خود را وارد کنید.
همانطور که در ابتدای مقاله نیز به آن اشاره شد شخصی سازی دستگاه ها در موارد خاص و برای افرادی مفید است که آشنایی کامل با برنامه نویسی را داشته باشند اما به صورت پیش فرض کیف پول های سخت افزاری ترزور رابط کاربری جذاب و راحتی را برای کاربران فراهم کرده است .
پس بهتر است که در استفاده از این دستورات دقت لازم را داشته باشید.