انواع دیتابیس ها برای استفاده در بلاک چین

دیتابیس هایی که در بلاک چین استفاده می شوند رو بررسی کنیم. همانطور که می دونید سیستم دیتابیس برای ذخیره تراکنش ها در بلاک چین استفاده می شود. دیتابیس هایی که در ادامه گفته می شود دارای ویژگی های متفاوتی هستند.

 

 

سلام، وقتتون بخیر. علی هستم برنامه نویس تیما. امروز می خواهیم با هم دیتابیس هایی که در بلاک چین استفاده می شوند رو بررسی کنیم. همانطور که می دونید سیستم دیتابیس برای ذخیره تراکنش ها در بلاک چین استفاده می شود. دیتابیس هایی که در ادامه گفته می شود دارای ویژگی های متفاوتی هستند و بر اساس همین ویژگی ها، می توانیم دیتابیس لازمه برای بلاک چین مورد نظر را انتخاب کنیم.

 

دیتابیس های رابطه ای یا Relational:

  • PostgreSQL یک سیستم مدیریت دیتابیس رابطه ای (RDBMS) رایگان و Open Source است. این سیستم، تعداد زیادی از انواع داده های متفاوت را دارد و از اشیاء که توسط خود کاربران تعریف می شود هم پشتیبانی می کند. این مورد برای ما بسیار مفید است، زیرا که می توانیم فایل ها و دارایی های بلاک چین را توسط این مورد، تعریف کنیم. این سیستم بسیار ماژولار و توسعه پذیر است و از انزوا و Isolation در سطح های مختلف هم پشتیبانی می کند. از این سیستم برای ساخت دیتابیس های رابطه ای تحت بلاک چین هم استفاده شده است، طوری که Replica ها و یا بدل ها توسط ارگان های مختلفی مدیریت می شوند که بهم اعتمادی ندارند.

 

  • MySQL و همراهان آن، MariaDB را توسعه دادند که یک سیستم رابطه ای Open Source است که ویژگی های پیشرفته ای از قبیل Replication یا همانندسازی و Clustering یا خوشه بندی دارد. OurSQL یک سرور است که به دیتابیس MySQL متصل می شود و این سیستم، ترکیب دیتابیس MySQL و بلاک چین است. همچنین OurSQL برای برنامه های تحت بلاک چین خصوصی یا Private هم استفاده می شود.

 

  • SQLite یک سیستم Embed یا تعبیه شده است که به صورت رابطه ای است و از ACID تبعیت می کند. این مورد برای استفاده به صورت محلی یا Local و تعبیه شده در بلاک چین بسیار مناسب است. CovenantSQL یا CQL یک سیستم توزیع شده، مورد اطمینان و بر اساس GDPR (general data privacy regulation) است و بر روی SQLite تعبیه شده است. از این آیتم در زمانی استفاده می کنیم که نمی خواهیم هزینه زیادی پرداخت کنیم، که به آن Low Cost DBaaS گفته می شود یعنی دیتابیس به عنوان سرویس کم هزینه. CQL دارای لایه هایی در معماری خود است که این لایه ها شامل Global Consensus Layer یا لایه اجماع سراسری، SQL Consensus Layer یا لایه اجماع SQL و Datastore Layer یا لایه ذخیره داده می شود. Dqlite یا همان نسخه توزیع شده SQLite یک سیستم Open Source، سریع، Disk-base (یعنی دارای حافظه برای ذخیره داده است و باید برای پردازش با حافظه اصلی برود) است. این آیتم برای سیستم های IOT که نیازمند آستانه خطا بالایی هستند و دستگاه های لبه یا Edge مناسب است. RQLITE نیز یک سیستم Open Source، سبک یا Lightweight، دارای آستانه خطا بالا و دیتابیس رابطه ای توزیع شده است. این سیستم، اجازه می دهد که به صورت پویا یا Dynamic، کلاستری از نود ها بسازیم و امکان رمزگذاری نود به نود یا node-to-node encryption را به ما می دهد. RQLITE یکی از گزینه های مناسب برای سیستم های Light weight یا سبک بلاک چین است.

 

دیتابیس های NoSQL:

·        MongoDB بیشترین رشد را در بین دیتابیس های Document-based داشته است. توزیع پذیری این سیستم، آن را برای ساختن پلتفرم های دیتابیس تحت بلاک چین ایده آل می کند. این دیتابیس، ویژگی هایی از جمله انعطاف پذیری یا Flexibility، مقیاس پذیری بالا یا High Scalability، امنیت بالا، توانایی انجام کوئری های پیچیده دارد. به خاطر ویژگی های قدرتمندی که این سیستم دارد، توسط بسیاری از برنامه های پیشتاز امروزی استفاده  می شود. نسخه Enterprise این دیتابیس، از رمزنگاری، Sharding، کنترل دسترسی یا Access Control و حسابرسی یا Auditing پشتیبانی می کند. ProvenDB خاصیت های لایه بلاک چین را به MongoDB اضافه می کند. EthernityDB هم می تواند استفاده شود تا عملکرد های دیتابیس را توسط مدل سازی قرارداد های هوشمند در بلاک چین اتریوم یکپارچه کند. لازم به ذکر است که EthernityDB از MongoDB برای ادغام شدن با قرارداد های هوشمند اتریوم استفاده می کند.

 

·        CouchDB یک حافظه ذخیره سازی داده به صورت کلید-مقدار یا Key-Value است که قابلیت هایی مثل Rich Query را مانند MongoDB ارائه می دهد. Hyperledger Fabric که یک پلتفرم Open Source بلاک چین لینوکسی است، از CouchDB برای ذخیره کد ذنجیره تراکنش پردازش شده به عنوان جفت کلید-مقدار استفاده می کند. Hyperledger Composer که یک سری ابزار برای ساخت شبکه های بلاک چین هستند هم از CouchDB برای تبدیل کوئری های SQL به کوئری های JSON سیستم CouchDB استفاده می کند.

 

·        QLDB محصول شرکت آمازون، یک دفترکل یا Ledger دیتابیس است که ویژگی های زیادی از بلاک چین را در خود دارد. این آیتم دارای ویژگی هایی از جمله مقاوم در برابر تغییرات، شفاف سازی و رمزنگاری های خاص بلاک چین برای تایید تراکنش ها است. QLDB از توزیع پذیری محروم است و این مورد سبب شده تا الگوریتم های اجماع یا Consensus را نداشته باشد. از طرفی برای مواردی هم که نیاز به اجماع ندارند و ویژگی Immutability یا تغییر ناپذیری را می خواهند، انتخاب مناسبی است. این سیستم از کوئری های SQL پشتیبانی می کند.

 

·        Apache Cassandra یکی از محبوب ترین دیتایس های NoSQL است که توسط شرکت متا (فیس بوک سابق) توسعه داده شده است. این دیتابیس در حال حاضر توسط شرکت های بزرگی از جمله نتفلیکس، اینستاگرام، گیت هاب و eBay در حال استفاده است. این مورد یک سیستم تمام توزیع شده است، عملکرد بسیار مناسبی دارد، پایایی و آستانه خطا بالایی دارد بدون اینکه در دسترس بودنش را از دست بدهد. Cassandra از زبان کوئری خودش که CQL نام دارد، استفاده می کند تا با سیستم ارتباط برقرار کند. در موقع برقراری اثبات یا Consistency، Cassandra از تراکنش های Light Weight هم پشتیبانی می کند.

 

·        TiesDB یک دیتابیس عمومی، توزیع شده و غیر متمرکز است. در واقع این دیتابیس بر اساس یک سری تغییرات بزرگ روی Cassandra ایجاد شده است. این مورد برای انتخاب یک NoSQL بسیار انعطاف پذیر است و به همین خاطر، بسیاری از ویژگی های آن دیتابیس را می گیرد. دارا بودن BFT یا Byzantine fault tolerance برای جلوگیری از دستکاری های خودسرانه، یکی از ویژگی هایی است که بقیه دیتابیس های NoSQL ندارند. سریع بودن، داشتن Shading، قراردادهای هوشمند و ساختار های تشویقی یا Incentive از ویژگی های برتر این سیستم است. از این سیستم برای ساخت برنامه های توزیع شده برای بازیابی سریع اطلاعات استفاده می شود.

 

·        Cosmos DB یا Azure Cosmos DB دیتابیسی توزیع شده، کاملا غیرمتمرکز و چند مدله از شرکت مایکروسافت (Microsoft) است. مدل های دیتابیس می توانند به صورت key-value باشند، یا گراف و یا حتی سند یا document. این سیستم Availability یا در دسترسی بودن و Consistency یا ثبات را همراه با SLA یا قرار داد های سرویس برای تضمین دقیق سرویس ها به ارمغان می آورد. بسیاری از سیستم ها و شرکت ها می توانند از این سیستم برای ساخت برنامه های بلاک چین غیرمتمرکز استفاده کنند و از مزایای این سیستم استفاده کنند.

 

·        HBase یک دیتابیس توزیع شده غیر متمرکز است که برای نگهداری و پردازش حجم بزرگی از داده ها استفاده می شود. HBasechainDB یک حافظه ذخیره داده بزرگ است که بر اساس طراحی و مفهوم بلاک چین ساخته شده است. این فریم ورک اجازه مدیریت و کنترل کردن داده های بزرگ بلاک چین را می دهد. HBaseChainDb بر اساس HBase کار می کند و قابلیت های بلاک چین از جمله غیرمتمرکز بودن و غیر قابل تغییر بودن را به HBase می دهد.

 

·        برخی دیگر از دیتابیس های NoSQL مهم برای استفاده در بلاک چین RethinkDB، RedisDB، AWS DynamoDB و Etcd هستند.

 

دیتابیس های NewSQL: این سیستم ها در واقع به صورت رابطه ای یا Relational و به صورت توزیع شده هستند که مفاهیم ACID را بدون در خطر انداختن مقیاس پذیری، ارائه می دهند. بعد از معرفی Google Spanner که اولین NewSQL بود، سیستم های NewSQL جدیدی شروع به معرفی شدن کردند. اینگونه سیستم ها برای ساختن برنامه های بلاک چین بسیار مناسب هستند. بعضی از NewSQL های مهم را در ادامه با هم بررسی می کنیم.

·        VoltDB یک NewSQL است که به صورت Open Source است. جدیدترین ورژن آن، ویژگی های زیادی را به همراه دارد. این سیستم از توابع SQL که توسط کاربر تعریف شوند، پشتیبانی می کند که می تواند برای قرارداد های هوشمند بسیار مفید باشد. این سیستم پشتیبانی از SQL را توسط recursive Common Table Expressions یا به اختصار CTE بازگشتی برای پیمایش رکورد های بلاک چین به ارمغان می آورد.

 

·        TiDB یا Titanium DB یک SQL دیتابیس Open Source و توزیع شده است که ثبات و در دسترسی بودن بالایی دارد. دارای طراحی ماژولار است که دارای سه ویژگی کلیدی cluster coordination یا هماهنگی خوشه ها، ذخیره کلید-مقدار ها و زمانبندی کوئری های SQL است.

 

·        CockroachDB نیز یک دیتابیس به صورت Open Source و از نوع کلید-مقدار است. از ACID به صورت کامل پشتیبانی می کند و دارای مقیاس پذیری است. همچنین این سیستم برای سریال سازی تراکنش ها از متود و پروتوکل 2-Phase commit استفاده می کند.

 

دیتابیس های مدرن که تحت تاثیر بلاک چین هستند:

  • FlureeDB یک دیتابیس تحت بلاک چین مقیاس پذیر است. این آیتم، بلاک چین را با دیتابیس document یا اسناد و گراف ها، ترکیب می کند. این دیتابیس، قابلیت دسترسی مستقیم بالایی را درون دیتابیس فراهم می کند. پشتیبانی از Sharding، مقاومت در برابر سانسور سازی، حریم خصوصی، میزباین ابری و استفاده از اجماع های مرکب از قابلیت های این مورد است که باعث می شود تا چندین دیتابیس به عنوان یک دیتابیس، کوئری بزنند. در این سیستم هر بلاک از داده ها در بلاک چین، نمایانگر یک زمان خاص است و به این زمان، Time-Travel گفته می شود. اکثر برنامه های کاربردی که نیازمند داده های پیچیده هستند می توانند از این سیستم و ویژگی هایش استفاده کنند.

 

  • Postchain ترکیبی از ویژگی های یک دیتابیس بالغ توزیع شده با بلاک چین است که پیاده سازی بلاک چین توسط Postchain و SQL ممکن می شود. ویژگی های قدرتمندی از جمله یکپارچگی، اعتبارسنجی، استقلال داده ها را همراه با ویژگی های ارث برده از دیتابیس دارد.

 

  • BlockchainDB یک لایه دیتابیس را روی بلاک چین پیاده سازی می کند و قابلیت های سیستم های دیتابیس مثل کوئری های SQL را افزایش می دهد. این مورد، قسمت هایی از حافظه بلاک چین را به صورت همتا به همتا در شبکه فراهم می کند.

 

  • ChainifyDB ویژگی های لایه بلاک چین را به دیتابیس اضافه می کند پس برنامه ها را بهبود می دهد تا به صورت توریع شده بر اساس دیتابیس تحت بلاک چین، ساخته شوند.

 

لازم به ذکر است که راه حل های دیگری نیز برای ارائه دادن و بهره بردن از قابلیت های بلاک چین نیز وجود دارند. به عنوان مثال، OrbitDB می تواند به عنوان یک انتخاب عالی برای برنامه های تحت بلاک چین یا غیر متمرکز استفاده شود که اصطلاحا به این نرم افزار ها dApps گفته می شود. با این وجود، بعضی از فعالیت ها به سمتی است که یک سری عملکرد خاص در بلاک چین اضافه شود. به عنوان مثال JainDB یک انبار داده یا Data Warehouse است برای اشیاء JSON و از سرویس های Rest API را برای برقراری ارتباط با حافظه داده های بلاک چین، استفاده می کند. vChain و VQL سرویس های کوئری مناسب و مطمئنی در سرویس های بلاک چین، ارائه می دهند. همچنین تمامی موارد گفته شده به طور خلاصه در جدول زیر هم آمده است:

 

 

امیدوارم که از این آموزش لذت برده باشید و براتون مفید واقع شده باشه. با ما همراه باشید تا با هم یک درصد بیشتر بدونیم.

نظرات ارزشمند خود را با ما به اشتراک بگذارید

نظرات :
هنوز نظری ثبت نشده است.