Blockchain Yerleşimcileri
Bölüm 1: Catan’dan Dersler
Agoric akıllı sözleşme platformunda yaptığımız önemli bir ayrımdan bahsetmek istiyorum ama önce Settlers of Catan’dan bahsetmek istiyorum . Tabii ki, Settlers of Catan için ticaret çok önemlidir — bu eğlencenin bir parçası — yani bu yaptığım ezoterik bir bağlantı değil.
Oyunu oynadıysanız ve blok zinciri platformlarının kodlanmasıyla ilgili bir blog yazısı okuyorsanız, büyük olasılıkla oynamışsınızdır — o zaman aşağıdaki durumu biliyorsunuzdur. Pat ve Terry bir oyunda iki oyuncudur ve sıra Pat’tedir:
Pat: “3 koyunu 4 tuğlaya değişmek istiyorum. Buna hazır kimse var mı?”
Terry: “Tabii ki. 3 koyunum var. Onlar için bana 5 tuğla verir misin?”
Pat: “Hayır, hayır. koyunlarım var Tuğla arıyorum. Üzgünüm anlatamadım galiba.”
Bu netlik eksikliği Catan’da doğal bir olaydır . Bir Catan seansına ev sahipliği yaptığımda , bir süre önce oyunun başında şunu belirtmeyi öğrendim: “Takaslar sırasında net olalım. Bir takas yapmak istediğinizde, ‘X’im var ve Y’yi istiyorum’ demek daha iyi olur.” Bu muhtemelen kulağa bariz geliyor, ancak yine, Catan’ı oynadıysanız , Abbott ve Costello’nun bu konuşmaların nasıl gerçekleşebileceğini bilirsiniz. oyuncular kullandıkları kelimeler ve bu kelimeleri kullandıkları sıra konusunda spesifik değilse.
Ev sahipliği yaptığım bir oyunda, yukarıdaki konuşmanın şu şekilde olması daha muhtemel:
Pat: “3 koyunum var ve 4 tuğla arıyorum. Biriniz bu ticarete hazır mı? ”
Terry: “3 tuğlam var. Bu senin için uygun mu?”
Pat: “Tabii şey. Bu bir anlaşma.”
Bu tür bir kafa karışıklığını gidermek benim için önemli bir dersti ve yazılım parçaları arasındaki konuşmaları nasıl yöneteceğimi düşünmemde rol oynuyor. Catan’ı yüz yüze oynamak size ses ve jestleri içeren bir kelime hazinesi verir. Buna karşılık, yazılım tasarımcıları olarak, yazılım aracıları arasında benzer ayrımları farklı bir şekilde yapmak zorundayız.
2. Bölüm: Netlik Nasıl Önemlidir?
Yukarıda tarif ettiğim gibi kafa karışıklıkları bizi tekliflerimizin koşulları konusunda net olmaya zorlar ve bu da basit bir retorik kurala indirgenir: Sahip olduğunuz ve istediğiniz şey arasında net bir ayrım yapın. Böyle bir yapıya uyarsanız , Catan’da anlaşılacağınızdan neredeyse eminsiniz .
Oyunda oyuncuların her zaman açıkça ne tür bir kart olduğunu söylediğine dikkat edin. Şaşırtıcı bir şekilde, uzun süredir devam eden birçok finansal sistem bu ayrımı tutarlı bir şekilde yapmaz. Bir masa oyununda bu bir güçlükse, yalnızca ciddi finans ortamı olduğunda sonuçları hayal edebilirsiniz.
1970'lerde Manhattan’da bankacılık yazılımı yazdıysanız, dolar cinsinden çalıştığınızı varsaydınız. Sonra, hayal edin, bir gün çalıştığınız şirketin CEO’su, bankanızın pazarını yen’i de içerecek şekilde genişletmeye karar verdi: aniden sisteminiz göreve uygun değildi. Bu, geçmişe bakıldığında düzeltmeniz gereken bir karışıklıktı. Bugün daha doğal olarak türü de miktara dahil edebiliriz.
Agoric, ekonomik faaliyet için blok zinciri tabanlı bir platform inşa ediyor, bu da ödemeleri göndermemiz ve tanımlamamız gerektiği anlamına geliyor. Agoric platformunda diğer kullanıcılara ödeme gönderiyoruz ve miktarları kullanarak “ne kadar ve neyin” olduğunu açıklıyoruz . Hem ödemeler hem de tutarlar JavaScript nesneleridir ve aynı şekilde iletilirler, ancak ödemeler ve tutarlar çok farklı şeyleri temsil eder. Şimdi bunu inceleyelim.
Bölüm 3: Yararlı Bir Ayrım
Catan dersinin yazılıma nasıl uygulandığı aşağıda açıklanmıştır . In Catan , sen Pat ve Terry etkileşiminde böyle koyun gibi yararlı bir şeyler temsil kartları ve tuğla kullanın. Bir teklife bir ödemeyi dahil etmek, onlara ne kadar ödeyebileceğinizi söylemek için birine üç koyun kartı vermeye benzer. Yazılımda, fiziksel ipuçları mevcut değildir. Yüz yüze olduğunuzda, bir miktarı açıklamakla kartları teslim etmek arasındaki farkı anlayabilirsiniz. Yazılım geliştirmede, bu ayrımı kodun kendisinde oluşturmamız gerekiyordu.
Bunu, tekliflerdeki tutarları ve tekliflerdeki ödemeleri dahil ederek yapıyoruz. Sözleşme çerçevemiz Zoe, teklifleri ne kadar istediğinizin ve karşılığında ne kadar vermeyi kabul ettiğinizin bir açıklaması olarak ele alır . Bir teklif , ticareti yürürlüğe koymak için anlaşmanın kendi tarafınızı gerçekten ortaya koyma şeklinizdir. (Bir teklifteki ödemenin gerçek bir değer aktarımı oluşturması, OCaps’in büyüsü nedeniyle mümkündür. OCaps hakkında daha fazla bilgi için Chip Morningstar tarafından yazılan açıklamaya bakın . (Chip ayrıca Agoric’te bir mühendistir.)
Bu göründüğü kadar basittir: JavaScript gibi bir nesne dilinde ödemeler ve tutarlar, sıradan mesajlarla gönderilen sıradan nesnelerdir.
Bu ayrım, tekliflerle birlikte miktarlar göndermemizi sağlar. Tutarlar, hakları devretmeden bir varlığı tanımlar. Daha sonra teklifi yazdığımızda, jetonun ödemesini dahil ederiz ( Catan’da bu, diğer oyuncuya kartı verdiğimizde olur), bu da jetonu gerçekten transfer eder (platformumuzda bu, Zoe’ye transfer anlamına gelir ve daha sonra emanet edilecektir). nihai alıcıya aktarmadan önce).
4. Bölüm: Oynamak İstiyor musunuz?
Gerçek varlıkları taşıyan ve elinde tutan ödemeler ve cüzdanlar ile yalnızca bunları tanımlayan tutarlar arasındaki ayrım Zoe için temeldir. Bunun, herhangi bir kişinin belirli bir marka için keyfi bir miktar yaratabileceği gerçeği gibi sonuçları vardır, çünkü miktarı elinde tutmak veya paylaşmak hiçbir hak taşımaz. Ödeme oluşturma veya aktarma yeteneği yakından korunur. Bu ayrım, Agoric’i blok zinciri ve akıllı sözleşmeler dünyasında özel yapan şeyin merkezinde yer alır. Zincirimizi nasıl oluşturacağınız hakkında daha fazla bilgi edinmek istiyorsanız , bir sonraki adımı atmak için en iyi yer ERTP ile ilgili belgelerdir .
Okuduğunuz için teşekkürler! Agoric topluluğuna Twitter , Telegram , LinkedIn’de katılabilir ve bu yaklaşan etkinliklerde bizi yakalayabilirsiniz .