2017-เดจเตเดฑเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ, เดเตเดฒเดพเดธเดฟเดเต P2P เดฎเตเดธเดเตเดเดฑเตเดเดณเตเดเตเดเดพเตพ เดเตเดฃเดเตเดเตพ เดเตผเดเตเด เดเตเดฏเตเดคเตเดเตเดฃเตเดเต เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตฝ [เดชเตเดฐเตเด เดฒเดฟเดเตเดเตเด เดชเตเดฐเตเดซเตเดฒเดฟเตฝ เดเดฃเตเดเต] เดเดเตเดเตพ เดเดฐเต เดฎเตเดธเดเตเดเตผ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟ.
เดเดเดจเตเดจเตเดชเตเดพเดฏเดฟ 2.5
เดตเตผเดทเด, เดเดเตเดเดณเตเดเต เดเดถเดฏเด เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดเตเดเต: iOS, Web PWA, Windows, GNU/Linux, Mac OS, Android เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเต เดเดชเตเดชเตเตพ เดฎเตเดธเดเตเดเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดฃเต.
เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเตป เดฎเตเดธเดเตเดเตผ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เดเตเดฒเดฏเดจเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเต เด
เดคเดฟเดจเตเดฑเต API เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดเดจเตเดจเต เดเดเตเดเตพ เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเตเด.
เดเตเดฒเดพเดธเดฟเดเต P2P เดฎเตเดธเดเตเดเดฑเตเดเดณเตเดเต เดธเตเดฐเดเตเดทเดพ, เดธเตเดตเดเดพเดฐเตเดฏเดค เดชเตเดฐเดถเตโเดจเดเตเดเตพ เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเตป เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเต:
- เดเดฐเต เด เดเตเดเตเดฃเตเดเต เดธเตเดทเตโเดเดฟเดเตเดเดพเตป เดเดฑเตเดฑ เดเตเดฒเดฟเดเตเดเต - เดซเตเดฃเตเดเดณเต เดเดฎเตเดฏเดฟเดฒเตเดเดณเต เดเดฒเตเดฒ, เดตเดฟเดฒเดพเดธ เดชเตเดธเตโเดคเดเดเตเดเดณเดฟเดฒเตเดเตเดเต เดเดฟเดฏเตเดฒเตเดเตเดเตเดทเดจเตเดเดณเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเดฎเดฟเดฒเตเดฒ.
- เดเดจเตเดฑเตผเดฒเตเดเตเดเตเดเตเดเตผเดฎเดพเตผ เดเดฐเดฟเดเตเดเดฒเตเด เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เดเดฃเดเตเดทเดจเตเดเตพ เดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ; เดเดฒเตเดฒเดพ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดเตเดเดณเตเด เดจเตเดกเตเดเดณเตเดเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค เดธเดเดตเดฟเดงเดพเดจเดคเตเดคเดฟเดฒเตเดเตเดฏเดพเดฃเต เดจเดเดเตเดเตเดจเตเดจเดคเต. เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต IP เดตเดฟเดฒเดพเดธเดเตเดเตพ เดชเดฐเดธเตเดชเดฐเด เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
- เดเดฒเตเดฒเดพ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดเตปเดกเต-เดเต-เดเตปเดกเต เดเตผเดตเต25519xsalsa20poly1305 เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดเดฐเตเดฏเตเด เด เดคเตเดญเตเดคเดชเตเดชเตเดเตเดคเตเดคเดฟเดฒเตเดฒเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต, เดชเดเตเดทเต เดเดเตเดเดณเตเดเต เดธเตเดดเตเดธเต เดเตเดกเต เดคเตเดฑเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
- MITM เดเดเตเดฐเดฎเดฃเด เดเดดเดฟเดตเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต - เดเดฐเต เดธเดจเตเดฆเตเดถเดตเตเด เดเดฐเต เดเดเดชเดพเดเดพเดฃเต, เดเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต Ed25519 EdDSA เดเดฃเต.
- เดธเดจเตเดฆเตเดถเด เด
เดคเดฟเดจเตเดฑเต เดธเตเดตเดจเตเดคเด เดฌเตเดฒเตเดเตเดเดฟเตฝ เด
เดตเดธเดพเดจเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดฅเดฟเดฐเดคเดฏเตเด
timestamp
เดจเดฟเดเตเดเตพเดเตเดเต เดฌเตเดฒเตเดเตเดเตเดเตพ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ, เด เดคเดฟเดจเดพเตฝ เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดเตเดฐเดฎเด. - "เดเดพเตป เด เดคเต เดชเดฑเดเตเดเดฟเดฒเตเดฒ" เดเดจเตเดจเดคเต เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดฒเต เดธเดจเตเดฆเตเดถเดเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ.
- เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต "เดเดงเดฟเดเดพเดฐเดฟเดเดค" เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดจเตเดฆเตเดฐ เดเดเดจเดฏเตเด เดเดฒเตเดฒ. เดธเดฎเดตเดพเดฏเดคเตเดคเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดจเตเดกเตเดเดณเตเดเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค เดธเดเดตเดฟเดงเดพเดจเดฎเดพเดฃเต เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต, เดเดคเต เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดเดเดฎเดธเตเดฅเดคเดฏเดฟเดฒเตเดณเตเดณเดคเดพเดฃเต.
- เดธเตเตปเดธเตผเดทเดฟเดชเตเดชเดฟเดจเตเดฑเต เด เดธเดพเดงเตเดฏเดค - เด เดเตเดเตเดฃเตเดเตเดเตพ เดคเดเดฏเดพเดจเตเด เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
- เดเดธเตเดเดเดเดธเต เดตเดดเดฟเดฏเตเดณเตเดณ เดจเดฐเดเดคเตเดฒเตเดฏเดฎเดพเดฏ 2FA เดฏเตเดเตเดเต เดชเดเดฐเดฎเดพเดฃเต เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเตป 2FA,
เดเดฐเตเดชเดพเดเต เดเดฐเตเดเตเดฏเด เดจเดถเดฟเดชเตเดชเดฟเดเตเดเต. - เดจเดฟเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดธเดเดญเดพเดทเดฃเดเตเดเดณเตเด เดเดคเต เดเดชเดเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเดชเตเดชเตเตพ เดตเตเดฃเดฎเตเดเตเดเดฟเดฒเตเด เดจเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดจเดฟเดเตเดเตพ เดธเดเดญเดพเดทเดฃเดเตเดเตพ เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดธเดเดญเดฐเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ เดเดจเตเดจเดพเดฃเต.
- เดธเดจเตเดฆเตเดถ เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเด. เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดเดชเดเดฐเดฃเดคเตเดคเดฟเดฒเตเดเตเดเดฒเตเดฒ, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดฒเตเดเตเดเดพเดฃเต. เด เดเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เดเดคเต เดจเดฟเดเตเดเดณเตเดเต เดธเดจเตเดฆเตเดถเด เดตเดพเดฏเดฟเดเตเดเดพเดจเตเดณเตเดณ เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเต เดเดดเดฟเดตเดฟเดจเตเดฑเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดฎเดพเดฃเต. เดจเดฟเตผเดฃเดพเดฏเด เด เดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ เด เดฏเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดธเดตเดฟเดถเตเดทเดคเดฏเดพเดฃเดฟเดคเต.
เดเตเดฐเดฟเดชเตโเดฑเตเดฑเตเดเดฑเตปเดธเดฟเดเดณเดพเดฏ Ethereum, Dogecoin, Lisk, Dash, Bitcoin (เดเดคเต เดเดชเตเดชเตเดดเตเด เดชเตเดฐเตเดเดคเดฟเดฏเดฟเดฒเดพเดฃเต) เดเดพเดฑเตเดฑเตเดเดณเดฟเตฝ เดเตเดเตเดเดฃเตเดเตพ เด เดฏเดฏเตโเดเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เดเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเตเดณเตเดณ เด เดเตเดคเตเดค เดธเดเดฏเตเดเดจเดตเตเด เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเตป เดเดจเตเดเตเดฒเตเดฏเดเตเดเดณเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต. เดเดเตเดเตพ เดเดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เดเตป เดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดเตเดธเตเดเตเดเตเดเตผ เดชเตเดฒเตเด เดเดฃเตเดเดพเดเตเดเดฟ.
เดชเดฟเดจเตเดจเต - เดเดฒเตเดฒเดพเด เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเดฐเต เดเดเดชเดพเดเดพเดฃเต
เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเดจเดฟเดฒเต เดเดเดชเดพเดเตเดเตพ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดฑเตเดฑเตเดจเตเดจเดฟเดฒเตเดเตเดเต เดเตเดเตเดเดฃเตเดเตพ (เดจเดพเดฃเดฏเดเตเดเตพ) เดเตเดฎเดพเดฑเตเดจเตเดจเต เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดฒเตเดฒเดพเดตเดฐเตเด เดเดคเดฟเดจเดเด เดชเดฐเดฟเดเดฟเดคเดฎเดพเดฃเต. เดฌเดฟเดฑเตเดฑเตเดเตเดฏเดฟเตป เดชเตเดฒเต. เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดคเดฐเด เดเดเดชเดพเดเต เดธเตเดทเตเดเดฟเดเตเดเต.
เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดฒเต เดเดฐเต เดฎเตเดธเดเตเดเดฑเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เด เดฏเดฏเตโเดเตเดเดพเตป, เดจเดฟเดเตเดเตพ เดจเดฟเดฐเดตเดงเดฟ เดเดเตเดเดเตเดเดณเดฟเดฒเตเดเต เดเดเดจเตเดจเตเดชเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
- เดธเดจเตเดฆเตเดถ เดตเดพเดเดเด เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด
- เดเดฐเต เดเดเดชเดพเดเดฟเตฝ เดธเตเดซเตผเดเตเดเตเดธเตเดฑเตเดฑเต เดเดเตเด
- เดเดเดชเดพเดเดฟเตฝ เดเดชเตเดชเดฟเดเตเด
- เดเดคเตเดเตเดเดฟเดฒเตเด เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดจเตเดกเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดเดชเดพเดเต เด เดฏเดฏเตเดเตเดเตเด
- เดจเตเดกเตเดเดณเตเดเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค เดธเดเดตเดฟเดงเดพเดจเด เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต "เดเดงเดฟเดเดพเดฐเดฟเดเดค" เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต
- เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดธเดจเตเดฆเตเดถเดตเตเดฎเดพเดฏเตเดณเตเดณ เดเดเดชเดพเดเต เด เดเตเดคเตเดค เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต
- เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเต เดธเดจเตเดฆเตเดถ เดเดเดชเดพเดเต เดตเตเดฃเตเดเตเดเตเดเตเดเตเดเดฏเตเด เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
1-3 เดเด 7 เดเด เดเดเตเดเดเตเดเตพ เดเตเดฒเดฏเดจเตเดฑเดฟเตฝ เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต 5-6 เดเดเตเดเดเตเดเตพ เดนเตเดธเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดจเดเดคเตเดคเตเดจเตเดจเต.
เดธเดจเตเดฆเตเดถ เดเตปเดเตเดฐเดฟเดชเตเดทเตป
เดธเดจเตเดฆเตเดถเด เด
เดฏเดเตเดเดฏเดพเดณเตเดเต เดธเตเดตเดเดพเดฐเตเดฏ เดเตเดฏเตเด เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเต เดชเตเดคเต เดเตเดฏเตเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดเตเดเตพ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดคเต เดเต เดเดเตเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เดเดคเดฟเดจเดพเดฏเดฟ, เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเต เด
เดเตเดเตเดฃเตเดเต เดเดฐเดเดญเดฟเดเตเดเดฃเด, เด
เดคเดพเดฏเดคเต, เดเตเดฑเดเตเดเดคเต เดเดฐเต เดเดเดชเดพเดเตเดเตเดเดฟเดฒเตเด เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต REST เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดเดชเดฏเตเดเดฟเดเตเดเดพเด GET /api/accounts/getPublicKey?address={ADAMANT address}
, เดเตเดเดพเดคเต เดเดพเดฑเตเดฑเตเดเตพ เดฒเตเดกเตเดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เดเดจเตเดฑเตผเดฒเตเดเตเดเตเดเตเดเตผเดฎเดพเดฐเตเดเต เดชเตเดคเต เดเตเดเตพ เดเดคเดฟเดจเดเด เดฒเดญเตเดฏเดฎเดพเดเตเด.
เดฎเตเดธเดเตเดเตผ curve25519xsalsa20poly1305 เด
เตฝเดเตเดฐเดฟเดคเด เดเดชเดฏเตเดเดฟเดเตเดเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต (
เดเดพเดตเดพเดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดเดคเดพ:
/**
* Encodes a text message for sending to ADM
* @param {string} msg message to encode
* @param {*} recipientPublicKey recipient's public key
* @param {*} privateKey our private key
* @returns {{message: string, nonce: string}}
*/
adamant.encodeMessage = function (msg, recipientPublicKey, privateKey) {
const nonce = Buffer.allocUnsafe(24)
sodium.randombytes(nonce)
if (typeof recipientPublicKey === 'string') {
recipientPublicKey = hexToBytes(recipientPublicKey)
}
const plainText = Buffer.from(msg)
const DHPublicKey = ed2curve.convertPublicKey(recipientPublicKey)
const DHSecretKey = ed2curve.convertSecretKey(privateKey)
const encrypted = nacl.box(plainText, nonce, DHPublicKey, DHSecretKey)
return {
message: bytesToHex(encrypted),
nonce: bytesToHex(nonce)
}
}
เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเดเดชเดพเดเต เดฐเตเดชเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต
เดเดเดชเดพเดเดฟเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดคเต เดเดเดจเดฏเตเดฃเตเดเต:
{
"id": "15161295239237781653",
"height": 7585271,
"blockId": "16391508373936326027",
"type": 8,
"block_timestamp": 45182260,
"timestamp": 45182254,
"senderPublicKey": "bd39cc708499ae91b937083463fce5e0668c2b37e78df28f69d132fce51d49ed",
"senderId": "U16023712506749300952",
"recipientId": "U17653312780572073341",
"recipientPublicKey": "23d27f616e304ef2046a60b762683b8dabebe0d8fc26e5ecdb1d5f3d291dbe21",
"amount": 204921300000000,
"fee": 50000000,
"signature": "3c8e551f60fedb81e52835c69e8b158eb1b8b3c89a04d3df5adc0d99017ffbcb06a7b16ad76d519f80df019c930960317a67e8d18ab1e85e575c9470000cf607",
"signatures": [],
"confirmations": 3660548,
"asset": {}
}
เดเดฐเต เดธเดจเตเดฆเตเดถ เดเดเดชเดพเดเดฟเดจเต, เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด เดเดพเดฐเตเดฏเด asset
- เดจเดฟเดเตเดเตพ เดตเดธเตเดคเตเดตเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดธเตเดฅเดพเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต chat
เดเดเดจเดฏเตเดเต:
message
- เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดค เดธเดจเตเดฆเตเดถเด เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดown_message
-เดเดฐเดฟเดเตเดเดฒเตเดtype
- เดธเดจเตเดฆเตเดถ เดคเดฐเด
เดธเดจเตเดฆเตเดถเดเตเดเดณเตเด เดคเดฐเดเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด
เดเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เดชเดฐเดพเดฎเตเดฑเตเดฑเตผ type
เดเดเตเดเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดฃเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเตเดจเตเดจเต message
. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตเดเตโเดธเตโเดฑเตเดฑเต เด
เดฏเดฏเตโเดเตเดเดพเด, เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดฐเดธเดเดฐเดฎเดพเดฏ เดเดพเดฐเตเดฏเดเตเดเตพ เดเดณเตเดณ เดเดฐเต เดเดฌเตโเดเดเตเดฑเตเดฑเต เด
เดฏเดฏเตโเดเตเดเดพเด - เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดพเดฑเตเดฑเตเดเดณเดฟเตฝ เดฎเตเดธเดเตเดเตผ เดเตเดฐเดฟเดชเตโเดฑเตเดฑเตเดเดฑเตปเดธเดฟ เดเตเดฎเดพเดฑเตเดฑเด เดจเดเดคเตเดคเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเดพเดฃเต.
เดซเดฒเดฎเดพเดฏเดฟ, เดเดเตเดเตพ เดเดฐเต เดเดเดชเดพเดเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต:
{
"transaction": {
"type": 8,
"amount": 0,
"senderId": "U12499126640447739963",
"senderPublicKey": "e9cafb1e7b403c4cf247c94f73ee4cada367fcc130cb3888219a0ba0633230b6",
"asset": {
"chat": {
"message": "cb682accceef92d7cddaaddb787d1184ab5428",
"own_message": "e7d8f90ddf7d70efe359c3e4ecfb5ed3802297b248eacbd6",
"type": 1
}
},
"recipientId": "U15677078342684640219",
"timestamp": 63228087,
"signature": "ััั ะฑัะดะตั ะฟะพะดะฟะธัั"
}
}
เดเดเดชเดพเดเต เดเดชเตเดชเต
เด เดฏเดฏเตโเดเตเดเตเดจเตเดจเดฏเดพเดณเตเดเตเดฏเตเด เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเตเดฏเตเด เดเดงเดฟเดเดพเดฐเดฟเดเดค, เด เดฏเดฏเตโเดเตเดเตเดจเตเดจ เดธเดฎเดฏเด, เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดเดณเตเดณเดเดเตเดเด เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดตเดฟเดถเตเดตเดพเดธเดฎเตเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดเดเดชเดพเดเดฟเตฝ เดเดชเตเดชเตเดตเดเตเดเต. เดเดฐเต เดชเตเดคเต เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเดเดชเดพเดเดฟเดจเตเดฑเต เดเดงเดฟเดเดพเดฐเดฟเดเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดฐเต เดกเดฟเดเดฟเดฑเตเดฑเตฝ เดธเดฟเดเตเดจเตเดเตเดเตผ เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต - เดเดคเดฟเดจเต เดเดฐเต เดธเตเดตเดเดพเดฐเตเดฏ เดเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
เดเดจเตเดจเดพเตฝ เดธเตเดตเดเดพเดฐเตเดฏ เดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเดชเตเดชเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต:
เดเดเตเดเตพ เดเดฆเตเดฏเด SHA-256 เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดเดเดชเดพเดเต เดนเดพเดทเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดคเตเดเตผเดจเตเดจเต เดเดชเตเดชเดฟเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดจเตเดจเต เดกเดฏเดเตเดฐเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต signature
, เดเดเดชเดพเดเต เดเดกเดฟ SHA-256 เดนเดพเดทเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฃเต.
เดเดฆเดพเดนเดฐเดฃเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ:
1 - เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเตพเดชเตเดชเตเดเต เดเดฐเต เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเต เดฐเตเดชเตเดเดฐเดฟเดเตเดเตเด
/**
* Calls `getBytes` based on transaction type
* @see privateTypes
* @implements {ByteBuffer}
* @param {transaction} trs
* @param {boolean} skipSignature
* @param {boolean} skipSecondSignature
* @return {!Array} Contents as an ArrayBuffer.
* @throws {error} If buffer fails.
*/
adamant.getBytes = function (transaction) {
...
switch (transaction.type) {
case constants.Transactions.SEND:
break
case constants.Transactions.CHAT_MESSAGE:
assetBytes = this.chatGetBytes(transaction)
assetSize = assetBytes.length
break
โฆ
default:
alert('Not supported yet')
}
var bb = new ByteBuffer(1 + 4 + 32 + 8 + 8 + 64 + 64 + assetSize, true)
bb.writeByte(transaction.type)
bb.writeInt(transaction.timestamp)
...
bb.flip()
var arrayBuffer = new Uint8Array(bb.toArrayBuffer())
var buffer = []
for (var i = 0; i < arrayBuffer.length; i++) {
buffer[i] = arrayBuffer[i]
}
return Buffer.from(buffer)
}
2 - เดกเดพเดฑเตเดฑ เดฌเตเดฒเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต SHA-256 เดเดฃเตเดฃเตเด
/**
* Creates hash based on transaction bytes.
* @implements {getBytes}
* @implements {crypto.createHash}
* @param {transaction} trs
* @return {hash} sha256 crypto hash
*/
adamant.getHash = function (trs) {
return crypto.createHash('sha256').update(this.getBytes(trs)).digest()
}
3 - เดเดเดชเดพเดเดฟเตฝ เดเดชเตเดชเดฟเดเตเด
adamant.transactionSign = function (trs, keypair) {
var hash = this.getHash(trs)
return this.sign(hash, keypair).toString('hex')
}
/**
* Creates a signature based on a hash and a keypair.
* @implements {sodium}
* @param {hash} hash
* @param {keypair} keypair
* @return {signature} signature
*/
adamant.sign = function (hash, keypair) {
return sodium.crypto_sign_detached(hash, Buffer.from(keypair.privateKey, 'hex'))
}
เดเดฐเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดจเตเดกเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเตเดเตเดเตเดเดฟเดฏ เดเดฐเต เดเดเดชเดพเดเต เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต
เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดตเดฟเดเตเดจเตเดฆเตเดฐเตเดเตเดคเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดเดชเตเดชเตบ API เดเดณเตเดณ เดเดคเต เดจเตเดกเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด. เด
เดตเดธเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต POST เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเตเดจเตเดจเต api/transactions
:
curl 'api/transactions' -X POST
-d 'TX_DATA'
เดชเตเดฐเดคเดฟเดเดฐเดฃเดฎเดพเดฏเดฟ เดเดเตเดเตพเดเตเดเต เดเดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดฐเต เดเดเดชเดพเดเต เดเดกเดฟ เดฒเดญเดฟเดเตเดเตเด
{
"success": true,
"nodeTimestamp": 63228852,
"transactionId": "6146865104403680934"
}
เดเดเดชเดพเดเต เดฎเตเดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด
เดธเดฎเดตเดพเดฏเดคเตเดคเดฟเดจเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดจเตเดกเตเดเดณเตเดเต เดเดฐเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค เดธเดฟเดธเตเดฑเตเดฑเด, เดเดเดชเดพเดเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต "เดเดงเดฟเดเดพเดฐเดฟเดเดค" เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต, เดเตผเดเตเดเต, เดเดชเตเดชเตเตพ, เดธเดจเตเดฆเตเดถเด เดฎเดฑเตเดฑเตเดจเตเดจเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เด เดฏเดฏเตโเดเตเดเตเดจเตเดจ เดธเดฎเดฏเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต. เดเดคเต เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเดจเดฟเดจเตเดฑเต เดตเดณเดฐเต เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด เดเดฐเต เดจเตเดเตเดเดฎเดพเดฃเต - เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดคเตเดคเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฏ เดเดฐเต เดเตเดจเตเดฆเตเดฐ เดเดเดจเดฏเตเด เดเดฒเตเดฒ, เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดเตเดฐเดฎเดตเตเด เด เดตเดฏเตเดเต เดเดณเตเดณเดเดเตเดเดตเตเด เดตเตเดฏเดพเดเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เดเดฆเตเดฏเด, เดเดฐเต เดจเตเดกเต เดเตเดคเตเดฏเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เด เดคเต เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผเดเตเดเต เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต - เดเดฒเตเดฒเดพเด เดเตเดฐเดฎเดคเตเดคเดฟเดฒเดพเดฃเตเดจเตเดจเต เดญเตเดฐเดฟเดชเดเตเดทเด เดชเดฑเดเตเดเดพเตฝ, เดเดเดชเดพเดเต เดเตเดฏเดฟเดจเดฟเดจเตเดฑเต เด เดเตเดคเตเดค เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด - เดเดคเต เดธเดฎเดตเดพเดฏเดฎเดพเดฃเต.
เดชเดฐเดฟเดถเตเดงเดจเดเตพเดเตเดเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฏ เดจเตเดกเต เดเตเดกเดฟเดจเตเดฑเต เดญเดพเดเด GitHub-เตฝ เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด -
เดเดฐเต เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเดฎเตเดณเตเดณ เดเดเดชเดพเดเต เดเตพเดชเตเดชเตเดเต
เดธเดฎเดตเดพเดฏเดคเตเดคเดฟเดฒเตเดคเตเดคเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดเตเดเดณเตเดเต เดธเดจเตเดฆเตเดถเดคเตเดคเตเดเตเดเตเดเดฟเดฏ เดเดเดชเดพเดเต เดธเดพเดงเตเดตเดพเดฏ เดฎเดฑเตเดฑเต เดเดเดชเดพเดเตเดเตพเดเตเดเตเดชเตเดชเด เด เดเตเดคเตเดค เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด.
เดฌเตเดฒเตเดเตเดเตเดเตพเดเตเดเต เดเตผเดถเดจเดฎเดพเดฏ เดเดฐเต เดเตเดฐเดฎเดฎเตเดฃเตเดเต, เดเตเดเดพเดคเต เดเดฐเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดฌเตเดฒเตเดเตเดเตเด เดฎเตเตป เดฌเตเดฒเตเดเตเดเตเดเดณเตเดเต เดนเดพเดทเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเดพเดฃเต เดฐเตเดชเดชเตเดชเตเดเตเดจเตเดจเดคเต.
เดเดเตเดเดณเตเดเต เดธเดจเตเดฆเตเดถเดตเตเด เด เดถเตเดฐเตเดฃเดฟเดฏเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เด
เดคเต "เดชเตเดจเดเดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเตป" เดเดดเดฟเดฏเดฟเดฒเตเดฒ เดเดจเตเดจเดคเดพเดฃเต. เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเดฐเต เดฌเตเดฒเตเดเตเดเดฟเตฝ เดตเตเดดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด
เดตเดฏเตเดเต เดเตผเดกเตผ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดชเตเดชเตเดเตเด timestamp
เดธเดจเตเดฆเตเดถเดเตเดเตพ.
เดธเดจเตเดฆเตเดถเดเตเดเตพ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต
เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเต เด
เดฏเดเตเด เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดเดชเดพเดเตเดเตพ เดฎเตเดธเดเตเดเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเต. เดเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพ เดเดฐเต เด
เดตเดธเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเต เดเดฃเตเดเดพเดเตเดเดฟ api/chatrooms
.
เดเดฒเตเดฒเดพ เดเดเดชเดพเดเตเดเดณเตเด เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดฒเดญเตเดฏเดฎเดพเดฃเต - เดจเดฟเดเตเดเตพเดเตเดเต เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดค เดธเดจเตเดฆเตเดถเดเตเดเตพ เดฒเดญเดฟเดเตเดเตเด. เดเดจเตเดจเดพเตฝ เดธเตเดตเตเดเตผเดคเตเดคเดพเดตเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต เด เดตเดจเตเดฑเต เดธเตเดตเดเดพเดฐเตเดฏ เดเตเดฏเตเด เด เดฏเดเตเดเดฏเดพเดณเตเดเต เดชเตเดคเต เดเตเดฏเตเด เดเดชเดฏเตเดเดฟเดเตเดเต เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเต:
**
* Decodes the incoming message
* @param {any} msg encoded message
* @param {string} senderPublicKey sender public key
* @param {string} privateKey our private key
* @param {any} nonce nonce
* @returns {string}
*/
adamant.decodeMessage = function (msg, senderPublicKey, privateKey, nonce) {
if (typeof msg === 'string') {
msg = hexToBytes(msg)
}
if (typeof nonce === 'string') {
nonce = hexToBytes(nonce)
}
if (typeof senderPublicKey === 'string') {
senderPublicKey = hexToBytes(senderPublicKey)
}
if (typeof privateKey === 'string') {
privateKey = hexToBytes(privateKey)
}
const DHPublicKey = ed2curve.convertPublicKey(senderPublicKey)
const DHSecretKey = ed2curve.convertSecretKey(privateKey)
const decrypted = nacl.box.open(msg, nonce, DHPublicKey, DHSecretKey)
return decrypted ? decode(decrypted) : ''
}
เดชเดฟเดจเตเดจเต เดตเตเดฑเต เดเดจเตเดคเตเดพเดเตเดเตเดฏเดพเดฃเต?
เดเดเดฆเตเดถเด 5 เดธเตเดเตเดเตปเดกเดฟเดจเตเดณเตเดณเดฟเตฝ เดธเดจเตเดฆเตเดถเดเตเดเตพ เด เดฐเตเดคเดฟเดฏเดฟเตฝ เดกเตเดฒเดฟเดตเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ - เดเดฐเต เดชเตเดคเดฟเดฏ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดฌเตเดฒเตเดเตเดเต เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต - เดเดเตเดเตพ เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเต-เดเต-เดจเตเดกเต, เดจเตเดกเต-เดเต-เดจเตเดกเต เดธเตเดเตเดเดฑเตเดฑเต เดเดฃเดเตเดทเดจเตเดฎเดพเดฏเดฟ เดเดคเตเดคเดฟ. เดเดฐเต เดจเตเดกเดฟเดจเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเดเดชเดพเดเต เดฒเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ, เด เดคเต เด เดคเดฟเดจเตเดฑเต เดธเดพเดงเตเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดเดฏเตเด เดฎเดฑเตเดฑเต เดจเตเดกเตเดเดณเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดธเดฎเดตเดพเดฏเด เดเดฃเตเดเดพเดเตเดจเตเดจเดคเดฟเดจเตเด เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด เดฎเตเดฎเตเดชเตเดคเดจเตเดจเต เดเดเดชเดพเดเต เดฎเตเดธเดเตเดเตผ เดเตเดฒเดฏเดจเตเดฑเตเดเตพเดเตเดเต เดฒเดญเตเดฏเดฎเดพเดฃเต. เดเดคเตเดตเดดเดฟ เดธเดพเดงเดพเดฐเดฃ เดคเตฝเดเตเดทเดฃ เดธเดจเตเดฆเตเดถเดตเดพเดนเดเดฐเต เดชเตเดฒเต เดเดเตเดเตพ เดคเตฝเดเตเดทเดฃเด เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตเดฎเดพเดฑเตเด.
เดตเดฟเดฒเดพเดธ เดชเตเดธเตเดคเดเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเตเดตเดฟเดเดธเต เดเดฃเตเดเดพเดเตเดเดฟ - เดเต-เดตเดพเดฒเตเดฏเต เดธเตเดฑเตเดฑเตเดฑเตเดเต - เดเดคเต เดฎเดฑเตเดฑเตเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดเดชเดพเดเดพเดฃเต. asset
เดเดคเต เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต NaCl-box เด
เดฒเตเดฒ, เดฎเดฑเดฟเดเตเดเต
เดซเดฏเตฝ/เดเดฟเดคเตเดฐ เดเตเดฎเดพเดฑเตเดฑเดเตเดเตพเดเตเดเตเด เดเตเดฐเตเดชเตเดชเต เดเดพเดฑเตเดฑเตเดเตพเดเตเดเตเด เดเดชเตเดชเตเดดเตเด เดตเดณเดฐเตเดฏเดงเดฟเดเด เดเตเดฒเดฟ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดฌเตเดฒเดฃเตเดเตผ เดเตปเดกเต เดฌเตเดฒเดฃเตเดเตผ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดเดคเต เดชเตเดเตเดเตเดจเตเดจเต "เดธเตเดเตเดฐเตเดกเต เด เดชเตเดชเต" เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เด เดคเต เดจเดฟเดฒเดตเดพเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเตเดตเดเดพเดฐเตเดฏเดค เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต.
เด เดคเต, เดเดจเดฟเดฏเตเด เดเตเดฏเตเดฏเดพเดจเตเดฃเตเดเต - เดฏเดฅเดพเตผเดคเตเดฅ เดธเตเดตเดเดพเดฐเตเดฏเดค เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพ เดชเตเดคเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดจเตเดกเตเดเดณเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เด เดตเดฐเตเดเตเดคเต เดเดฏเตผเดคเตเดคเตเด. เดเดคเตเดฐ เดถเดคเดฎเดพเดจเด เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเดพเดฃเต เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฟเดเตเดเตพ เดเดฐเตเดคเตเดจเตเดจเต? เด เดคเต เดถเดฐเดฟเดฏเดพเดฃเต, 0. เดฎเตเดธเดเตเดเดฑเดฟเดจเตเดฑเต เดเตเตผ เดชเดคเดฟเดชเตเดชเต เดเดชเดฏเตเดเดฟเดเตเดเต เด เดชเตเดฐเดถเตเดจเด เดญเดพเดเดฟเดเดฎเดพเดฏเดฟ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดเตเดเต.
เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตฝ เดเดฐเต เดฎเตเดธเดเตเดเตผ เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดคเตเดณเดฟเดฏเดฟเดเตเดเต. เดฎเตเดฎเตเดชเต, 2012 เตฝ เดเดฐเต เดถเตเดฐเดฎเด เดฎเดพเดคเตเดฐเดฎเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเตเดณเตเดณเต -
เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเดจเดฟเดฒเต เดธเดจเตเดฆเตเดถเดตเดพเดนเดเตผ เด
เดตเดฐเตเดเต เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดฎเตเดจเตเดจเดฟเดฒเดพเดฃเตเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดพเดฃเต เดธเดเดถเดฏเดคเตเดคเดฟเดจเต เดเดพเดฐเดฃเด - เดเดณเตเดเตพ เด
เดตเดฐเตเดเต เด
เดเตเดเตเดฃเตเดเดฟเดจเตเดฑเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดเดฑเตเดฑเตเดเตเดเตเดเดพเตป เดคเดฏเตเดฏเดพเดฑเดฒเตเดฒ, เดตเตเดฏเดเตเดคเดฟเดเดค เดตเดฟเดตเดฐเดเตเดเตพ เดธเตเดตเดจเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดเดคเตเดตเดฐเต เดเดฐเต เดชเตเดฐเดตเดฃเดคเดฏเดฒเตเดฒ, เดเตเดเดพเดคเต เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตฝ เดเดฏเตผเดจเตเดจ เดตเตเดเดค เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเตเดเตเดคเตฝ เดธเดพเดเตเดเตเดคเดฟเด เด
เดจเดฒเตเดเตเดเตพ เด
เดเตเดคเตเดคเดคเดพเดฏเดฟ เดฆเตเดถเตเดฏเดฎเดพเดเตเด. เดจเดฟเดเตเดเตพ เดเดพเดฃเตเด.
เด
เดตเดฒเดเดฌเด: www.habr.com