حمید طوسی نژاد | 1398.01.10

نحوه ایجاد شبکه لیکوئید (liquid node)، تعریف دارایی و انتقال آن به زنجیره جانبی

مقدمه ای در مورد یک نود (گره) لیکوئید

شبکه لیکوئید یک زنجیره جانبی از بیت کوین است که تراکنش های سریع را  با رعایت حریم خصوصی تسهیل می کند. یک زنجیره جانبی، از بلاک چینی مجزا با ویژگی های متفاوت اما مرتبط با یکدیگر، برای بهره برداری از خصوصیات بلاک چین اصلی استفاده کرده و یکپارچه سازی می شود.

بیشتر بخوانید: زنجیره جانبی(Sidechain) چیست؟

اتصال دو جانبه در شبکه لیکوئید با نسبت 1 به 1 صورت می پذیرد. بنابراین به ازای هر 1 بیت کوین که به شبکه اختصاص داده می شود، 1 لیکوئید بیت کوین (به اختصار L-BTC) موجود خواهد بود. با کوین ایران همراه باشید.

برای ارسال و اتصال داده های ورودی، کافی ست بیت کوین مد نظر خود را به یک آدرس چند امضایی ارسال کنید. صاحبان امضاء افرادی هستند که تحت عنوان Strong Federation شناخته می شوند. برای دریافت خروجی برابر(جهت انتقال به زنجیره بیت کوین)، مبادلات باید از طریق همان اعضای شناخته شده صورت گیرد.

راه اندازی یک نود (گره) لیکوئید:

آدرس نود (گره) کامل باینری یا منبع کد لیکوئید و کیف پول آن در گیت هاب میزبانی می شود. در حال حاضر این امکان تنها برای سیستم باینری لینوکس وجود دارد. این مطلب در مورد ساخت liquidd  یا سایر سرویس ها نبوده و شما می توانید برای ایجاد لیکوئید از این لینک استفاده نمائید. در این مطلب کمابیش به ساخت bitcoind می پردازیم.

بیشتر بخوانید: زنجیره های جانبی (sidechains) پای ICO ها را به بیت کوین می کشاند

برای ایجاد liquidd  به اجرای bitcoind  نیاز خواهد بود که سرویسی از فراخوان RPC به شمار می رود. دقیقا همانطور که bitcoind  توسط bitcoin-cli اجرا می شود، liquidd  نیز از طریق liquid-cli به اجرا در می آید. بنابراین زمانی که liquidd  در حال اجرا است، تمام دستورات از طریق liquid-cli مدیریت می شود. گره لیکوئید ایجاد شده، قادر به ارتباط با گره بیت کوین برای اعتبار بخشیدن به اتصال اطلاعات ورودی و درخواست شناور سازی بیت کوین خواهد بود.

در صورتی که نیازی به اتصال اطلاعات ورودی ندارید، نیازی به اجرای bitcoind  نیز نخواهد بود. بنابراین liquidd  از طریق validatepegin=0 به اجرا در می آید.

server=1
rpcuser=
rpcpassword=

همچنین لیکوئید نیز با دستور liquid.conf و ورودی های زیر اجرا می شود:

mainchainrpcuser=  <– rpcuser in bitcoin.conf
mainchainrpcpassword=  <– rpcpassword in bitcoin.conf
mainchainrpchost=  <– usually 127.0.0.1
mainchainrpcport=  <– usually 8332

 

اکنون با استفاده ازliquidd  می توان به بلاک های زنجیره جانبی، اعتبار بخشید. نمایش خطا در لیکوئید، مانند bitcoind با اجرای debug.log  و tail -f ~/.liquid/liquidv1/debug.log  صورت می پذیرد.

نحوه اتصال اطلاعات ورودی

راه اندازی این بخش بسیار ساده است. تنها لازم است peginaddress را در liquidd   جهت ارسال بیت کوین خود ثبت نمایید.

$ liquid-cli getpeginaddress

این دستور، آدرس مرتبط با اطلاعات ورودی و مطالبات نوشتاری را تولید می کند.

در صورتی که peginaddress  در کیف پول فرد درخواست کننده نباشد (به عنوان مثال در مواردی که peginadddress  در یک کامپیوتر آفلاین تولید شده و در کامپیوتر دیگری ثبت شود)، ثبت درخواست به صورت script الزامی ست.

زمانی که یک آدرس تولید شد، می توانید بیت کوین خود را به آن انتقال دهید. جهت حفظ امنیت، تایید 102 بلاک بیت کوین در تکمیل روند اتصال اطلاعات ورودی ضروری ست. مقدار خروجی با سرعتی به مراتب بالاتر و با تایید 2 بلاک لیکوئید تکمیل می شود، اما این کار تنها از طریق اعضای اکسچنج لیکوئید می تواند صورت گیرد.

درخواست L-BTC

زمانی که 102 بلاک بیت کوین استخراج شد، می توانید از زنجیره جانبی درخواست L-BTC دهید. دو الزام برای انجام این کار وجود دارد. (زمانی که از کیف پولی که peginaddress در خود ندارد درخواست اسکریپت صادر شود، این موضوع یک انتخاب خواهد بود.)

– هش جدید در تراکنش ورودی (در فرمت هگزا دسیمال)

– یک تایید از خروجی تولید شده در فرمت تکست

– گزینه انتخابی: اسکریپت درخواستی تولید شده از طریق getpeginaddress

زمانی که موارد فوق انجام شد، می توانید از liquid-cli برای درخواست L-BTC استفاده نمایید.

> liquid-cli claimpegin “0200000002b80a99d63ca943d72141750d983a3eeda3a5c5a92aa962884ffb141eb49ffb4f000000006a473044022031ffe1d76decdfbbdb7e2ee6010e865a5134137c261e1921da0348b95a207f9e02203596b065c197e31bcc2f80575154774ac4e80acd7d812c91d93c4ca6a3636f27012102d2130dfbbae9bd27eee126182a39878ac4e117d0850f04db0326981f43447f9efeffffffb80a99d63ca943d72141750d983a3eeda3a5c5a92aa962884ffb141eb49ffb4f010000006b483045022100cf041ce0eb249ae5a6bc33c71c156549c7e5ad877ae39e2e3b9c8f1d81ed35060220472d4e4bcc3b7c8d1b34e467f46d80480959183d743dad73b1ed0e93ec9fd14f012103e73e8b55478ab9c5de22e2a9e73c3e6aca2c2e93cd2bad5dc4436a9a455a5c44feffffff0200e1f5050000000017a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87e86cbe00000000001976a914a25fe72e7139fd3f61936b228d657b2548b3936a88acc0020000”, “00000020976e918ed537b0f99028648f2a25c0bd4513644fb84d9cbe1108b4df6b8edf6ba715c424110f0934265bf8c5763d9cc9f1675a0f728b35b9bc5875f6806be3d19cd5b159ffff7f2000000000020000000224eab3da09d99407cb79f0089e3257414c4121cb85a320e1fd0f88678b6b798e0713a8d66544b6f631f9b6d281c71633fb91a67619b189a06bab09794d5554a60105” “0014058c769ffc7d12c35cddec87384506f536383f9c”

تعریف دارایی

اعتبار بخشیدن به یک دارایی از این طریق در مقایسه با سایر پلتفرم ها، به شکل جالبی آسان است.

$ liquid-cli issueasset 1000 1 true

با استفاده از این دستور می توان 1000 واحد از یک دارایی (توکن با قابلیت بازیافت) تولید نمود که کالا می تواند خصوصی باشد. بنابراین می توانید یک کالای خصوصی تعریف کنید و آن را (با حفظ حریم خصوصی و مانند یک تراکنش معمولی در شبکه لیکوئید) توزیع کنید. می توانید نحوه اعتبارات را به صورت عمومی (و غیر خصوصی) انتخاب کنید.

انتقال L-BTC هم مانند bitcoin-cli است. برای تولید یک آدرس خصوصی به این ترتیب عمل کنید:

$ liquid-cli getnewaddress

پس از دریافت آدرس مربوطه، L-BTC خود را ارسال کنید:

$ liquid-cli sendtoaddress  VTq74LvRzjwxqNg47UaJgCqm8go8diH6XtBZdgHhNhPGVRC8xVj8adnMLQ9NfwV87iUnJ5jni2wAQoYT 0.01

این دستور 0.01 لیکوئید بیت کوین را به آدرس نمایشی (که توسط نویسنده تولید شده)، ارسال می کند.

و یا یک دارایی:

$ liquid-cli sendtoaddress VTq5YvHXHq4rsSVQNuGVC4ahrd25c1XrPqv59DBD73u9ZKbk2g6794Ge9zEKcR3zVaTR3diahW6S3vyx 0.01 “giveaway” “@RobEdb” false e33b0c87afdef7e0d942daf1d9735b9a79ddefc10a3a631783f397f86f418278

این دستور 0.01 از موجودی یک دارایی (که در اینجا Grubles Tickets است) را به حساب @RobEdb ارسال می کند.

توجه!
مطالب صرفا برای اهداف خبری و آموزشی ارائه می شوند و نباید به عنوان مشاوره ی تجاری از طرف کوین ایران و نویسندگانش مورد استفاده قرار گیرند.

Source & Image