Μοτίβα σχεδίασης: Εφαρμογή έναντι Dapp

Ξεκινήσαμε να χτίσουμε μια απλή εφαρμογή για την καταχώριση ενός ονόματος στο μπλοκ αλφαριθμητικό. Σκεφτήκαμε ότι η δημιουργία αυτού του απλού ιστότοπου θα ήταν ένα γρήγορο. Κάποιος μπορεί να μάθει τις βασικές έννοιες blockchain μέσα σε λίγες εβδομάδες, το μέγεθος των περισσότερων εφαρμογών blockchain αυτή τη στιγμή είναι αρκετά μικρό για να grok σε ένα Σαββατοκύριακο και η εφαρμογή που είχαμε θέσει να χτίσει ήταν μια δοκιμασμένη και αληθινή εφαρμογή ηλεκτρονικού εμπορίου - όνομα τομέα και αγοράστε το. Δεν μπορεί να γίνει πιο απλό από αυτό. Αλλά εδώ η ιστορία γίνεται άσχημη. Το μικρό μας demo app ethereum μειώθηκε 5 φορές σε 5 εβδομάδες. Και δεν είχαμε κίνηση - νομίζω ότι το φορτίο αιχμής ήταν όταν ο καλύτερος φίλος μου και η γάτα του χτύπησαν την περιοχή μας την ίδια στιγμή. Το πρόβλημα? Αποδεικνύει ότι είχαμε την κακή μας υποδομή, βάση δεδομένων και μοντέλο δεδομένων πελατών.

Μάθημα ένα: Χρησιμοποιήστε έναν φιλοξενούμενο παροχέα υπηρεσιών κόμβων αντί για τη φιλοξενία των δικών σας κόμβων για την κατασκευή εφαρμογών blockchain. Όταν μεγαλώσετε, μπορείτε να εκτελέσετε (και να εκτελέσετε) το δικό σας στόλο κόμβων και να προσλάβετε κάποιον πλήρες χρόνο για να το κάνετε αυτό, αλλά για να ξεκινήσετε απλά χρησιμοποιήστε ένα τελικό σημείο api. Πολύ ευκολότερο. Πολύ wow.

Μου αρέσει να τρέχω τα πράγματα σε τοπικό επίπεδο - αισθάνεται καλά να είμαι κοντά στα δικά σας συστήματα και δεδομένα. Είχαμε τρέξει τον δικό μας κόμβο. Αυτό ουσιαστικά σήμαινε ότι έπρεπε να ξοδεύουμε $ 50 επιπλέον το μήνα στον server μας που ήταν ένα τεράστιο γουρουνάκι μνήμης και έπρεπε να ενημερώνει συνεχώς το λογισμικό κόμβων που ήταν μερικές φορές λίγο buggy (και αυτό είναι εντάξει, είναι τεχνολογία αιχμής). Αλλά για την ανάπτυξη εφαρμογών blockchain - τουλάχιστον στα αρχικά στάδια της - αυτό είναι υπερβολικό. Αν θέλετε να ξοδέψετε το χρόνο σας στην εφαρμογή σας, και όχι σε dev-ops για τον τοπικό σας κόμβο, χρησιμοποιήστε μια καλά οργανωμένη υπηρεσία αιθέριας εξυπηρέτησης που μπορεί να φροντίσει για όλες τις αποχρώσεις για εσάς.

Μάθημα 2: Ξεφορτωθείτε τη βάση δεδομένων σας. Εάν αποθηκεύετε κατάσταση κάπου στην εφαρμογή σας, πιθανόν να το κάνετε λάθος. Μια αποκεντρωμένη εφαρμογή θα πρέπει να ζει στο blockchain (και IPFS, κλπ., Το μέλλον έρχεται).

Η βάση δεδομένων μας δεν είχε μελετηθεί καλά. Καταλήξαμε να αναπαράγουμε κατάσταση στο τέλος μας στη δική μας βάση δεδομένων. Και καθώς ο καθένας μπορεί να σας πει μόλις έχετε δύο καταστάσεις κρατήσεων (η βάση δεδομένων μας και το blockchain), σας εγγυόμαστε ότι θα έχετε κακό χρόνο. Κάθε φορά που ο κόμβος μας κατέβηκε ή αποσυνδέθηκε, θα συνδεθούμε ξανά σε μια σειρά από σφάλματα. Κάναμε σενάρια για να το καθαρίσουμε. Και στη συνέχεια επέστρεψε με το χέρι για να ελέγξει. Αλλά στο τέλος κοίταξε ο ένας τον άλλον και είπε "τι κάνουμε; γιατί να μην ξεφορτωθούμε απλώς τη βάση δεδομένων και να χρησιμοποιήσουμε το μπλοκ για την κατάσταση και να πάμε από εκεί; γιατί αποθηκεύουμε τα δεδομένα; ​​"Καταργήσαμε τη βάση δεδομένων μας. Και ένιωθε σαν μια αποκάλυψη. Γιατί πήρε τόσο πολύ χρόνο για να καταλάβω; Δεν νομίζω ότι θα το ξέρω ποτέ.

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

Στη συνέχεια, είχαμε αυτό το ενοχλητικό πρόβλημα της επιμέλειας - αγοράζουμε ονόματα για λογαριασμό χρηστών. Το μέλλον των εφαρμογών blockchain είναι οι χρήστες που κατέχουν τα δικά τους δεδομένα και αυτό ανοίγει ένα πλήθος φοβερών δυνατοτήτων για τον χρήστη. Στην περίπτωσή μας, αυτό σημαίνει ότι οι χρήστες έχουν υψηλότερο επίπεδο ιδιωτικότητας, δεν χρειάζεται να ανησυχούν για την ακεραιότητα των στερητικών της εχεμύθειας και μπορούν να πάρουν την επιχείρησή τους αλλού όποτε θέλουν b / c δεν κρατάμε τα δεδομένα τους (αντίθετα με το κανονικό DNS που μπορεί να πάρει μια εβδομάδα να μεταφέρω). Τα δεδομένα που ανήκουν στο χρήστη είναι ελκυστικά για τους χρήστες επειδή δεν χρειάζεται να βασίζονται σε εσάς και είναι ελκυστικά για τις επιχειρήσεις επειδή μπορείτε να ξεφορτώσετε τις ανησυχίες σας σχετικά με την επιμέλεια και να εστιάσετε στην εφαρμογή σας. Καλύτερα να οικοδομήσουμε για το μέλλον από το παρελθόν.

Αγωνίσαμε με τη δημιουργία υποδομής, αφήνοντας να διαχειριστεί την πολιτεία μας τοπικά και δεσμεύοντας την ιδιοκτησία των δεδομένων των χρηστών. Κάναμε κάποια λάθη στην πορεία, αλλά καταλήξαμε με ένα dapp που είμαστε υπερήφανοι. Και δεν αποθηκεύουμε δεδομένα χρήστη, έχουμε μια εσωτερική βάση δεδομένων ή ένα στόλο αυτόνομων κόμβων (ακόμα!). Η βασική αιτία δεν ήταν η δυσκολία της νέας τεχνολογίας, το μέγεθος του καθήκοντος στο χέρι ή η «νεωτερικότητα» της τεχνολογίας. Ήταν η "φιλοσοφία" της ανάπτυξης εφαρμογών blockchain. Αλλά όχι περισσότερο. Είμαστε όλοι μαζί με το blockchain ως μία πηγή ή κράτος, πλήρη έλεγχο του χρήστη και δεδομένα που ανήκουν στο χρήστη. Δεν κοιτάμε πίσω. Έχουμε έναν τόνο διασκέδασης και ανυπομονούμε να συνεχίσουμε το ταξίδι μας κάτω από την τρύπα του κουνελιού dapp.