āļĢāļēāļĒāļāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļāļĄāļđāļĨāđāļĄāđāđāļāđÂķ
āļŦāļāđāļ§āļĒāļāļēāļāļāđāļēāļāļ āļēāļĐāļĩāđāļāļāļēāļāļāļĢāļ°āđāļāļĻāļāļģāļŦāļāļāđāļŦāđāļāļĢāļīāļĐāļąāļ**āļāļīāļŠāļđāļāļāđāļ§āđāļēāļĢāļēāļĒāļāļēāļĢāļāļąāļāļāļĩāļāļĩāđāļĨāļāļāļąāļāļāļķāļāđāļĨāđāļ§āđāļĄāđāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ** āļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāđāļĄāļ·āđāļāļĢāļēāļĒāļāļēāļĢāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāđāļ§ āļāļ°āđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāđāļāļĩāļ
To do so, NightPOS creates a unique fingerprint for each secured entry thanks to the SHA-256 algorithm.
This fingerprint is called a hash. The hash is generated by taking an entry's essential data
(the values of the name, date, journal_id, company_id, debit, credit, account_id, and
partner_id fields), concatenating it, and inputting it to the SHA-256 hash function, which then
outputs a fixed size (256-bit) string of characters. The hash function is deterministic (the
same input always creates the same output): any minor modification to the original data would
completely change the resulting hash. Consequently, the SHA-256 algorithm is often used, among
others, for data integrity verification purposes.
āļāļāļāļāļēāļāļāļĩāđ āđāļŪāļāļāļāļāļĢāļēāļĒāļāļēāļĢāļāđāļāļāļŦāļāđāļēāļāļ°āļāļđāļāđāļāļīāđāļĄāđāļāđāļēāđāļāđāļāļĢāļēāļĒāļāļēāļĢāļāļąāļāđāļāđāļŠāļĄāļāđāļāļ·āđāļāļŠāļĢāđāļēāļ**āļŦāđāļ§āļāđāļāđāđāļŪāļ** āļŠāļīāđāļāļāļĩāđāđāļāđāđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļēāđāļĄāđāļĄāļĩāļāļēāļĢāđāļāļīāđāļĄāļĢāļēāļĒāļāļēāļĢāđāļŦāļĄāđāļ āļēāļĒāļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđāļēāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļŠāļāļāļĢāļēāļĒāļāļēāļĢ āđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāļāļģāđāļāđāļāļāļąāđāļāļāļ°āļāļģāđāļŦāđāļŦāđāļ§āļāđāļāđāđāļŪāļāļāļēāļ
Note
āđāļŪāļāļāļĩāđāļŠāļĢāđāļēāļāđāļāļĒāļāļąāļĨāļāļāļĢāļīāļāļķāļĄ SHA-256 āļāļąāđāļāđāļāļāļēāļāļāļĪāļĐāļāļĩāđāļĨāđāļ§āļāļ°āđāļĄāđāļāđāļģāļāļąāļ āđāļāļ·āđāļāļāļāļēāļāļĄāļĩāļāđāļēāļāļĩāđāđāļāđāļāđāļāđāļāđāļāļģāļāļ§āļāļāļģāļāļąāļ āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļāļģāļāļ§āļāļāļĩāđāļŠāļđāļāđāļāđāļāļāļīāđāļĻāļĐ: 2Âēâĩâķ āļāļķāđāļāļĄāļēāļāļāļ§āđāļēāļāļģāļāļ§āļāļāļ°āļāļāļĄāđāļāļāļąāļāļĢāļ§āļēāļĨāļāļĩāđāđāļĢāļēāļĢāļđāđāļāļąāļāļĄāļēāļ āļāļĩāđāļāļ·āļāđāļŦāļāļļāļāļĨāļ§āđāļēāļāļģāđāļĄāđāļŪāļāļāļķāļāļāļ·āļāļ§āđāļēāļĄāļĩāđāļāļāļĨāļąāļāļĐāļāđāđāļāļāļēāļ°āđāļāļāļēāļāļāļāļīāļāļąāļāļī
āļāļļāļāļŠāļĄāļāļąāļāļīāļāļ§āļēāļĄāđāļĄāđāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļÂķ
āļāļļāļāļŠāļĄāļāļąāļāļīāļāļ§āļēāļĄāđāļĄāđāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŠāļēāļĄāļēāļĢāļāđāļāļīāļāđāļāđāļāļēāļāđāļāđāđāļāļĒāļāļēāļĢāđāļāļīāļāđāļāđāļāļēāļāļāļąāļ§āđāļĨāļ·āļāļ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļĨāļāļāļąāļāļāļķāļāļāđāļ§āļĒāđāļŪāļ āđāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāđāļāđ āļŦāļĢāļ·āļāđāļāđ āļāļąāļ§āļāđāļ§āļĒāļŠāļĢāđāļēāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāļĨāļāļāļ āļąāļĒ
āļāļąāļ§āļāļāļāļŠāļāļēāļāļ°āļŠāļāļāļāļąāļ§āļāļđāļāđāļāļīāđāļĄāļĨāļāđāļāļĄāļļāļĄāļĄāļāļāđāļāļāļāļāļĢāđāļĄāļāļāļāļĢāļēāļĒāļāļēāļĢāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļ āļāļ§āļāļĄāļąāļāđāļŠāļāļāļ§āđāļēāļĢāļēāļĒāļāļēāļĢāļāļąāđāļāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļŦāļĢāļ·āļāđāļĄāđ
āļŦāļĢāļ·āļ (āđāļāļāļāļāļĨāđāļāļ) āļāļąāļāļāļēāļāļŠāļāļēāļāļ° āļĨāļāļāļąāļāļāļķāļāđāļĨāđāļ§
āļāđāļāļāļāļģāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒ āļāļĨāļāļāļ āļąāļĒ āđāļāđāļāđāļ āļāđāļāļĄāļđāļĨāļāļ·āđāļāđ
āļāļąāļ§āļāļĢāļāļ āđāļĄāđāļāļĨāļāļāļ āļąāļĒ āļĄāļĩāđāļŦāđāđāļāđāļāļēāļāđāļāļĄāļļāļĄāļĄāļāļāļĢāļēāļĒāļāļēāļĢāļāļāļāļĢāļēāļĒāļāļēāļĢāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāđāļĨāļ°āļĢāļēāļĒāļāļēāļĢāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļ āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāļ·āđāļāļāđāļāļŦāļēāļĢāļēāļĒāļāļēāļĢāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļĩāđāļĨāļāļāļąāļāļāļķāļāđāļĨāđāļ§āļāļķāđāļāļĒāļąāļāđāļĄāđāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ
āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāđāļāļīāļ āļāļąāļ§āļāđāļ§āļĒāļŠāļĢāđāļēāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāļĨāļāļāļ āļąāļĒ āļāļ°āđāļŠāļāļāđāļāđāļĄāļāļđ āļĢāļ°āļāļāļāļąāļāļāļĩ
āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļĨāļāļāļąāļāļāļķāļāļāđāļ§āļĒāđāļŪāļÂķ
āļŦāļēāļāļāđāļāļāļāļēāļĢāđāļāļīāļāđāļāđāļāļēāļāļāļąāļāļāđāļāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļŪāļāđāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāđāļāļāļēāļ° āđāļŦāđāđāļāļāļĩāđ āđāļāļīāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļēāļĢāļāļēāļĒ āļāļēāļĢāļāļąāļāļāļ·āđāļ āļŦāļĢāļ·āļāđāļāđāļāđāļāļĨāđāļ āđāļāļāļĩāđāđāļāđāļ āļāļēāļĢāļāļąāđāļāļāđāļēāļāļąāđāļāļŠāļđāļ āđāļĨāļ°āđāļāļīāļāđāļāđāļāļēāļ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļĨāļāļāļąāļāļāļķāļāļāđāļ§āļĒāđāļŪāļ āļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļĩāđāđāļāļīāļāđāļāđāļāļēāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļē "āļāļģāļāļąāļ"
To compute the hash of an entry, NightPOS retrieves the predecessor entries of the chain (i.e., the entries with the same sequence prefix) and hashes them in a continuous way from the last hashed entry to the new entry to hash.
Warning
āđāļĄāļ·āđāļāļāļļāļāļĨāļāļĢāļēāļĒāļāļēāļĢāđāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļĩāđāļāļđāļāļāļģāļāļąāļāđāļĨāđāļ§ āļāļļāļāļāļ°āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļīāļāđāļāđāļāļēāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļĩāđ āļŦāļĢāļ·āļāđāļāđāđāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļāđāļāļĩāļ
āļāļąāļ§āļāđāļ§āļĒāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢÂķ
āļāļļāļāļĒāļąāļāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļąāļ§āļāđāļ§āļĒ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢ āđāļāļ·āđāļāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļąāđāļāļŦāļĄāļāđāļ**āļāļļāļ**āļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļ āļāļāļāļķāļāļ§āļąāļāļāļĩāđāļāļĩāđāļĢāļ°āļāļļāđāļāđ
Note
āļāļąāļ§āļāđāļ§āļĒāļāļģāļāļēāļāđāļāļĒāļāļīāļŠāļĢāļ°āļāļēāļāļāļēāļĢāļāļąāđāļāļāđāļēāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāđāļĨāļ°āļāļĢāļ°āđāļ āļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļ
āļŦāļēāļāļāđāļāļāļāļēāļĢāđāļāļīāļ āđāļŦāđāđāļāļīāļāđāļāđāļāļēāļ āđāļŦāļĄāļāļāļąāļāļāļąāļāļāļē āđāļāļāļĩāđ āđāļĨāļ°āļāļĨāļīāļ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢ āļŦāļēāļ āļāļļāļāļŠāļĄāļāļąāļāļīāļāļēāļĢāđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāđ āđāļāļīāļāđāļāđāļāļēāļāļāļĒāļđāđ āļāļ°āļŠāļēāļĄāļēāļĢāļāļĄāļāļāđāļŦāđāļāđāļāđāļāļāļāđāļŦāļĄāļāļāļĩāļāļąāļāļāđāļ§āļĒ
āļŦāļēāļāļāđāļāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢ āđāļŦāđāđāļĨāļ·āļāļāļ§āļąāļāļāļĩāđāļāļĩāđāļĢāļēāļĒāļāļēāļĢāļāļąāđāļāļŦāļĄāļāļāļ§āļĢāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāļķāļ āđāļĨāļ°āļāļ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢ
Warning
āļŦāļĨāļąāļāļāļēāļāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļēāļĒāļāļēāļĢāđāļĨāđāļ§ āļāļļāļāļāļ°āđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđāļāđāļāļĩāļ
Note
āļāļēāļāđāļāļīāļāļāļķāđāļāđāļāđāļ§āđāļēāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāđāļēāļāļ§āļąāļāļāļĩāđāđāļĨāļ·āļāļāđāļāđāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāđāļ§ āļŠāļīāđāļāļāļĩāđāđāļāđāļāđāļāđāļāđāđāļāļ·āđāļāļāļāļēāļāļĨāļđāļāđāļāđāđāļŪāļāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāļģāļāļģāļŦāļāđāļēāļĨāļģāļāļąāļāļāļĩāđāđāļĢāļĩāļĒāļāļāļēāļĄāļŦāļĄāļēāļĒāđāļĨāļāļĨāļģāļāļąāļ
āļāļēāļ§āļāđāđāļŦāļĨāļāļĢāļēāļĒāļāļēāļÂķ
āļŦāļēāļāļāđāļāļāļāļēāļĢāļāļēāļ§āļāđāđāļŦāļĨāļāļĢāļēāļĒāļāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļāļĄāļđāļĨāđāļĄāđāđāļāđ āđāļŦāđāđāļāļāļĩāđ āđāļĨāļ°āļāļĨāļīāļāļāļĩāđ āļāļēāļ§āļāđāđāļŦāļĨāļāļĢāļēāļĒāļāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļāļĄāļđāļĨāđāļĄāđāđāļāđ
āļŠāđāļ§āļāđāļĢāļāļāļāļāļĢāļēāļĒāļāļēāļāđāļāđāļāļ āļēāļāļĢāļ§āļĄāļāļāļāļāļģāļāļģāļŦāļāđāļēāļĨāļģāļāļąāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļąāđāļāļŦāļĄāļāļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāđāļŪāļ āđāļāļāļāļĨāļąāļĄāļāđ āļāļđāļāļāļģāļāļąāļ āļāļļāļāļŠāļēāļĄāļēāļĢāļāļāļđāđāļāđāļ§āđāļēāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāđāļāđāđāļāļīāļāđāļāđāļāļēāļāļāļąāļ§āđāļĨāļ·āļāļ āđāļāļŠāļāđāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāļĨāļāļāļ āļąāļĒāļāđāļ§āļĒāđāļŪāļ (V) āļŦāļĢāļ·āļāđāļĄāđ (X) āļāļāļĨāļąāļĄāļāđ āļāļĢāļ§āļāļŠāļāļ āļāļ°āļāļāļāļāļļāļāļ§āđāļēāļĢāļēāļĒāļāļēāļĢāļāļąāđāļāļŦāļĄāļāļāļđāļāđāļŪāļāļāļĒāđāļēāļāļāļđāļāļāđāļāļāļŦāļĢāļ·āļāđāļĄāđ
āļŠāđāļ§āļāļāļĩāđāļŠāļāļāđāļŦāđāļāļĨāļĨāļąāļāļāđāđāļāļĒāļĨāļ°āđāļāļĩāļĒāļāļĄāļēāļāļāļķāđāļāļāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāļāļāļāļāđāļāļĄāļđāļĨāļŠāļģāļŦāļĢāļąāļāđāļāđāļĨāļ°āļāļģāļāļģāļŦāļāđāļēāļĨāļģāļāļąāļāļŠāļĄāļļāļāļĢāļēāļĒāļ§āļąāļāļāļĩāđāđāļŪāļāđāļĨāđāļ§ āļāļļāļāļŠāļēāļĄāļēāļĢāļāļāļđāļĢāļēāļĒāļāļēāļĢāļāļĩāđāđāļŪāļāđāļĢāļāđāļĨāļ°āđāļŪāļāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļ āļĢāļ§āļĄāļāļķāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāđāļŪāļāļĨāđāļēāļŠāļļāļāđāļĨāļ°āđāļŪāļāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļ