DAML – Ένα οικοσύστημα ανοιχτού κώδικα για τη δημιουργία έξυπνων κατανεμημένων εφαρμογών βάσει σύμβασης

Το DAML είναι ένα οικοσύστημα ανοιχτού κώδικα για τη δημιουργία κατανεμημένων εφαρμογών έξυπνων συμβολαίων πλήρους στοίβας. Η βασική έξυπνη γλώσσα της σύμβασης είναι μια λειτουργική γλώσσα ειδικά σχεδιασμένη για την περιγραφή ροών εργασιών διανεμημένων επιχειρήσεων. Το μοναδικό σημείο πώλησης της DAML είναι απλό – επικεντρωθείτε αποκλειστικά στη λογική της εφαρμογής χωρίς να ανησυχείτε για τη λιτότητα της υποκείμενης υποδομής, είτε πρόκειται για κατανεμημένο καθολικό, blockchain ή βάση δεδομένων. Πριν ασχοληθείτε με το DAML, ας αποκτήσουμε μια γρήγορη κατανόηση της βασικής τεχνολογίας και των έξυπνων συμβολαίων της.

Καθολικά, Blockchain και έξυπνα συμβόλαια

Ένα καθολικό είναι μια χρονικά σφραγισμένη σειρά αμετάβλητων αρχείων δεδομένων. Το Blockchain είναι το πιο γνωστό είδος διανέμονται καθολικό, ένα που διαχειρίζεται μια κοινοπραξία υπολογιστών και δεν ανήκει σε καμία οντότητα. Σε ένα blockchain, οι εγγραφές του καθολικού συσκευάζονται σε μια ακολουθία μπλοκ και κάθε μπλοκ καταχωρήσεων ασφαλίζεται και συνδέεται με το προηγούμενο μέσω κρυπτογραφικών αρχών. Τρεις ιδιότητες κάνουν το blockchain πραγματικά ξεχωριστό:

  • Διανέμονται: Το blockchain φιλοξενείται από ένα δίκτυο peer-to-peer. Κάθε κόμβος αυτού του δικτύου κατεβάζει και διατηρεί ένα αντίγραφο του blockchain στο σύστημά τους. Αυτό διασφαλίζει ότι όλα τα δεδομένα που είναι αποθηκευμένα μέσα στο blockchain είναι κοινόχρηστα από όλους και δεν αποθηκεύονται από μία, κεντρική οντότητα μέσα στο σύστημα.
  • Διαφάνεια: Εφόσον κάθε κόμβος στο δίκτυο αποθηκεύει μια έκδοση του blockchain, όλοι μπορούν να δουν τα δεδομένα που είναι αποθηκευμένα μέσα τους. Ως εκ τούτου, όλα τα δεδομένα μέσα στο blockchain είναι διαφανή.
  • Αμετάβλητο: Ένα άλλο συναρπαστικό πράγμα που πρέπει να θυμάστε εδώ είναι ότι μόλις εισαχθεί κάτι μέσα στο μπλοκ, δεν μπορεί να παραβιαστεί. Αυτή η ιδιότητα του blockchain ονομάζεται «αμετάβλητο».

Όπως ίσως γνωρίζετε ήδη, η τεχνολογία blockchain εμφανίστηκε με την έλευση του Bitcoin. Αυτή ήταν μια τόσο επαναστατική εφεύρεση που οι άνθρωποι άρχισαν να αναρωτιούνται εάν υπάρχει ένα σύνολο γειτονικών, ευρύτερων τεχνολογιών πέρα ​​από την αβέβαιη μεταφορά αξίας. Το Ethereum τελικά εισέβαλε στην αγορά κρυπτογράφησης και εισήγαγε τον κόσμο σε «έξυπνα συμβόλαια» αρκετά ευέλικτα για να γράψει ολόκληρες κατανεμημένες εφαρμογές ή dApps που υποστηρίζονται από ένα blockchain. 

Έξυπνες συμβάσεις – Φέρνοντας το blockchain στις μάζες

Σκεφτείτε τι είναι μια σύμβαση και πώς λειτουργεί με την παραδοσιακή έννοια. Η σύμβαση είναι ένα νομικά δεσμευτικό έγγραφο μεταξύ δύο μερών, το οποίο είναι επίσης νομικά εκτελεστό. Ένα έξυπνο συμβόλαιο λειτουργεί παρόμοια, εκτός από δύο τροποποιήσεις που αλλάζουν το παιχνίδι – οι κανόνες που ορίζονται από τη σύμβαση είναι αναγνώσιμοι και εκτελέσιμοι από μηχανήματα και εφαρμόζονται χρησιμοποιώντας ένα κατανεμημένο σύστημα υπολογιστή χωρίς κανένα από τα συμβαλλόμενα μέρη να έχει αρκετό έλεγχο για να το παρακάμψει μόνο του.

Για να σας δώσουμε έναν σωστό ορισμό – Ένα έξυπνο συμβόλαιο είναι μια ψηφιακή συμφωνία που προορίζεται να διευκολύνει, να επαληθεύσει ή να επιβάλει τη διαπραγμάτευση ή την εκτέλεση μιας σύμβασης. Επιτρέπει σε πολλά μέρη να το κάνουν μέσω της άμεσης αλληλεπίδρασης μεταξύ τους, χωρίς να περάσουν από τρίτους.

Ο όρος «έξυπνη σύμβαση» επινοήθηκε από τον κρυπτογράφο Nick Szabo τη δεκαετία του ’90 στο άρθρο του «Έξυπνες συμβάσεις: Δομικά στοιχεία για ψηφιακές αγορές.Για να κατανοήσουμε τη φιλοσοφία πίσω από το πώς λειτουργούν, ας πάρουμε το παράδειγμα του αυτόματου πωλητή της Szabo.

Δείτε πώς αλληλεπιδράτε συνήθως με ένα μηχάνημα αυτόματης πώλησης:

  • Επιλέγετε το αντικείμενο που θέλετε.
  • Βάζετε μετρητά μέσα στο μηχάνημα.
  • Το μηχάνημα σας δίνει το αντικείμενο.

Πολύ απλό, σωστά; Ωστόσο, υπάρχουν δύο πράγματα που πρέπει να σημειώσετε σε όλη αυτή την αλληλεπίδραση:

  • Κάθε βήμα δεν μπορεί να εκτελεστεί έως ότου ολοκληρωθεί το προηγούμενο βήμα. Π.χ. δεν μπορείτε να βάλετε τα χρήματα μέχρι να επιλέξετε αυτό που θέλετε. Επίσης, το μηχάνημα δεν μπορεί να σας δώσει ένα προϊόν μέχρι να βάλετε τα χρήματα.
  • Κατά τη διάρκεια αυτής της ολόκληρης αλληλεπίδρασης, εσείς και το μηχάνημα αλληλεπιδράτε άμεσα μεταξύ τους. Δεν υπάρχει τρίτος, όπως ένας καταστηματάρχης, μεταξύ των δυο σας.

Αυτές είναι οι βασικές αρχές πίσω από τις έξυπνες συμβάσεις:

  • Τα δύο μέρη που δεσμεύονται σε μια έξυπνη σύμβαση μπορούν να αλληλεπιδρούν άμεσα μεταξύ τους.
  • Κάθε βήμα σε μια έξυπνη σύμβαση μπορεί να εκπληρωθεί μόνο μετά την εκτέλεση του προηγούμενου βήματος.

Με την ενσωμάτωση αυτής της απλής καινοτομίας, το Ethereum μπόρεσε να δημιουργήσει ένα πρωτόκολλο στο οποίο οι χρήστες θα μπορούσαν να αλληλεπιδράσουν απευθείας dApps (διανεμημένες εφαρμογές) χωρίς να περάσετε από τρίτους. Το Ethereum χρησιμοποιεί μια γλώσσα που ονομάζεται «Στερεότητα», για τον κωδικό έξυπνων συμβάσεων. Ωστόσο, το Ethereum, όπως και οι περισσότερες δημοφιλείς πλατφόρμες έξυπνων συμβολαίων όπως το EOS και το TRON, είναι ένα δημόσιο blockchain. Ένα δημόσιο blockchain έχει ανοιχτό δίκτυο και οποιοσδήποτε μπορεί να συμμετάσχει σε αυτό χωρίς κρατήσεις. 

Εάν οι επιχειρήσεις χρησιμοποιούσαν μπλοκ αλυσίδες, οι δημόσιες μπλοκ αλυσίδες δεν ταιριάζουν πάντα στις περιπτώσεις χρήσης τους, ειδικά εάν επιθυμούν ή απαιτούν οι αλληλεπιδράσεις τους να είναι πλήρως ιδιωτικές. Οι επιχειρήσεις χρειάζονται ένα ειδικό είδος μπλοκ αλυσίδων που ονομάζεται «επιτρεπόμενες μπλοκ αλυσίδες». Περισσότερα για αυτά παρακάτω. 

Τι απαιτείται για τις επιχειρήσεις blockchain?

Σε αντίθεση με τους δημόσιους αποκλεισμούς, ένα επιτρεπόμενο / ιδιωτικό blockchain δεν είναι ανοιχτό για όλους. Για να λάβετε μέρος στο δίκτυο, θα πρέπει να λάβετε άδεια για να το κάνετε από το δίκτυο. Υπάρχουν ορισμένες δυνατότητες που θα πρέπει να πληρούν αυτά τα blockchain επιχειρήσεων:

  • Υψηλή απόδοση: Πρώτον, οι επιχειρήσεις θα χρειαστούν ένα blockchain που μπορεί να επεξεργαστεί ένα μεγάλο ποσό συναλλαγών. Τα περισσότερα δημόσια blockchain δεν μπορούν καν να κάνουν 100 συναλλαγές ανά δευτερόλεπτο με συνέπεια.
  • Υψηλό επίπεδο ανθεκτικότητας: Οι εταιρικές μπλοκ αλυσίδων πρέπει να είναι σε θέση να επανέρχονται από σενάρια διακοπής λειτουργίας και πιθανής αποτυχίας. Για να διασφαλιστεί η υψηλή διαθεσιμότητα, πρέπει να είναι σε θέση να αποφεύγουν ζητήματα που μπορεί να οδηγήσουν σε μεγάλες διακοπές λειτουργίας. Για να έχει αυτό το επίπεδο ανθεκτικότητας, το σύστημα πρέπει να υποθέσει ότι οι αστοχίες είναι βέβαιο ότι θα συμβούν και πρέπει να είναι προετοιμασμένοι να διατηρήσουν το σύστημα σε λειτουργία κατά τη διάρκεια αυτών των καταστάσεων.
  • Χαρακτηριστικά απορρήτου: Ένα δημόσιο blockchain, εξ ορισμού, δεν είναι ιδιωτικό. Τα ιδρύματα πρέπει να αντιμετωπίζουν πολλά εμπιστευτικά δεδομένα και κανονισμούς, καθώς και να διατηρούν ορισμένα δεδομένα ταξινομημένα για λόγους ανταγωνιστικού πλεονεκτήματος και πνευματικής ιδιοκτησίας (γι ‘αυτό χρειάζονται πρώτα ένα κλειστό / επιτρεπόμενο περιβάλλον).

Μαζί με ένα περιβάλλον φιλικό προς τις επιχειρήσεις, θα απαιτήσουν επίσης εξειδικευμένα έξυπνα συμβόλαια. Το δημόσιο έξυπνο συμβόλαιο της Ethereum λειτουργεί με σταθερότητα, αλλά υπάρχουν συγκεκριμένα χαρακτηριστικά που πρέπει να έχει μια εταιρική γλώσσα έξυπνων συμβάσεων. Στη συνέχεια θα συζητήσουμε αυτές τις ιδιότητες.

Οι ιδιότητες των εταιρικών έξυπνων γλωσσών συμβολαίου

Το κύριο πρόβλημα με τις κανονικές γλώσσες έξυπνων συμβολαίων είναι ότι είτε έχουν σχεδιαστεί ή εμπνέεται από γλώσσες που έχουν δημιουργηθεί για την εκτέλεση πιο παραδοσιακών συστημάτων. Τείνουν να είναι χαμηλού επιπέδου και να συνδέονται στενά με τις υποδομές στις οποίες λειτουργούν. Αυτό τους καθιστά δύσκολο και αργό προγραμματισμό. Οι προγραμματιστές έχουν δημιουργήσει με συνέπεια συμβόλαια με εκμεταλλεύσιμα σφάλματα, τα οποία έχουν προκαλέσει σημαντική ζημιά στο οικοσύστημα κρυπτογράφησης. Το 2016, η κοινότητα Ethereum γνώρισε από πρώτο χέρι τι θα μπορούσαν να κάνουν αυτά τα έξυπνα συμβόλαια με βέλτιστη κωδικοποίηση. Το DAO έπρεπε να είναι το πιο σημαντικό έξυπνο συμβόλαιο που κωδικοποιήθηκε ποτέ στο Ethereum. Ωστόσο, ένα απλό σφάλμα επέτρεψε σε έναν χάκερ να εκμεταλλευτεί το συμβόλαιο και να αποσπάσει $ Ether αξίας 150 εκατομμυρίων δολαρίων. Αυτό το hack ήταν τόσο καταστροφικό που το πρωτόκολλο Ethereum τελικά χωρίστηκε σε Ethereum και Ethereum Classic.

Αυτό που βασικά μας λέει όλα αυτά είναι ότι όταν κωδικοποιεί με μια γλώσσα όπως το Solidity, ένας κωδικοποιητής θα πρέπει να εξετάσει τα εξής:

  • Να είστε προσεκτικοί για επιθέσεις όπως επανεισαγωγή, υπερβολικές και υπόρροιες, επιθέσεις μικρών διευθύνσεων κ.λπ..
  • Θα πρέπει να λαμβάνεται υπόψη κάθε μερική κατάσταση στην οποία θα υποβληθεί η σύμβαση. 
  • Η ίδια λειτουργία μπορεί να σημαίνει διαφορετικά πράγματα σε διαφορετικές γλώσσες. Για παράδειγμα. ενώ η σταθερότητα δανείζεται σε μεγάλο βαθμό από τη JavaScript, οι ίδιες λειτουργίες ενδέχεται να λειτουργούν διαφορετικά σε κάθε γλώσσα.

Σύντομη ιστορία, δεν μπορείτε απλά να διαλέξετε τυχαία μια γλώσσα και να γράψετε τα συμβόλαιά σας. Θα πρέπει να κατανοήσετε όλες τις πιθανές επιπτώσεις της επιλογής σας. Η Digital Asset πέρασε χρόνια μελετώντας την εκτέλεση έξυπνης σύμβασης για να περιορίσει τις κύριες ιδιότητες που απαιτούνται από τις γλώσσες έξυπνων συμβολαίων επιχειρήσεων:

  • Η σύναψη σύμβασης πρέπει να είναι εθελοντική. Όταν όλα τα μέρη συνάπτουν ένα συμβόλαιο εθελοντικά, καθίστανται υποχρεωμένοι να εκτελούν όλες τις ενέργειες που απαιτούνται με τον καλύτερο δυνατό τρόπο.
  • Μόνο τα μέρη που επηρεάζονται από μια σύμβαση θα πρέπει να μπορούν να δουν τις συνέπειες που τους επηρεάζουν (και μόνο αυτά).
  • Τα μέρη πρέπει να είναι σε θέση να προβλέψουν εύλογα πώς θα τεθεί σε ισχύ η σύμβαση στο μέλλον. Θα πρέπει να είναι σε θέση να προβλέψουν όλες τις πολιτείες που μπορεί να αναλάβει η σύμβαση. 
  • Οι έξυπνοι προγραμματιστές συμβολαίων θα πρέπει να μπορούν να χρησιμοποιούν μια γλώσσα που τους επιτρέπει να επικεντρώνονται πλήρως στη λογική της επιχείρησής τους, αντί για λεπτομέρειες χαμηλού επιπέδου όπως κατακερματισμός, κρυπτογραφία και πρωτόκολλα συναίνεσης.

Τι είναι το DAML?

Το DAML είναι μια έξυπνη γλώσσα συμβολαίου που έχει δημιουργηθεί ειδικά για κατανεμημένα καθολικά και επιτρέπει την ασφαλή, σαφή και υψηλού επιπέδου προδιαγραφή της επιχειρηματικής λογικής σε πραγματικό χρόνο. Ακολουθούν ορισμένα βασικά πράγματα για το DAML που πρέπει να έχετε υπόψη:

  • Το DAML είναι εύκολο να γράφεται και να διαβάζεται, έτσι ώστε ένα άτομο που κατανοεί την επιχείρηση που ορίζεται μπορεί να επαληθεύσει ότι ο κώδικας είναι ευθυγραμμισμένος με την πρόθεσή του.
  • Το DAML είναι γρήγορο στην κατασκευή και ανάπτυξη, μπορείτε να μεταβείτε από το μηδέν στο τέλος έως την τελική εφαρμογή παραγωγής εξαιρετικά γρήγορα.
  • Είναι μια γλώσσα συμβάσεων, όπου οι συμφωνίες και τα μέρη είναι εγγενείς κατασκευές στη γλώσσα.
  • Οι προγραμματιστές θα είναι σε θέση να περιγράψουν με ακρίβεια πώς δημιουργούνται συμβάσεις και ποια μέρη, άμεσα και έμμεσα, συμμετέχουν σε αυτήν.
  • Οι προγραμματιστές δεν χρειάζεται να ανησυχούν για κατασκευές χαμηλού επιπέδου και μπορούν να εστιάσουν πλήρως στη δημιουργία επιχειρηματικής λογικής.
  • Το DAML παρέχει υψηλά επίπεδα απορρήτου και αφαίρεσης. Το σύστημα DAML θα παρακολουθεί αυτόματα τα μέρη που επιτρέπεται να βλέπουν τις λεπτομέρειες κάθε συμβολαίου. Αυτές οι πληροφορίες θα μεταβιβαστούν επίσης στο υποκείμενο καθολικό για να διασφαλιστεί ότι αποστέλλονται στην πραγματικότητα μόνο τα δεδομένα που έχει εξουσιοδοτηθεί να δει ένα συγκεκριμένο μέρος.
  • Μόλις εκτελεστεί ένα πρόγραμμα DAML, δημιουργεί ένα καλά δομημένο και κατανοητό από τον άνθρωπο ίχνος ελέγχου που θα σας βοηθήσει να εξηγήσετε δύο πράγματα: γιατί εκτελέστηκε κάθε ενέργεια και ο ρόλος κάθε μέρους σε αυτό το έξυπνο συμβόλαιο.
  • Στο DAML, οι αναβαθμίσεις ορίζονται σε κώδικα και μπορούν να εκτελεστούν με τρόπο χωρίς διακοπή με μηδενικό χρόνο διακοπής λειτουργίας. Μπορείτε εύκολα να προσθέσετε νέους ρόλους και ροές εργασίας σε υπάρχουσες λύσεις χωρίς να περάσετε από επιπλοκές.

DAML – Μια λειτουργική γλώσσα

Σε αντίθεση με τις υποχρεωτικές γλώσσες, το DAML είναι μια λειτουργική γλώσσα. Στις επόμενες παραγράφους ρίχνουμε μια ματιά στο τι σημαίνει αυτό.

Εντυπωσιακές γλώσσες προγραμματισμού

Οι παραδοσιακές γλώσσες προγραμματισμού, όπως C ++, Java και Solidity είναι επιτακτικές γλώσσες προγραμματισμού. Σε μια επιτακτική γλώσσα προγραμματισμού, ο προγραμματιστής πρέπει να γράψει όλες τις οδηγίες που πρέπει να λάβει ο υπολογιστής για να επιτύχει έναν στόχο. Ας πάρουμε ένα παράδειγμα στο C ++ του τι εννοούμε με αυτό. 

Ας υποθέσουμε ότι θέλουμε να εκτυπώσουμε τους αριθμούς από 1 έως 100 

int i = 0;

Επόμενο:

i ++;

printf (“% i”, i);

αν εγώ < 100) μετάβαση

int a = 5;

int b = 3;

int γ;

c = a + b;

Όπως μπορείτε να δείτε, η διαδικασία προσθήκης αναλαμβάνει πολλές οδηγίες και κάθε οδηγία αλλάζει συνεχώς την κατάσταση του προγράμματος καθώς όλες εκτελούνται ξεχωριστά.

Μια διαδικασία προσθήκης πήρε τέσσερις οδηγίες και αυτές είναι:

  • Δηλώνοντας έναν ακέραιο “a” και αντιστοιχίζοντας την τιμή 5 σε αυτό.
  • Δήλωση ακέραιου «b» και εκχώρηση της τιμής 3 σε αυτό.
  • Δήλωση ακέραιου αριθμού “c”.
  • Προσθήκη των τιμών και b και αποθήκευση τους στο c.

Λειτουργικές γλώσσες προγραμματισμού

Σε αυτό το στυλ προγραμματισμού λειτουργίες, αντί για οδηγίες, λαμβάνουν κεντρικό στάδιο. Αντί να γράφετε οδηγίες για τον υπολογισμό ενός αποτελέσματος ή την εκτέλεση ενός αλγορίθμου, η επιθυμητή συμπεριφορά περιγράφεται όπως σε μια κανονική μαθηματική συνάρτηση, αντιστοιχίζοντας τις εισόδους της συνάρτησης στις εξόδους,  

Ο λειτουργικός προγραμματισμός είναι ιδιαίτερα κατάλληλος για έξυπνες συμβάσεις, επειδή ο τρόπος σύνθεσης των λειτουργιών είναι παρόμοιος με τον τρόπο αλληλεπίδρασης των συμβάσεων. Ένα συμβόλαιο που λέει «Αν η Άλις δώσει στον Μπομπ 100 $, ο Μπομπ δίνει στην Αλίκη ένα Εισιτήριο», είναι σαν μια λειτουργία που αντιστοιχεί 100 $ σε ένα Εισιτήριο. Εάν υπάρχει ένα δεύτερο συμβόλαιο που λέει “Αν η Άλις παρουσιάζει ένα Εισιτήριο στον Μπομπ, ο Μπομπ αφήνει την Άλις μέσα από την πόρτα”, αυτή είναι μια δεύτερη λειτουργία που χαρτογραφεί ένα Εισιτήριο για να του δοθεί πρόσβαση. Όπως και οι λειτουργίες, αυτά τα συμβόλαια συνθέτουν φυσικά: «Αν η Άλις δώσει στον Μπομπ 100 $, ο Μπομπ αφήνει την Άλις στην πόρτα».

Αυτή η καθαρή συμπεριφορά εισόδου-εξόδου που είναι ανεξάρτητη από μια κατάσταση καθιστά τη λειτουργική προσέγγιση ευκολότερη αιτιολόγηση μαθηματικά: έχοντας λειτουργίες που βασίζονται αποκλειστικά στις εισόδους τους για τον υπολογισμό των εξόδων τους, ο προγραμματιστής μπορεί να επικεντρωθεί στην ορθότητα της ατομικής λειτουργίας και το σύστημα τύπων επιτρέπει αυτά να συντίθενται μαζί με ασφάλεια και προβλέψιμο τρόπο. Αυτός είναι ο λόγος για τον οποίο τα λειτουργικά προγράμματα θεωρούνται μια πιο ασφαλής προσέγγιση για τη δημιουργία έξυπνων συμβάσεων. Το DAML είναι μια λειτουργική γλώσσα και επιτρέπει στους προγραμματιστές να ενσωματώνουν επιχειρηματική λογική σε έντονα δακτυλογραφημένες μαθηματικές συναρτήσεις. Το “έντονα δακτυλογραφημένο” σε αυτό το πλαίσιο σημαίνει ότι ο τρόπος λειτουργίας κάθε λειτουργίας μπορεί να ελεγχθεί αυτόματα από τα εργαλεία και το χρόνο εκτέλεσης του DAML. Αυτό βοηθά τους προγραμματιστές να εξηγήσουν ακριβώς πώς κάθε στοιχείο του προγράμματος θα επηρεάσει την κατάσταση του καθολικού.

Ο κωδικός DAML

Για να δοκιμάσετε το DAML μπορείτε να 1) εγκαταστήσετε Κωδικός Visual Studio και το DAML SDK ή χρησιμοποιήστε το 2) διαδικτυακός ιστότοπος (περισσότερα για μαθησιακό σκοπό)

πρότυπο Κουπόνι

  με

    ιδιοκτήτης: Πάρτι

  που

    υπογράφων ιδιοκτήτης

Αυτό που βλέπετε παραπάνω είναι ένα απλό πρότυπο DAML. Ένα πρότυπο ορίζει έναν τύπο συμβολαίου που μπορεί να δημιουργηθεί και που έχει το δικαίωμα να το κάνει. Οι συμβάσεις είναι παρουσίες προτύπων. Στο παραπάνω παράδειγμα, το όνομα του προτύπου είναι “Token”. Τα δεδομένα που περιέχονται στις Συμβάσεις ονομάζονται «επιχειρήματα». Ας δούμε λοιπόν τα επιχειρήματα που δηλώνονται στο πλαίσιο αυτής της σύμβασης.

  • Το μπλοκ “με” ορίζει τον τύπο δεδομένων των ορισμάτων εντός του προτύπου, αναφέροντας τα ονόματα των πεδίων και τους τύπους τους. Το παραπάνω πρότυπο έχει ένα μόνο πεδίο που ονομάζεται “κάτοχος” του τύπου “Πάρτι”.
  • Το μπλοκ “πού” δηλώνει το πεδίο του πεδίου. Στο πρότυπό μας, το μπλοκ “όπου” δηλώνει το πεδίο “ιδιοκτήτης” ως υπογράφων της σύμβασης. Μόλις δηλωθεί υπογράφων, ένα πεδίο θα αποκτήσει την εξουσία να δημιουργήσει ή να αρχειοθετήσει τη σύμβαση. 

Ένας τυπικός κωδικός συμβολαίου στο DAML έχει τέσσερα στοιχεία σε αυτό:

  • Μοντέλο δεδομένων: Χρησιμοποιήστε το DAML για να μοντελοποιήσετε εύκολα σύνθετα σχήματα δεδομένων για την εφαρμογή σας (τι είδους δεδομένα χρειάζεστε για τη σύμβαση)
  • Λεπτά δικαιώματα: Καθορίστε τα δικαιώματα εντός της σύμβασης (ποιος μπορεί να δημιουργήσει και να αρχειοθετήσει τη σύμβαση, ποιος μπορεί να δει συγκεκριμένα βήματα εκτέλεσης κ.λπ.)
  • Επαγγελματική λογική: Περιγράφοντας τις ενέργειες στο πλαίσιο της σύμβασης (τι κάνει πραγματικά η σύμβαση και ποια είναι τα βήματα για την εκτέλεση της)
  • Δοκιμή βάσει σεναρίου: Δοκιμάστε τη λογική της επιχείρησης που καθορίσατε και τις διάφορες ροές εργασίας.

Τώρα που γνωρίζουμε τα τέσσερα στοιχεία και τη δημιουργία προτύπων, ας δούμε έναν πλήρη κώδικα DAML. 

πρότυπο μετρητά

  με

    εκδότης: Κόμμα

    ιδιοκτήτης: Πάρτι

    ποσό: Δεκαδικό

  που

    υπογράφων εκδότης

    ο κάτοχος του ελεγκτή μπορεί

      Μεταφορά: CashId Cash

        με

          newOwner: Πάρτι

        δημιουργήστε το με τον ιδιοκτήτη = newOwner

πρότυπο TicketAg perjanjian

  με

    διοργανωτής: Πάρτι

    ιδιοκτήτης: Πάρτι

  που

    διοργανωτής, ιδιοκτήτης

πρότυπο TicketOffer

  με

    διοργανωτής: Πάρτι

    αγοραστής: πάρτι

    τιμή: Δεκαδικό

  που

    διοργανωτής

    αγοραστής παρατηρητή

    ο αγοραστής ελεγκτών μπορεί

      Αποδοχή: Συμφωνία Συμφωνίας Εισιτηρίου

        με

          cashId: CashId Cash

        κάνω

          μετρητά <- λήψη μετρητών

          διεκδίκηση (cash.amount == τιμή)

          άσκηση μετρητών με μεταφορά με

            newOwner = διοργανωτής

          δημιουργήστε TicketAg perjanjian με

            διοργανωτής; ιδιοκτήτης = αγοραστής

validateTicketPurchase = σενάριο

  εκδότης <- getParty “Εκδότης”

  διοργανωτής <- getParty “Διοργανωτής”

  αγοραστής <- getParty “Αγοραστής”

  μετρητά <- υποβολή εκδότη

    δημιουργήστε μετρητά με

      εκδότης ιδιοκτήτης = αγοραστής; ποσό = 20,0

  προσφορά <- υποβολή οργανωτή

    δημιουργήστε το TicketOffer με

      διοργανωτής; αγοραστής; τιμή = 20,0

  υποβολή αγοραστή

    προσφορά άσκησης Αποδοχή με

      cashId = μετρητά

Εντάξει, έτσι έχουμε μια σειρά προτύπων εδώ που συνεργάζονται για να δημιουργήσουν μια σύμβαση όπου ένας χρήστης αγοράζει ένα εισιτήριο από έναν διοργανωτή. Έτσι, ακολουθώντας τον κωδικό χρώματος, έχουμε τέσσερα συγκεκριμένα μπλοκ στον παραπάνω κώδικα:

Μοντέλο δεδομένων – Κόκκινο 

Όπως αναφέρθηκε προηγουμένως, τα πρότυπα έχουν πεδία δεδομένων που είναι απαραίτητα για τη δήλωση και την εκτέλεσή του. Ας δούμε το πρότυπο TicketOffer:

πρότυπο TicketOffer

  με

    διοργανωτής: Πάρτι

    αγοραστής: πάρτι

    τιμή: Δεκαδικό

Αυτό το πρότυπο δηλώνει τρία πεδία:

  • “Διοργανωτής” και “αγοραστής” τύπου “Πάρτι. Όπως υποδηλώνει το όνομα, αυτά τα δύο είναι συμβαλλόμενα μέρη αυτής της σύμβασης.
  • Τότε έχουμε την «τιμή» που είναι τύπου δεκαδικού.

Λεπτά δικαιώματα – Πράσινο

  που

    διοργανωτής

    αγοραστής παρατηρητή

    ο αγοραστής ελεγκτών μπορεί

      Αποδοχή: Συμφωνία Συμφωνίας Εισιτηρίου

Αφού δηλώσετε τα πεδία στο πρότυπο, αυτή η ενότητα δηλώνει τα δικαιώματα που δίνονται σε ορίσματα μερών. Έτσι, σε αυτό το πρότυπο, ο διοργανωτής είναι ο μόνος υπογράφων και έχει τη δύναμη να ξεκινήσει ή να αρχειοθετήσει τη σύμβαση.

Ο αγοραστής είναι τόσο ο παρατηρητής όσο και ο ελεγκτής. Ένας παρατηρητής είναι κάποιος που μπορεί να δει όλες τις καταστάσεις στις οποίες διενεργείται η σύμβαση. Επίσης, όπως δηλώνεται στο πρότυπο, ο αγοραστής μπορεί να αποδεχτεί τη σύμβαση εισιτηρίου, η οποία θα έχει ως αποτέλεσμα την αρχειοθέτηση και τη δημιουργία ενός νέου συμβολαίου “TicketAg perjanjian”.

Επιχειρηματική λογική – Ροζ

    κάνω

          μετρητά <- λήψη μετρητών

          διεκδίκηση (cash.amount == τιμή)

          άσκηση μετρητών με μεταφορά με

            newOwner = διοργανωτής

          δημιουργήστε TicketAg perjanjian με

            διοργανωτής; ιδιοκτήτης = αγοραστής

Δηλώσαμε λοιπόν τα πεδία και τους αναθέσαμε την προβολή τους στο πλαίσιο της σύμβασης. Τώρα, ήρθε η ώρα να δηλώσετε την επιχειρηματική λογική και τη ροή εργασίας αυτού του προτύπου. Το συμβόλαιο θα ελέγξει πρώτα εάν τα μετρητά που λαμβάνονται από τον αγοραστή είναι ίδια με την τιμή του εισιτηρίου ή όχι. Εάν είναι, τότε η κυριότητα του εισιτηρίου μεταβιβάζεται στον αγοραστή, ενώ τα χρήματα μεταβιβάζονται στον διοργανωτή.

Δοκιμή βάσει σεναρίου – Μπλε

validateTicketPurchase = σενάριο

  εκδότης <- getParty “Εκδότης”

  διοργανωτής <- getParty “Διοργανωτής”

  αγοραστής <- getParty “Αγοραστής”

  μετρητά <- υποβολή εκδότη

    δημιουργήστε μετρητά με

      εκδότης ιδιοκτήτης = αγοραστής; ποσό = 20,0

  προσφορά <- υποβολή οργανωτή

    δημιουργήστε το TicketOffer με

      διοργανωτής; αγοραστής; τιμή = 20,0

  υποβολή αγοραστή

    προσφορά άσκησης Αποδοχή με

      cashId = μετρητά

Τέλος, μπορείτε να δοκιμάσετε τη λογική της επιχείρησης και τις ροές εργασίας σε αυτήν την ενότητα για να ελέγξετε σε πραγματικό χρόνο εάν ο κώδικάς σας λειτουργεί ή όχι. Αυτός ο πραγματικός χρόνος θα είναι ιδιαίτερα χρήσιμος για προγραμματιστές. Μπορείτε να αλληλεπιδράσετε με το καθολικό χρησιμοποιώντας πολλά μέρη και να επαληθεύσετε άμεσα τα αποτελέσματα των συναλλαγών σας. Τα αποτελέσματα του σεναρίου από το παραπάνω παράδειγμα θα μοιάζουν με αυτό

DAML - Ένα οικοσύστημα ανοιχτού κώδικα για τη δημιουργία έξυπνων κατανεμημένων εφαρμογών βάσει συμβολαίων

Αν σας ενδιαφέρει να μάθετε DAML ρίξτε μια ματιά στο δικό τους τεκμηρίωση.

Θήκη χρήσης πραγματικού κόσμου – Αντικατάσταση του σκάκι της ASX

Η DAML έχει ήδη βρει μια πραγματική θήκη χρήσης. Το Australian Securities Exchange, (ASX), είναι ένα από τα κορυφαία χρηματιστήρια αγοράς στον κόσμο. Είναι ένα από τα 10 κορυφαία χρηματιστήρια αξιών παγκοσμίως και η μεγαλύτερη αγορά παραγώγων επιτοκίων στην Ασία. Δεδομένου ότι είναι η πρώτη μεγάλη χρηματοοικονομική αγορά που ανοίγει κάθε μέρα, κατατάσσεται σταθερά μεταξύ των πέντε κορυφαίων χρηματιστηρίων στον κόσμο.

Σήμερα, το CHESS είναι το βασικό σύστημα που εκτελεί τις διαδικασίες εκκαθάρισης, διακανονισμού, καταχώρησης περιουσιακών στοιχείων και ορισμένων άλλων υπηρεσιών μετά το εμπόριο που είναι κρίσιμες για την εύρυθμη λειτουργία της αυστραλιανής αγοράς. Το CHESS εξακολουθεί να είναι σταθερό και να παρέχει αποτελεσματικά αυτές τις υπηρεσίες, όπως αποδεικνύεται από τη μέση μηνιαία διαθεσιμότητα των υπηρεσιών της CHESS κατά τα τελευταία πέντε χρόνια του 99,99%. Αν και δεν υπάρχει τίποτα που να δείχνει ότι το CHESS δεν θα συνεχίσει να παρέχει υπηρεσίες σε αυτό το επίπεδο υπηρεσίας, η ASX αποφάσισε να αντικαταστήσει το CHESS με τεχνολογία κατανεμημένου καθολικού (DLT) που θα προσφέρει ένα ευρύτερο φάσμα πλεονεκτημάτων σε μια ευρύτερη διατομή της αγοράς. Η ASX εξηγεί δικτυακός τόπος τους πολλούς λόγους για τους οποίους επέλεξε το DAML:

  • Οι εκδότες και οι τελικοί επενδυτές θα αποκτήσουν μεγαλύτερη διαφάνεια στις δραστηριότητες της αγοράς τους μέσω έγκαιρης, ασφαλούς και απλοποιημένης πρόσβασης στο μητρώο κατόχων (για εκδότες), χρηματοοικονομικών περιουσιακών στοιχείων (τελικοί επενδυτές) και συναφών πληροφοριών.
  • Νέα επίπεδα λειτουργικότητας και ευέλικτης τεχνολογίας θα βοηθήσουν την ASX να ανταποκριθεί αποτελεσματικά στις μεταβαλλόμενες αγορές.
  • Εύκολη ενοποίηση με επιχειρηματικά συστήματα ανάντη και κατάντη, εξορθολογισμό λειτουργιών και ροών εργασίας.
  • Καταργήστε την ανάγκη για δαπανηρές διαδικασίες συμφιλίωσης και αντ ‘αυτού αξιοποιήστε μια πηγή αλήθειας.
  • Διασφαλίστε πλήρως τη διαθεσιμότητα της λύσης.
  • Εξασφαλίστε 100% διαθεσιμότητα σε όσους έχουν εξουσιοδότηση να το χρησιμοποιούν χωρίς διακρίσεις.
  • Παρέχετε ένα σύστημα που είναι ανιχνεύσιμο και ασφαλές.

συμπέρασμα

Ο Shaul Kfir, συνιδρυτής και CTO της Digital Asset, επεσήμανε ότι η εμφάνιση της τεχνολογίας blockchain και κατανεμημένου καθολικού σήμερα έχει πολλά παράλληλα με την εμφάνιση του Ιστού τη δεκαετία του 1990. Το Διαδίκτυο ήταν μια τόσο ριζικά νέα πλατφόρμα που δεν μπορούσε να προσφέρει το πλήρες δυναμικό του χρησιμοποιώντας παραδοσιακά συστήματα. Μόνο όταν αναπτύχθηκαν νέα αρχιτεκτονικά στυλ προγραμματισμού, όπως το REST, για να ταιριάζουν με τις ιδιότητες του Ιστού που πραγματικά ξεκίνησε. Αυτό ακριβώς μπορεί να κάνει το DAML σε εταιρικές πλατφόρμες blockchain.

Από τώρα, ο χώρος του blockchain έχει πολλές έξυπνες γλώσσες συμβολαίου. Αυτό οδηγεί σε διαφορετικά είδη έξυπνων συμβάσεων που αναστέλλουν τη διαλειτουργικότητα και κατ ‘επέκταση την επεκτασιμότητα. Το DAML έχει τις ιδιότητες που απαιτούνται για να τα υιοθετήσουν τα ιδρύματα ως κύρια γλώσσα τους, ενώ χτίζουν την πλατφόρμα επιλογής τους. Η Digital Asset ανακοίνωσε ότι το DAML θα ενσωματωθεί σε πολλαπλά κατανεμημένα καθολικά και παραδοσιακές πλατφόρμες βάσεων δεδομένων, συμπεριλαμβανομένων των VMWare Blockchain, Hyperledger Sawtooth and Fabric, Corda και Amazon QLDB και Aurora βάσεις δεδομένων. 

Ξεκινήστε να γράφετε τις έξυπνες συμβάσεις σας με το DAML και το κατεβάστε το DAML SDK εδώ

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map