How Can We Help?
API Gini BlockGrid
Γιατί να δημιουργήσετε ένα API; Πολλοί ενδιαφερόμενοι της Gini θέλουν να δημιουργήσουν τις δικές τους εφαρμογές πάνω από την πλατφόρμα Gini. Αυτές οι εφαρμογές ενδέχεται να περιλαμβάνουν χρηματοπιστωτικές υπηρεσίες, συστήματα ανταλλαγής μηνυμάτων που ενσωματώνουν δυνατότητες πληρωμής Gini, πύλες ηλεκτρονικού εμπορίου που αποδέχονται το νόμισμα Gini ως τρόπο πληρωμής, plugins για προγράμματα περιήγησης στο Web που αποδέχονται το Gini για διάφορες υπηρεσίες που βασίζονται σε προγράμματα περιήγησης, ενσωματωμένες συσκευές IoT που αυτοματοποιούν διάφορες δραστηριότητες πληρωμών, πορτοφόλια για αποθήκευση εκτός νόμου, εργαλεία διαφήμισης που προσκαλούν τους χρήστες να συμμετάσχουν σε διάφορες καμπάνιες σε αντάλλαγμα για το Gini, μεταξύ πολλών άλλων εφαρμογών.
Για να λειτουργήσουν όλες αυτές οι εφαρμογές στο Gini BlockGrid, δημιουργήσαμε μια διεπαφή προγραμματισμού εφαρμογών (API) που επιτρέπει στους προγραμματιστές λογισμικού, στους κατασκευαστές υλικού και στους ολοκληρωτές συστημάτων να συνδέσουν τη λογική εφαρμογής τους με το αποκεντρωμένο Gini BlockGrid.
Το Gini API είναι γρήγορο και αποδοτικό. Το Gini API, το οποίο υλοποιήθηκε με Buffer πρωτοκόλλου υψηλών επιδόσεων, είναι ένας ουδέτερος για την πλατφόρμα μηχανισμός για τη δημιουργία σειριοποιημένων δεδομένων από / προς το Gini BlockGrid και τις συναφείς υπηρεσίες Gini. Σε σύγκριση με άλλες μορφές API που βασίζονται σε XML, JSON και άλλα πρωτόκολλα, τα ωφέλιμα φορτία API του Gini είναι 3-10 φορές μικρότερα, 20-100 φορές ταχύτερα, πιο σαφώς καθορισμένα (και επομένως λιγότερο επιρρεπή σε σφάλματα και σφάλματα) που καθιστούν πολύ πιο εύκολη την κατασκευή αυτοματοποιημένων συστημάτων που αλληλεπιδρούν με το Gini BlockGrid και τα συναφή συστήματα.
Για ευκολία, παρέχουμε πλήρως λειτουργικό κώδικα διασύνδεσης σε δεκάδες γλώσσες προγραμματισμού. Αυτό επιταχύνει την ανάπτυξη λύσεων τρίτων που μπορούν να επωφεληθούν από τη μοναδική πλατφόρμα Gini και το αντίστοιχο οικοσύστημα. Για να αρχίσετε να χρησιμοποιείτε το API, πηδήξτε μέχρι τον Κώδικα.
σύνταξη = "proto3";
πακέτο Gini.Api;
// ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ:
// Κάθε τμήμα του μπλοκ κώδικα "υπηρεσίας UI"
παρακάτω αντιστοιχεί γενικά με μια οθόνη στο GUI του Gini Account Center.
Ωστόσο, όλες οι κλήσεις RPC σε αυτό το API έχουν σχεδιαστεί ώστε να εκτελούνται από οποιονδήποτε τύπο
του πελάτη που χρειάζεται να αλληλεπιδράσει με το Gini BlockGrid. Για παράδειγμα: ενσωματωμένο
Συσκευές IoT, υπηρεσίες Web, πορτοφόλια υλικού, υπηρεσίες τραπεζικού συστήματος (π.χ.
Συστήματα GCU) και πολλά άλλα.
// Όλα τα Gini API υλοποιούνται χρησιμοποιώντας το Twirp. Μεταξύ άλλων
πράγματα, αυτό ορίζει:
//
// * Μέθοδοι HTTP και κεφαλίδες
// * Αντιδράσεις σφάλματος
// * Χαρτογράφηση των ονομάτων υπηρεσιών και rpc σε τελικά σημεία
// * Κωδικοποίηση αιτημάτων και απαντήσεων
//
// Συγκεκριμένα, η κωδικοποίηση μπορεί να είναι:
//
// * Protobuf3
// * Χαρτογράφηση JSON του Protobuf3
//
// Οι λεπτομέρειες βρίσκονται στη διεύθυνση https://developers.google.com/protocol-buffers/docs/proto3.
// Η κωδικοποίηση ελέγχεται από τον πελάτη, χρησιμοποιώντας
Οι κεφαλίδες "Τύπος περιεχομένου" και "Αποδοχή".
//
// Σημειώστε ότι:
//
// * Τα πεδία 'string' μπορεί να περιέχουν οποιοδήποτε έγκυρο χαρακτήρα Unicode.
// * Τα πεδία `bytes` μπορεί να περιέχουν οποιοδήποτε byte, συμπεριλαμβανομένων των nulls, και
θα είναι
// κωδικοποιημένη βάση 64 όταν έχει αντιστοιχιστεί με JSON.
// Το int μετά από κάθε τύπο δεδομένων είναι απλώς η σειρά πεδίων
μέσα σε κάθε μία από αυτές
// τις λειτουργίες του spec. Αυτοί οι αριθμοί δεν χρειάζεται να συμπεριληφθούν
σε κάθε
// κλήσεις λειτουργίας.
//
// Συμβολές ονομασίας API:
//
// * Τα API κατηγοριοποιούνται ως πληροφορίες, ενέργεια ή καθυστέρηση
// * Τα ονόματα API των πληροφοριών τελειώνουν με ένα ουσιαστικό
// - Τα ονόματα των API πληροφοριών μόνο για ανάγνωση αρχίζουν με τη λήψη
// - Τα ονόματα των API πληροφοριών μόνο για εγγραφή αρχίζουν με το Set / Unset
// - Τα αναγνωριστικά API με ανάγνωση και εγγραφή αρχίζουν με
Ανάγνωση / εγγραφή / διαγραφή
// * Τα ονόματα API δράσης αρχίζουν με ένα επιτακτικό ρήμα
// // Τα API καθυστέρησης αρχίζουν με τη δημοσκόπηση
//
// Αναπαράσταση δεδομένων:
//
// * Τα δημόσια κλειδιά εκφράζονται ως χορδές στο έθιμο του Gini
σημείωση βάσης-32
// (π.χ
"gini_1czim7y8ddzpihfbzwctqbrokoek83c84s9jt5zd56as1cdanxm4jxxwnbap")
// * Τα μπασκέτα των μπλοκ εκφράζονται ως 64 χαρακτήρες,
ανεξάρτητα από την περίπτωση hex string
// (π.χ
"a286fd300598bf0c8ccc1196943b9ceb94f268cc89f2010b7f7ee4055cc6ab8c")
// * Τα πλήκτρα Blob μπορούν να είναι οποιαδήποτε έγκυρη συμβολοσειρά Unicode.
// Υπάρχει ένα ανώτερο όριο που ορίζεται από την εφαρμογή τους
Μέγεθος.
// * Τα περιεχόμενα των Blob είναι αυθαίρετες δυαδικές τιμές.
// Υπάρχει ένα ανώτερο όριο που ορίζεται από την εφαρμογή τους
Μέγεθος.
// * Τα ποσά των gini εκφράζονται ως δεκαδικές ακολουθίες βάσης-10
με 1.0 == 1 gini
// (π.χ. "123.4567890123456789"). Για να είναι έγκυρες, τιμές
πρέπει να είναι εντός της εμβέλειας
// επιτρέπονται από το νόμισμα και δεν έχουν πλέον δεκαδικά ψηφία
από την ακρίβεια
// του νομίσματος. Οι ενσωματωμένες τιμές ενδέχεται να παραλείψουν το δεκαδικό ψηφίο
σημείο.
//
// Κράτη:
//
// * Ένας κόμβος μπορεί να μη προετοιμαστεί ή να αρχικοποιηθεί.
// * Μόλις αρχικοποιηθεί, ένας κόμβος μπορεί επίσης να κλειδωθεί.
// * Ένας μη αρχικοποιημένος κόμβος είναι πάντα στην απασφαλισμένη κατάσταση και
δεν μπορεί να κλειδωθεί.
// * Όλοι οι rpc, εκτός από Lock / Unlock, επιστρέφουν ένα σφάλμα αν ο κόμβος
είναι κλειδωμένο.
// * Ένας κόμβος θα κλειδώσει αυτόματα μετά από μια περίοδο όχι
Δραστηριότητα API.
// * Το μήκος της περιόδου είναι διαμορφώσιμο αλλά προεπιλεγμένο σε 5
λεπτά.
// Η υπηρεσία Πορτοφολιού επιτρέπει στο περιβάλλον χρήστη του Gini να αλληλεπιδράσει με ένα
Κόμβος Gini.
υπηρεσία Πορτοφόλι {
// SETUP:
// Δείτε τα API SETTINGS για τη ρύθμιση των λεπτομερειών της GCU και
επιτρέποντας την καταγραφή.
// Λάβετε τη λίστα των γλωσσών για τις οποίες ενδέχεται να υπάρχουν φράσεις αντιγράφων ασφαλείας
δημιουργούνται.
rpc GetBackupPhraseLanguages(EmptyReq) επιστρέφει (GetBackupPhraseLanguagesResp);
// Δημιουργήστε μια νέα φράση δημιουργίας αντιγράφων ασφαλείας χρησιμοποιώντας ασφαλή κρυπτογράφηση
η εντροπία.
rpc ΔημιουργίαBackupPhrase(GenerateBackupPhraseReq) επιστρέφει (ΔημιουργίαBackupPhraseResp);
// Αρχικοποιήστε τον κόμβο με την ταυτότητα του υπάρχοντος χρήστη (μυστικό
κλειδί και κωδικό πρόσβασης).
// Επιστρέφει ένα σφάλμα αν ο κόμβος έχει ήδη αρχικοποιηθεί.
rpc SetUser(SetUserReq) επιστρέφει (SuccessResp);
// Κατάργηση όλων των δεδομένων που σχετίζονται με το χρήστη από τον κόμβο και επιστροφή του
η μη αρχικοποιημένη κατάσταση.
rpc UnsetUser(UnsetUserReq) επιστρέφει (SuccessResp);
// ΕΣΩΤΕΡΙΚΟ:
// Κλείδωμα του κόμβου.
rpc Κλειδαριά(EmptyReq) επιστρέφει (SuccessResp);
// Ξεκλειδώστε τον κόμβο με τον κωδικό πρόσβασης UI.
rpc Ξεκλείδωμα(UnlockReq) επιστρέφει (SuccessResp);
// Λάβετε πληροφορίες σχετικά με το λογαριασμό του χρήστη.
rpc GetAccountInfo(EmptyReq) επιστρέφει (AccountInfoResp);
// ΛΟΓΑΡΙΑΣΜΟΙ:
// Λάβετε το υπόλοιπο του λογαριασμού Gini του χρήστη.
rpc GetBalance(EmptyReq) επιστρέφει (GetBalanceResp);
// Στείλτε το Gini σε άλλο λογαριασμό.
rpc Στείλετε(SendReq) επιστρέφει (ΑποστολήResp);
// Διαβάστε το δυαδικό μπλοκ που σχετίζεται με μια δεδομένη συμβολοσειρά.
// Σημείωση: Η αποθηκευμένη κηλίδα είναι κρυπτογραφημένη με το κλειδί Gini του χρήστη.
rpc ReadBlob(ReadBlobReq) επιστρέφει (ReadBlobResp);
// Γράψτε το δυαδικό μπλοκ που σχετίζεται με μια δεδομένη συμβολοσειρά.
// Σημείωση: Η αποθηκευμένη κηλίδα είναι κρυπτογραφημένη με το κλειδί Gini του χρήστη.
rpc WriteBlob(WriteBlobReq) επιστρέφει (SuccessResp);
// Διαγράψτε το δυαδικό μπλοκ που αντιστοιχεί σε μια δεδομένη συμβολοσειρά.
rpc DeleteBlob(DeleteBlobReq) επιστρέφει (SuccessResp);
// ΙΣΤΟΡΙΑ:
// Διαβάστε το ιστορικό συναλλαγών του χρήστη.
rpc GetHistory(GetHistoryReq) επιστρέφει (GetHistoryResp);
// Διαβάστε τις λεπτομέρειες μιας συγκεκριμένης συναλλαγής.
rpc GetTransaction(GetTransactionReq) επιστρέφει (GetTransactionResp);
// Περιμένετε να διαφέρει η κατάσταση μιας συναλλαγής από την καθορισμένη
κατάσταση.
// Επιστρέφει ένα σφάλμα αν η καθορισμένη κατάσταση είναι ήδη οριστική
(επιβεβαίωση / αποτυχία).
// Περιλαμβάνει συγκεκριμένο χρονικό όριο.
rpc PollTransaction(PollTransactionReq) επιστρέφει (PollTransactionResp);
// Περιμένετε να ληφθεί μια νέα συναλλαγή.
// Επιστρέφει αμέσως αν η ζητούμενη κατακερματισμός δεν είναι η τελευταία.
// Περιλαμβάνει συγκεκριμένο χρονικό όριο.
rpc PollReceive(PollReceiveReq) επιστρέφει (PollReceiveResp);
// ΡΥΘΜΙΣΕΙΣ:
// Αλλάξτε τον κωδικό πρόσβασης UI.
rpc Ορίστε κωδικό(SetPasswordReq) επιστρέφει (SuccessResp);
// Διαβάστε τις διαμορφώσιμες επιλογές του χρήστη.
rpc ReadOptions(EmptyReq) επιστρέφει (ReadOptionsResp);
// Γράψτε τις διαμορφώσιμες επιλογές του χρήστη.
rpc WriteOptions(WriteOptionsReq) επιστρέφει (SuccessResp);
}
// Ένα EmptyReq δεν περιέχει δεδομένα.
μήνυμα EmptyReq {
}
// Το SuccessResp υποδεικνύει την επιτυχία μιας ενέργειας.
μήνυμα SuccessResp {
// Το αποτέλεσμα.
bool επιτυχία = 1; // Πάντα αληθινός.
}
// Μια GetBackupPhraseLanguagesResp περιέχει τη λίστα γλωσσών
για το οποίο
// μπορούν να δημιουργηθούν φράσεις αντιγράφων ασφαλείας.
μήνυμα GetBackupPhraseLanguagesResp {
αλλεπάλληλος σειρά Γλώσσες = 1;
}
// Το GenerateBackupPhraseReq περιέχει ένα αίτημα για δημιουργία ενός
νέα φράση αντιγράφων ασφαλείας.
μήνυμα GenerateBackupPhraseReq {
// Η γλώσσα που θα χρησιμοποιηθεί για την εφεδρική φράση.
// Εάν η γλώσσα δεν υποστηρίζεται, θα επιστραφεί ένα σφάλμα.
σειρά Γλώσσα = 1;
}
// Μια GenerateBackupPhraseResp περιέχει μια νέα φράση δημιουργίας αντιγράφων ασφαλείας.
μήνυμα ΔημιουργίαBackupPhraseResp {
// Νέα φράση δημιουργίας αντιγράφων ασφαλείας. Δεν διατηρείται από τον κόμβο. Αντι αυτου,
εμφανίζεται
// στον χρήστη που πρέπει να το γράψει και να τον κρατήσει ασφαλές.
// Συνήθως θα συνδυαστεί με έναν κωδικό πρόσβασης σε ένα SetUser
ζητήστε να
// δημιουργήστε ένα μυστικό κλειδί.
σειρά φράση = 1;
}
// Το SetUserReq περιέχει ένα αίτημα για την αρχικοποίηση του κόμβου με a
την ταυτότητα του χρήστη.
μήνυμα SetUserReq {
// Η φράση αντιγράφων ασφαλείας που αντιπροσωπεύει το λογαριασμό του χρήστη.
// ΠΡΕΠΕΙ να έχει καταγραφεί και να διατηρηθεί ασφαλές.
σειρά backup_phrase = 1;
// Ο κωδικός πρόσβασης που συνδυάζεται με την εφεδρική φράση στο
παράγουν το μυστικό κλειδί.
// ΠΡΕΠΕΙ να παρέχεται όποτε χρησιμοποιείται ξανά η εφεδρική φράση
στο μέλλον.
// Ο κωδικός πρόσβασης μπορεί να είναι άδειος, οπότε η φράση είναι
απροστάτευτο και μπορεί να είναι
// χρησιμοποιείται ως-είναι για να αποκτήσει το μυστικό κλειδί του χρήστη.
σειρά backup_password = 2;
// Ο κωδικός πρόσβασης UI που χρησιμοποιείται για την προστασία της πρόσβασης στον κόμβο.
// Απαιτείται κάθε φορά που ο κόμβος ξεκινά και πότε ο κόμβος
είναι ξεκλείδωτη αφού κλειδωθεί.
// Χρησιμοποιείται επίσης για την κρυπτογράφηση των δεδομένων του χρήστη στο δίσκο.
// Ίσως είναι το ίδιο με τον κωδικό πρόσβασης που χρησιμοποιείται με το αντίγραφο ασφαλείας
φράση ή μπορεί να είναι διαφορετική.
// Ωστόσο, μπορεί να μην είναι άδειο.
σειρά ui_password = 3;
}
// Το UnsetUserReq περιέχει ένα αίτημα για την κατάργηση όλων
δεδομένα χρήστη από τον κόμβο.
μήνυμα UnsetUserReq {
// Ο κωδικός πρόσβασης UI που χρησιμοποιείται για την προστασία της πρόσβασης στον κόμβο.
σειρά Κωδικός πρόσβασης = 1;
}
// Το UnlockReq περιέχει ένα αίτημα για την τοποθέτηση του κόμβου σε ένα
ξεκλειδωμένη κατάσταση.
μήνυμα UnlockReq {
// Ο κωδικός πρόσβασης UI που χρησιμοποιείται για την προστασία της πρόσβασης στον κόμβο.
σειρά Κωδικός πρόσβασης = 1;
}
// Το AccountInfoResp περιέχει πληροφορίες για το χρήστη
λογαριασμός.
// Επιστρέφει σφάλμα αν ο κόμβος είναι κλειδωμένος.
μήνυμα AccountInfoResp {
// Το δημόσιο κλειδί του χρήστη στη βάση-32 συμβολισμό.
σειρά λογαριασμός = 1;
}
// Το GetBalanceResp περιέχει το ποσό του Gini σε έναν λογαριασμό.
μήνυμα GetBalanceResp {
// Το ποσό του Gini στο λογαριασμό, ως δεκαδικό δεκαδικό
σειρά.
σειρά ποσό = 1;
// Το hash του πιο πρόσφατου μπλοκ στον λογαριασμό.
σειρά χασίσι = 2;
}
// Το SendReq περιέχει ένα αίτημα για αποστολή χρημάτων σε άλλο
λογαριασμός.
μήνυμα SendReq {
// Ο λογαριασμός στον οποίο αποστέλλονται τα κεφάλαια.
σειρά προορισμός = 1;
// Το ποσό του Gini που αποστέλλεται ως δεκαδικό δεκαδικό
σειρά.
σειρά ποσό = 2;
// Το πεδίο σημειώματος της συναλλαγής.
σειρά σημείωμα = 4;
}
// Το SendResp περιέχει τις λεπτομέρειες ενός νεοσύστατου
συναλλαγή.
μήνυμα ΑποστολήResp {
// Το hash του μπλοκ της συναλλαγής.
σειρά χασίσι = 1;
}
// Το ReadBlobReq περιέχει ένα αίτημα για ανάγνωση του περιεχομένου ενός αρχείου
άμορφη μάζα.
μήνυμα ReadBlobReq {
// Το αναγνωριστικό της κηλίδας που πρέπει να διαβαστεί. Το id μπορεί να είναι οποιοδήποτε μη κενό
Σειρά Unicode.
σειρά blob_id = 1;
}
// Το ReadBlobResp περιέχει το περιεχόμενο ενός μπλοκ.
μήνυμα ReadBlobResp {
// Το περιεχόμενο της κηλίδας. Μπορεί να είναι οποιαδήποτε δυαδική τιμή, και μπορεί
περιέχουν μηδενικά bytes.
bytes περιεχόμενο = 1;
}
// Το WriteBlobReq περιέχει ένα αίτημα για την εγγραφή του περιεχομένου ενός αρχείου
άμορφη μάζα.
μήνυμα WriteBlobReq {
// Το αναγνωριστικό της γραμματοσειράς που θα γραφτεί. Το id μπορεί να είναι οποιοδήποτε μη κενό
Σειρά Unicode.
σειρά blob_id = 1;
// Το περιεχόμενο της κηλίδας. Μπορεί να είναι οποιαδήποτε δυαδική τιμή, και μπορεί
περιέχουν μηδενικά bytes.
bytes περιεχόμενο = 2;
}
// Το DeleteBlobReq περιέχει ένα αίτημα για διαγραφή ενός μπλοκ.
μήνυμα DeleteBlobReq {
// Το αναγνωριστικό του μπλοκ που πρέπει να διαγραφεί. Το id μπορεί να είναι οποιοδήποτε μη κενό
Σειρά Unicode.
σειρά blob_id = 1;
}
// Το GetHistoryReq περιέχει ένα αίτημα για μια λίστα συναλλαγών
ως μπλοκ μπλοκ.
μήνυμα GetHistoryReq {
// Το hash του πιο πρόσφατου μπλοκ του οποίου το ιστορικό πρόκειται να είναι
παρασύρεται.
// Σημείωση: η πιο πρόσφατη συναλλαγή στον λογαριασμό μπορεί να είναι
που ελήφθη με το GetBalance.
σειρά Ξεκινώντας με = 1;
// Ο αριθμός των καταχωρήσεων ιστορικού που θα ληφθούν.
uint32 μετρώ = 2;
}
// Μια GetHistoryResp περιέχει μια λίστα συναλλαγών ως block
hashes.
μήνυμα GetHistoryResp {
// Λίστα μπασκέτας.
αλλεπάλληλος σειρά hashes = 1;
}
// Μια εντολή TransactionDirection καθορίζει αν μια συναλλαγή ήταν
αποστολή ή λήψη.
enum Διεύθυνση συναλλαγών {
ΑΠΟΣΤΟΛΗ = 0;
RECEIVE = 1;
}
// Μια δομή συναλλαγής αντιπροσωπεύει την κατάσταση του μπλοκ αποστολής
που δημιουργήθηκε από μια συναλλαγή.
enum Δοκίμιο συναλλαγής {
ΠΡΟΣΟΧΗ = 0;
ΕΠΙΒΕΒΑΙΩΣΗ = 1;
FAILED = 2;
}
// Ένα GetTransactionReq περιέχει ένα αίτημα για τις λεπτομέρειες του a
συναλλαγή.
μήνυμα GetTransactionReq {
// Το hash του μπλοκ που περιέχει τη συναλλαγή.
σειρά χασίσι = 1;
}
// Μια GetTransactionResp περιέχει πληροφορίες σχετικά με ένα
συναλλαγή.
μήνυμα GetTransactionResp {
// Η αποστολή ή η λήψη της συναλλαγής.
Διεύθυνση συναλλαγών κατεύθυνση = 1;
// Ο άλλος λογαριασμός που συμμετέχει στη συναλλαγή.
σειρά λογαριασμός = 2;
// Το ποσό της συναλλαγής.
σειρά ποσό = 3;
// Το πεδίο σημειώματος της συναλλαγής (κενό για λήψη
συναλλαγές).
σειρά σημείωμα = 4;
// Η κατάσταση της συναλλαγής.
Δοκίμιο συναλλαγής κατάσταση = 5;
}
// Το PollTransactionReq περιέχει ένα αίτημα να περιμένει μέχρι ένα
κατάσταση αλλαγών συναλλαγής.
μήνυμα PollTransactionReq {
// Το hash του μπλοκ της συναλλαγής.
σειρά χασίσι = 1;
// Η τρέχουσα κατάσταση της συναλλαγής.
Δοκίμιο συναλλαγής κατάσταση = 2;
// Το μέγιστο χρονικό διάστημα σε δευτερόλεπτα για να περιμένει μια αλλαγή στο
κατάσταση.
// Υπάρχει ένα ανώτερο όριο για την τιμή που καθορίζεται από την εφαρμογή.
μεγαλύτερες από αυτές
// θα αποκοπεί στο μέγιστο. Θα είναι μη θετικές τιμές
αντιμετωπίζεται ως σφάλμα.
φλοτέρ τέλος χρόνου = 3;
}
// Το PollTransactionResp περιέχει την τρέχουσα κατάσταση του a
συναλλαγή.
μήνυμα PollTransactionResp {
// Η κατάσταση της συναλλαγής.
Δοκίμιο συναλλαγής κατάσταση = 1;
}
// Το PollReceiveReq περιέχει ένα αίτημα να περιμένει μέχρι ένα νέο
λαμβάνεται η συναλλαγή.
μήνυμα PollReceiveReq {
// Η κατακερματισμός του μπλοκ της πιο πρόσφατης συναλλαγής (π.χ.
από το GetAccountInfo).
σειρά χασίσι = 1;
// Το μέγιστο χρονικό διάστημα σε δευτερόλεπτα για να περιμένετε α
συναλλαγή.
// Υπάρχει ένα ανώτερο όριο για την τιμή που καθορίζεται από την εφαρμογή.
μεγαλύτερες από αυτές
// θα αποκοπεί στο μέγιστο. Θα είναι μη θετικές τιμές
αντιμετωπίζεται ως σφάλμα.
φλοτέρ τέλος χρόνου = 2;
}
// Το PollTransactionResp περιέχει την τρέχουσα κατάσταση του a
συναλλαγή.
μήνυμα PollReceiveResp {
// Η κατακερματισμός του μπλοκ της νέας συναλλαγής.
// Θα είναι το ίδιο με το ζητούμενο hash εάν το αίτημα
φορές.
σειρά χασίσι = 1;
}
// Το SetPasswordReq περιέχει ένα αίτημα για αλλαγή του UI του χρήστη
Κωδικός πρόσβασης.
// Σημείωση: αυτό δεν αλλάζει τον κωδικό πρόσβασης που χρησιμοποιείται με το αντίγραφο ασφαλείας
φράση.
μήνυμα SetPasswordReq {
// Ο νέος κωδικός πρόσβασης.
σειρά Κωδικός πρόσβασης = 1;
}
// Το UserOptions περιέχει τις διαμορφώσιμες επιλογές του χρήστη.
μήνυμα Επιλογές χρήστη {
// Τα στοιχεία της GCU.
σειρά gcu_details = 1;
// Να ενεργοποιηθεί η καταγραφή.
bool logging_enabled = 2;
// Να ζητηθεί ο κωδικός πρόσβασης για αποστολή.
bool send_requires_password = 3;
// Να λειτουργήσει ως πλήρης κόμβος.
bool full_node = 4;
// Για να μπορέσετε να ενεργοποιήσετε τη δυναμική Guardian.
bool dynamic_guardian = 5;
// Εάν θέλετε να ομαδοποιήσετε λογαριασμούς του ίδιου νομίσματος.
bool group_accounts = 6;
// Το χρονικό όριο κλειδώματος σε λεπτά.
φλοτέρ lock_timeout = 7;
}
// Το ReadOptionsResp περιέχει τις ρυθμίσεις επιλογής του χρήστη.
μήνυμα ReadOptionsResp {
// Οι επιλογές.
Επιλογές χρήστη επιλογές = 1;
}
// Το WriteOptionsReq περιέχει ένα αίτημα για την εγγραφή του χρήστη
ρυθμίσεων επιλογών.
μήνυμα WriteOptionsReq {
// Οι επιλογές.
Επιλογές χρήστη επιλογές = 1;
}
Did You Like This Resource?
Gini is doing important work that no other organization is willing or able to do. Please support us by joining the Gini Newsletter below to be alerted about important Gini news and events and follow Gini στο Twitter.
[mailpoet_form id="1"]