كارتيزي ونظام تشغيل Linux : تمكين المطورين في مجال البلوكتشين.
Ayman
2024-09-06
CARTESI
كارتيزي ونظام تشغيل Linux : تمكين المطورين في مجال البلوكتشين.
- تعد Ethereum واحدة من أولى السلاسل التي تدعم التطبيقات اللامركزية - dApps، حيث يتم بناء الواجهة الخلفية للتطبيقات على "عقد ذكي" ولديها أحداث على السلسلة ليتم تنفيذها.
لمعالجة معضلة البلوكتشين - تم دمج قابلية التوسع واللامركزية والأمان و حلول مختلفة من الطبقة 2 (L2).
تعالج هذه الحلول من الطبقة 2 المعاملات خارج السلسلة وتستخدم إيثيريوم كطبقة توفر للبيانات. ومع ذلك، في حين تهدف الحلول من الطبقة 2 إلى توسيع نطاق إيثيريوم ، إلا أنها لا تحل مشكلة التوسع الحسابي بالكامل. لا تزال عمليات التجميع، على الرغم من عملها خارج السلسلة، تعتمد على الجهاز الإفتراضي للإيثيريوم لمعالجة المعاملات، مما يؤدي إلى رسوم غاز أعلى. هناك بعض التحديات التي تواجهها معظم عمليات التجميع:
--- موارد الحوسبة: تتطلب عمليات التجميع، وخاصة عمليات التجميع المتقدمة، خطوات حوسبة إضافية لتوليد وإثبات صحة الدليل. يتضمن ذلك تنفيذ نفس المعاملات خارج السلسلة ثم إرسال الأدلة إلى السلسلة الرئيسية، مما يضيف تكلفة حسابية.
--- إدارة الحالة: يتطلب الحفاظ على الاتساق بين حالة L2 وحالة السلسلة الرئيسية لإيثريوم موارد حسابية كبيرة. على سبيل المثال، يجب أن تولد عمليات التجميع zk أدلة معرفة صفرية، والتي تتطلب الكثير من الحساب.
--- التزامات البيانات: غالبًا ما تلتزم عمليات التجميع بالبيانات في إيثريوم (المشار إليها أعلاه باسم بيانات الاتصال) لضمان توفر البيانات ودقتها. عندما تكون السلسلة الرئيسية مزدحمة، يمكن أن تصبح هذه الالتزامات مكلفة وبطيئة، مما ينفي بعض فوائد استخدام L2.
كارتيزي هو حل تجميع خاص بالتطبيق مع وقت تشغيل Linux الخاص به، مما يوفر قوة حسابية كاملة لجهاز افتراضي مخصص للتطبيقات اللامركزية وتوسيع مساحة التصميم خارج إيثريوم. مع تحول العديد من الحلول والتطبيقات اللامركزية إلى نهج معياري، يمكن نشر Cartesi Rollups في بيئة مكونة معيارية: كحل من الطبقة 2 أعلى الإيثيريوم ، أو كحل من الطبقة 3 أعلى منصات مثل Arbitrum أو Optimism أو Base أو سلاسل ZK-EVM، أو كمجموعة سيادية.
من خلال الاستفادة من كارتيزي، يمكن للمطورين أيضًا الاستفادة من مجموعات البرامج ولغات البرمجة الموجودة التي لا تدعمها EVMs وتقليل الاحتكاك لكل من المطورين، وتقديم تجربة مستخدم يمكن دعمها بتدفقات web2-centric الأصلية.
تجزئة المطورين حقيقية!
على الرغم من أن نظام إيثيريوم البيئي يعتبر ضخمًا إلى حد كبير، بناءً على تقرير من Statista، فإن 1.1٪ فقط من إجمالي المطورين يكتبون بلغة Solidity، بينما لا يزال 51٪ منهم يبنون تطبيقات باستخدام Python. بناءً على هذا الاختلاف، يمكن للمرء أن يستنتج أنه ليس من الصعب فقط دمج مطورين جدد، بل وأيضًا تحويل المطورين الكبار لتعلم لغة برمجة جديدة فقط للعقود الذكية. بعبارة أخرى، فإن مساحة تصميم EVM مقيدة للغاية عندما يتعلق الأمر بتطوير العقود الذكية بلغات مثل Solidity وVyper، وهو ما قد لا يكون دافعًا كبيرًا للمطورين لتعلم والخوض في مجال البلوكتشين. دعونا لا ننسى أن المطورين يحتاجون إلى معرفة مسبقة بلغة برمجة واحدة على الأقل من أجل اكتساب مهارات لغة أخرى وأن تطوير التطبيقات اللامركزية dApps لا يزال يستخدم المكتبات والأطر مثل React التي تعمل على نفس منطق تطبيقات web2.
أفضل حل يمكن أن يوجد للمطورين ليس لغة جديدة، بل الاستفادة من مجموعة البرمجة التي يعرفونها بالفعل ويشعرون بالراحة في تطوير التطبيقات فيها. نحن نتحدث عن دمج ملايين المطورين في web3، ولا ينبغي أن تكون مهمة المطور قضاء الوقت وفهم الأدوات المختلفة خصيصًا للتطبيقات القائمة على EVM. تقدم كارتيزي حلاً رائعًا من خلال تجريد الحواجز اللغوية. بصفتك مطورًا، لا يزال بإمكانك استخدام لغات مثل Python و Rust و JavaScript ودمج مكتبات مفتوحة المصدر مختلفة لبناء تطبيقات المستخدم.
فهم Cartesi Rollups من كارتيزي
تعالج عمليات التجميع من كارتيزي الاحتياجات الحرجة في مجال البلوكتشين من خلال توفير طبقة تنفيذ معيارية تعمل على تعزيز قابلية التوسع والأداء للتطبيقات اللامركزية (dApps) بشكل كبير. مع عمليات التجميع من كارتيزي، يعمل كل تطبيق لامركزي على سلسلة تطبيقات التجميع عالية الأداء الخاصة به، والمجهزة بوحدة معالجة مركزية مخصصة، مما يضمن عدم وجود منافسة على الموارد داخل نظام كارتيزي البيئي. يسمح هذا التصميم بإمكانية توسع حسابية كبيرة مع الحفاظ على الأمان القوي لسلسلة الكتل الأساسية.
تستخدم عمليات التجميع من كارتيزي نموذج تجميع متفائل، يستفيد من إثباتات الأخطاء لإدارة وحل النزاعات، مما يضمن معالجة موثوقة وفعالة. يتكون الإطار من مكونين رئيسيين: طبقة القاعدة على السلسلة، حيث يوجد عقد التطبيق اللامركزي (على سبيل المثال، الإيثريوم )، وطبقة التنفيذ، حيث يتعامل كارتيزي مع الحسابات خارج السلسلة. إذا كنت تريد التعمق في بنية كارتيزي لفهم كلا المكونين، فيمكنك إلقاء نظرة على هذه الوثائق.
جلب قوة المصدر المفتوح إلى التطبيقات اللامركزية من خلال كارتيزي
يلعب المصدر المفتوح دورًا كبيرًا جدًا في صناعة التكنولوجيا. كان Linux أحد أول أنظمة التشغيل التي كانت مفتوحة المصدر حقًا وأحدثت تحولًا نموذجيًا في البرمجيات التجارية. ما بدأ كمشروع شخصي في عام 1991، اتخذ Linux منعطفًا تدريجيًا ليصبح إصدارًا مفتوح المصدر قابلًا للتوزيع بحرية من UNIX. كان متطلب الموارد منخفضًا بشكل استثنائي ومنح المطورين الحرية لبناء تطبيقات مختلفة بناءً على احتياجاتهم. كان Linux "معياريًا" بما يكفي لتوزيعه عبر النظام البيئي بأكمله.
على سبيل المثال، سمح استخدام Linux Kernel وإقرانه بحزم البرامج والأطر والتكوينات للمطورين بإنشاء برامج أحدث. كان Ubuntu أحد أنظمة التشغيل الشهيرة التي تم إصدارها في عام 2004.
تعتمد معظم المكتبات الحالية على أنظمة تشغيل محددة مثل MacOS أو Linux. اعتمدت المؤسسات المصرفية والمالية منذ فترة طويلة على أنظمة التشغيل واللغات المخصصة مثل Java و C و COBOL و FORTRAN و Assembly للبرامج المهمة.
إن إستخدام Linux في تطوير البلوكتشين قد يدفع الابتكار في DeFi والألعاب والأدوات نظرًا لمرونته وأمانه. هناك أكثر من 1000 مكتبة مختلفة متاحة هنا على pypi.org تم إنشاؤها خصيصًا لمطوري البلوكتشين الذين يقومون بالتطوير بلغة Python.
فيما يلي بعض الخوارزميات والمترجمين المثيرين للاهتمام الذين يمكن للمرء أن يستخدمهم أثناء استخدام البنية التحتية لكارتيزي وبناء dApps.
--- راست rustc (Rust Compiler): تكتسب Rust شعبية في تطوير اللوكتشين بسبب ميزات أمان الذاكرة والتزامن. rustc أمر بالغ الأهمية لتجميع العقود الذكية ومكونات البوكتشين الأخرى التي تؤكد على الأمان والأداء.
--- جلاسكو هاسكيل Glasgow Haskell Compiler (GHC): تشتهر Haskell بنظام النوع القوي ونموذج البرمجة الوظيفية. يمكن استخدام GHC في تطوير البلوكتشين لبناء عقود ذكية ونماذج مالية قوية ومُتحقق منها رياضيًا، مثل تلك الموجودة في Cardano.
--- استخدام خوارزميات الضغط: غالبًا ما تتعامل أنظمة البلوكتشين مع كميات كبيرة من البيانات، من سجلات المعاملات إلى كود العقد الذكي. يعد ضغط البيانات الفعّال أمرًا ضروريًا لتقليل متطلبات التخزين وتحسين أداء الشبكة. يمكن استخدام خوارزميات الضغط مثل gzip و bzip2 و xz و lz4 لضغط بيانات البلوكتشين قبل تخزينها على القرص أو نقلها عبر الشبكة. يعتمد اختيار الخوارزمية على الاحتياجات المحددة لنظام البلوكتشين - سواء كانت تعطي الأولوية للسرعة أو تقليل استخدام ذاكرة الوصول العشوائي أو الحد الأدنى من تحميل وحدة المعالجة المركزية.
--- استخدام المحركات: يدعم Linux أيضًا مجموعة متنوعة من المحركات، في المقام الأول في صناعة الألعاب مثل FlaxEngine و Panda3D، ولكن لديك أيضًا محركات Docker لتشغيل الحاويات داخل التطبيقات عندما تريد تحقيق التوسع على مستوى التطبيق ككل.
كما قدم Linux مساهمات كبيرة من خلال إصدار المزيد من المكتبات مفتوحة المصدر مثل Hyperledger Fabric وهو برنامج موزع و Hyperledger IROHA وهي منصة مكتوبة بلغة C++ تستخدمها المؤسسات المالية لإدارة الأصول الرقمية.
تجريد المطور والتوسع المعياري مع كارتيزي
ستساعد الآلة الافتراضية المخصصة لكل تطبيق المطورين على عدم القلق بشأن الأدوات والتوسع العام. آلة كارتيزيهي آلة افتراضية مصممة للتعامل مع العمليات الحسابية خارج السلسلة لتطبيقات البلوكتشين. تستخدم آلة Cartesi RISC-V ISA، وهي مجموعة من تعليمات المعالج مفتوحة المصدر. تعمل بشكل منعزل، مما يعني أنها تعمل بشكل مستقل ويمكن إعادة إنتاجها باستمرار. يمكن للمرء تطوير معالجات مخصصة لمجموعة متنوعة من التطبيقات، من التصميمات المضمنة إلى أجهزة الكمبيوتر العملاقة.
--- تنفيذ التعليمات البرمجية: تقوم بتشغيل التعليمات البرمجية بناءً على مدخلات محددة لإجراء العمليات الحسابية أو معالجة البيانات أو تنفيذ المنطق المخصص وفقًا لمتطلبات المهمة.
--- بناء تطبيقات العالم الحقيقي - باستخدام الطبقة المجردة من البنية الأساسية لـ EVM، يمكن للمطورين التركيز على بناء تطبيقات لامركزية يمكنها الاستفادة من الموارد الحسابية بناءً على احتياجاتهم.
--- مساحة تصميم موسعة للمطورين: لا حدود للسماء عندما يتعلق الأمر بكارتيزي، حيث يمكنك استخدام لغات مثل C++ أو Rust أو Go أو Typescript أو Python وبناء تطبيقات على السلسلة دون متاعب العقود المحددة.
أفضل طريقة للبدء في البناء باستخدام كارتيزي هي التحقق من Cartesi CLI أو تجربة دورة Udemy الخاصة بكارتيزي.
كيف يقوم المطورون بالبناء باستخدام Cartesi؟
ينمو نظام كارتيزي البيئي باستمرار مع التطبيقات اللامركزية القوية، حيث يقوم المطورون بالبناء بشكل كبير باستخدام مجموعات تقنية موجودة من البنية التحتية لـ web2. يعمل دمج Cartesi Rollups على تعزيز تطبيقاتهم، مما يزيد من فرصهم في التركيز بشكل أكبر على المستخدم وقدرتهم على التطوير باستخدام مجموعات تقنية مختلفة.
--- راست نيبيولا Nebula Duel (Rust): تشتهر Rust بأدائها وسلامتها، مما يجعلها مثالية لتطبيقات البلوكتشين المعقدة. يسمح لكارتيزي مع Linux لـ Nebula Duel بالاستفادة من ميزات Rust المتقدمة في بيئة Linux المألوفة، مما يوفر التحكم منخفض المستوى اللازم للتطبيقات اللامركزية عالية الأداء. بدون كارتيزي، سيكون دمج قوة Rust في البلوكتشين أكثر تعقيدًا ومحدودية.
--- تيرتليش Turtlish (Python مع Matplotlib): Matplotlib هي مكتبة قوية لتصور البيانات في Python. يسمح لكارتيزي مع Linux لـ Turtlish بتشغيل Matplotlib بشكل أصلي، مما يتيح تحليلات رسومية متطورة داخل تطبيق لامركزي. بدون كارتيزي، سيكون تنفيذ مثل هذه التصورات المتقدمة مباشرة على السلسلة مستحيلًا تقريبًا بسبب قيود العقود الذكية التقليدية.
--- Comet (JavaScript/TypeScript): يعد JavaScript ضروريًا للتطوير السريع ونشر منطق الأعمال، مع تمكين مكتبات مثل viem من التكامل السلس مع Web3. يتيح كارتيزي مع Linux لـ Comet استخدام هذه الأدوات في بيئة قوية وقابلة للتطوير، مما يسمح للمطورين بطرح تطبيقاتهم اللامركزية في السوق بشكل أسرع. بدون كارتيزي، سيجد المطورون صعوبة في تحقيق نفس مستوى الكفاءة والتكامل داخل مساحة البلوكتشين.
--- الشطرنج OnChess (TypeScript): يوفر TypeScript فوائد الكتابة الثابتة مع مرونة JavaScript. يسمح كارتيزي مع Linux لـ OnChess بالاستفادة من نقاط قوة TypeScript في بيئة لامركزية، مما يضمن تطوير عقود ذكية موثوقة وقابلة للصيانة. بدون كارتيزي، سيكون استخدام TypeScript بشكل فعال في البلوكتشين أكثر تحديًا.
--- DeVolt (Go): تشتهر Go بميزات التزامن والكفاءة، مما يجعلها مثالية للتطبيقات اللامركزية التي تتطلب أداءً عاليًا. يسمح لكارتيزي مع Linux لـ DeVolt بتشغيل تطبيقات Go بشكل أصلي، والاستفادة الكاملة من قدرات Go بطريقة آمنة وقابلة للتطوير. بدون كارتيزي ، ستعيق قيود بيئات البلوكتشين الحالية الاستخدام الكامل لـ Go في التطبيقات اللامركزية.
إذا كنت تقوم بالبناء على كارتيزي ، فيمكنك التقدم لعرض مشروع هنا.
الملخص من موضوعنا:
يهدف Web3 إلى أن يكون نسخة لامركزية من تقنيات الإنترنت أو Web2 الحالية، حيث يتحكم المستخدمون في بياناتهم ويملكونها منذ البداية. لطالما وضع المطورون ثقتهم في طبيعة Linux مفتوحة المصدر، ويثمنون الحرية والمرونة التي يوفرها. يوفر Linux مجموعة غنية من الأدوات والمكتبات وبيئة تطوير ناضجة، مما يعزز قدرات التطبيقات اللامركزية.
توفر كارتيزي الفرصة للمطورين لاستخدام ميزات Linux هذه مباشرة داخل بيئة البلوكتشين والتحرر من قيود مساحة تصميم آلة الإيثيريوم الإفتراضية EVM. مع كتل البناء المعيارية التي تسمح للمطورين باختيار لغات البرمجة والمجموعات التقنية المفضلة لديهم، بشكل مستقل عن البنية التحتية التقليدية للبلوكتشين، ترحب كارتيزي بمزيد من المطورين ويسرع نمو الابتكار في مساحة Web3.