ΠΠ΅Π΄Π°Π²Π½ΠΎ Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠΎΡΠΌΡ ΠΏΠΎΡΡΠΈΠ½Π³Π° golos.cf/md ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² Π½Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±Π΅Π½Π΅ΡΠΈΡΠΈΠ°ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ comment_options
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ golos-js Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° golos.broadcast.comment()
, Π²ΡΠΎΡΠΎΠΉ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠΏΡΠΈΠΉ ΠΏΠΎΡΡΠ°, Π² Ρ.Ρ. Π±Π΅Π½Π΅ΡΠΈΡΠΈΠ°ΡΠΎΠ² golos.broadcast.commentOptions()
Π’Π°ΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΌΠΈΠ½ΡΡΠΎΠ²: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
- Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΠΎ-Π²ΡΠΎΡΡΡ
- Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ° ΡΠ΅ΠΉ-ΡΠΎ Π±ΠΎΡ ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΡΠ΅Ρ Π·Π° ΠΏΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π΅ΡΠΈΡ Π²ΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΏΠΎΡΡΠ° - ΠΎΠΏΡΠΈΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡΡ Π½Π΅ ΠΏΡΠΈΠΌΡΡΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΡΡΠΎΠΌ ΡΠΆΠ΅ Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - ΡΡΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΎΠ±Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΎΠ΄Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π― ΡΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π» ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π½Π΅Π΅: π ΠΠΊΠΎΠ½ΠΎΠΌΠΈΠΌ ΡΠ΅ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Ρ 100 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΎΠ΄Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ , Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² nodeJS
Π ΡΠΎΡΠΌΠ° golos.cf/md ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ html ΠΈ ΡΠ°Π±ΠΎΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΡΠ°Π»ΠΎ Π±ΡΡΡ nodejs ΡΠ°ΠΌ Π½Π΅Ρ ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ JavaScript
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ ref_block_num
ΠΈ ref_block_prefix
- ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° Π³ΠΎΠ»ΠΎΡΠ΅. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ΅ΠΏΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΡ: Transactions as Proof of Stake - TaPoS
Π TaPoS Π²ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Ρ Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΈ
ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ (ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ) Π±Π»ΠΎΠΊΡ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² ΠΌΠΈΠΊΡΠΎΡΠΎΡΠΊ cΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ±ΡΠΎΡΠ΅Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΎΠΉ.
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌΡ Π±Π»ΠΎΠΊΡ last_irreversible_block_num
ΡΠΎΠΆΠ΅ Π²Π»Π΅ΡΠ΅Ρ ΡΡΠ΄ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ²Π΅ΠΆΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Ρ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Π½Π° ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² Π½Π°Π·Π°Π΄ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ golos-js ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ -3
Π±Π»ΠΎΠΊΠ° ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ head_block_number
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ steem-js ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ last_irreversible_block_num-1
Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° ΠΏΠΎΡΡΠΈ Π½Π° 20 Π±Π»ΠΎΠΊΠΎΠ² ΡΡΠ°ΡΠ΅Π΅.
ΠΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ golos, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π±ΡΠ΄Ρ ΡΠ°Π΄ ΡΡΠ»ΡΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π΅Ρ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ (Π½ΠΎΠΌΠ΅Ρ ΠΈ Ρ Π΅Ρ Π±Π»ΠΎΠΊΠ°)
ΠΠ΅ΡΠ²ΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ golos.api.getDynamicGlobalProperties
Π ΠΎΡΠ²Π΅ΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° head_block_number
(ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΎΡΠ½ΠΈΠΌΠ΅ΠΌ ΠΎΡ Π½Π΅Π³ΠΎ Π΅ΡΠ΅ - 2 Π±Π»ΠΎΠΊΠ°)
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°:
head_block_number: 15523551
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Ρ
Π΅Ρ Π±Π»ΠΎΠΊΠ° 15523551 - 3 = 15523548
Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ref_block_prefix
Π½ΠΎ Π·Π°ΠΏΡΠΎΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π΅ ΠΌΠΈΠ½ΡΡ - 3 ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, Π° ΠΌΠΈΠ½ΡΡ 2 ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ 15523549
ΠΠ°ΠΏΡΠΎΡ golos.api.getBlockHeader(15523549)
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°:
previous: '00ecdedcfd8699a358c4595f0233db938d6d5705'
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° previous (ΠΏΠ΅Ρ. ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ) - ΡΡΠΎ Ρ
Π΅Ρ Π±Π»ΠΎΠΊΠ° 15523548, ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ head_block_number
ΠΌΠΈΠ½ΡΡ 3.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΈ Ρ Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π²ΡΡΠΎΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΈΠ½ΡΡ 3 ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ.
ΠΠ»ΠΎΠΊ 15523548
Π₯Π΅Ρ 00ecdedcfd8699a358c4595f0233db938d6d5705
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ· ΡΡΠΈΡ
Π΄Π²ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π²Π΅ Π΄ΡΡΠ³ΠΈΠ΅ - ref_block_num
ΠΈ ref_block_prefix
ref_block_num
ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π² ΠΎΠ±ΠΎΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π² nodeJS ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
var refblocknum = 15523548 & 0xFFFF;
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ refblocknum ΡΠ°Π²Π½Π° 57052
, ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΡΠΎΡ Π½ΠΎΠΌΠ΅Ρ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ref_block_num
Π‘ ref_block_prefix
Π±ΡΠ»ΠΎ Π²ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ - Ρ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π·Π½Π°Π» ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΌΠΎΠ΄ΡΠ»Ρ Buffer Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½ΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ nodeJS ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² golos-js Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ref_block_num & ref_block_prefix
Π² NodeJS + ΠΌΠΎΠ΄ΡΠ»Ρ Buffer
const BlockPrefix = new Buffer('00ecdedcfd8699a358c4595f0233db938d6d5705', 'hex').readUInt32LE(4);
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ BlockPrefix ΡΠΈΡΠ»ΠΎ 2744747773 Π΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ Π² ref_block_prefix
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
"ref_block_num":57052,
"ref_block_prefix":2744747773
ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ref_block_num & ref_block_prefix
Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΎΡΡΡΠΌ JS
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Buffer ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² NodeJS ΠΈ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ JS ΡΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π nodeJS ΡΡΠ½ΠΊΡΠΈΡ new Buffer('00ecdedcfd8699a358c4595f0233db938d6d5705', 'hex')
Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΠΎΡΠ²Π΅Ρ Π²ΠΈΠ΄Π°:
<Buffer 00 ec de dc fd 86 99 a3 58 c4 59 5f 02 33 db 93 8d 6d 57 05>
Π .readUInt32LE(4)
Π²ΡΠ΄Π΅Π»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π°ΠΉΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Ρ ΠΈΡ
Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠΌ JS ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ°ΠΊ:
var blockid = '00ecdedcfd8699a358c4595f0233db938d6d5705';
n = [];
for (var i = 0; i < blockid.length; i += 2) {
n.push(blockid.substr(i, 2));
}
ΠΡΡΠ΅ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎ nodeJS
Π ΡΠ΅ΠΏΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ n
ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°:
[ '00', 'ec', 'de', 'dc', 'fd', '86', '99', 'a3', '58', 'c4', '59', '5f', '02', '33', 'db', '93', '8d', '6d', '57', '05' ]
ΠΠ· nodeJS Π½Π°ΠΌ ΡΡΠ½ΠΎ, ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π°ΠΉΡΠΈ ΡΠΈΡΠ»ΠΎ 2744747773
Π ΡΠΏΡΡΡΠ°Π½ΠΎ ΠΎΠ½ΠΎ Π²ΠΎΡ Π² ΡΡΠΎΠΌ ΠΊΡΡΠΊΠ΅ ... 'fd', '86', '99', 'a3' ...
ΡΡΠΎ 4,5,6 ΠΈ 7 ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π±Π°ΠΉΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΈ 4 Π±Π°ΠΉΡΠ° Π½ΡΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ Π²ΠΎΡ ΡΠ°ΠΊ a3 99 86 fd
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ:
var hex = n[7] + n[6] + n[5] + n[4];
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ hex Ρ Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ a39986fd
ΠΈ ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΎΡΡ Π² ΠΈΡΠΊΠΎΠΌΠΎΠ΅ ΡΠΈΡΠ»ΠΎ 2744747773 Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ hex Π² ΡΠΈΡΠ»ΠΎ:
var refBlockPrefix = parseInt(hex, 16)
Π’Π΅ΠΏΠ΅ΡΡ refBlockPrefix
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ref_block_prefix
ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½Π° html ΡΡΡΠ°Π½ΠΈΡΠ΅ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠ΄:
Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ operations
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ. Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ trx
Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π² Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠΎΠΈΡ
ΠΏΡΠΎΡΠ»ΡΡ
ΡΡΠ°ΡΠ΅ΠΉ.
ΠΠΈΠ²ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ https://golos.cf/md Π³Π΄Π΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Ρ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
Comments 7
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ. ΠΠ°Π΄ΡΠΌΠ°Π»ΡΡ: ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΡΠΎ Π²ΡΡ ΠΏΠΎΠ½ΡΡΡ...
ΠΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠ΅ΠΌΠ° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½Π°. JS Π·Π½Π°Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ: ΠΈΠ·ΡΡΠΈΠ» ΠΎΡΠ½ΠΎΠ²Ρ, Jquery, ajax.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ.
comment
ΠΈcomment_options
Π½ΡΠΆΠ½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ½Π°ΡΠ΅comment_options
ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΡΠΎΠΉΡΠΈ.Π‘Π°ΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
https://golos.cf/tx/?=16b914989b1b3c0bec170426372a316d1533e311
zoom
1 ,2 ΠΈ 3 Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ - ref ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈ id ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ + ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
4 - Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
5 - ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ html ΡΡΡΠ°Π½ΠΈΡΡ golos.cf/md ΡΠ°ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π· JS ΠΈ Jquery ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ c Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· golos-js
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ. ΠΠΎΡΠΌΠΎΡΡΡ golos.cf/md
ΠΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈ Ρ ΠΎΡΠΎΡΠΎ. Π― ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ.
ΠΠΎ Π±ΠΎΡΡΡ Π΅ΡΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ Π·Π°Π³Π²ΠΎΠ·Π΄ΠΊΠ°. ΠΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΊΡΠΎ-ΡΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. Π’ΠΎ Π±ΠΎΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅Π³ΠΎ ΠΆΠ΄Π΅Ρ ΡΠΈΠ°ΡΠΊΠΎ.
ΠΠΎΠ²ΡΠ΅ Π½Π΅Ρ.
Π ΠΏΠΎΡΡΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ»ΡΠΉ ΠΏΠΎΡΡ, ΡΠ°ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΡΠ»ΡΡΠΈΡΠΈΠ³ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ.
Π‘ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ "ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ Π±Π»ΠΎΠΊΡ Π»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡΡΡ" Π΄ΡΠΌΠ°Ρ Π²ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ "ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅", ΡΠΎ Π»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ ΠΊ last_irreversible (ΠΈΠ»ΠΈ ΡΡΡΡ ΡΠ°Π½ΡΡΠ΅).
Π Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° ΠΊ ΡΠ²Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ: "ΡΡΠΈΡΠ°ΡΡ ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π»ΠΎΠΊ ΠΏΠΎΠΏΠ°Π» Π² ΡΠ΅ΠΏΡ". ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ use-case: ΠΌΡ "ΡΠ»ΡΡΠ°Π΅ΠΌ" Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ head block, ΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π½Π΅ΠΊΠΈΠ΅ ΠΌΠΎΠ½Π΅ΡΡ Π½Π° Π½Π°Ρ Π°ΠΊΠΊΠ°ΡΠ½Ρ ΠΈ ΡΡΠ°Π·Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡ ΠΊΠΎΠΌΡ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ TaPoS ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΡΡ ΠΌΠΎΠ½Π΅ΡΡ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π° ΠΈΠ·-Π·Π° ΡΠΎΡΠΊΠ° ΡΠ΅ΠΏΠΈ, ΡΠΎ ΠΈ Π½Π°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ "ΠΎΡΠΌΠ΅Π½ΠΈΡΡΡ".