แž‡แžทแŸ‡แž›แžพแž”แžŽแŸ’แžแžถแž‰ 3.0 แžšแž›แž€

แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸ Christophe Verdot แž“แžทแž™แžถแž™แžขแŸ†แž–แžธแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแžแžถแž˜แžขแŸŠแžธแž“แž’แžบแžŽแžทแž 'แžŸแŸ’แž‘แžถแžแŸ‹แž‡แŸ†แž“แžถแž‰แž‚แŸแž แž‘แŸ†แž–แŸแžš 3.0 แž‡แžถแž˜แžฝแž™แžšแž›แž€' แžŠแŸ‚แž›แž‚แžถแžแŸ‹แž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แžแŸ’แž˜แžธแŸ—แž“แŸแŸ‡แŸ”

แž‡แžทแŸ‡แž›แžพแž”แžŽแŸ’แžแžถแž‰ 3.0 แžšแž›แž€

แž”แŸ’แžšแžถแž”แŸ‹แž™แžพแž„แž”แž“แŸ’แžแžทแž…แžขแŸ†แž–แžธแžแŸ’แž›แžฝแž“แžขแŸ’แž“แž€แŸ” แžแžพโ€‹แžขแŸ’แž“แž€โ€‹แž…แžถแž”แŸ‹โ€‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸโ€‹แžขแŸ’แžœแžธโ€‹แž€แŸ’แž“แžปแž„โ€‹แžœแž‚แŸ’แž‚โ€‹แžŸแžทแž€แŸ’แžŸแžถโ€‹แž“แŸแŸ‡?

แžแŸ’แž‰แžปแŸ†โ€‹แž”แžถแž“โ€‹แž’แŸ’แžœแžพโ€‹แž€แžถแžšโ€‹แžขแž—แžทแžœแžŒแŸ’แžโ€‹แž‚แŸแž แž‘แŸ†แž–แŸแžšโ€‹แž”แŸ’แžšแž แŸ‚แž› 15 แž†แŸ’แž“แžถแŸ†โ€‹แž˜แž€โ€‹แž แžพแž™ แž—แžถแž‚แž…แŸ’แžšแžพแž“โ€‹แž‡แžถโ€‹แžขแŸ’แž“แž€โ€‹แžฏแž€แžšแžถแž‡แŸ’แž™แŸ”

แžแžŽแŸˆแž–แŸแž›แžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แžปแŸ‡แžˆแŸ’แž˜แŸ„แŸ‡แžšแž™แŸˆแž–แŸแž›แžœแŸ‚แž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž‘แŸแžŸแž€แŸ†แž–แžปแž„แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แŸ’แžšแžปแž˜แž’แž“แžถแž‚แžถแžš แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž”แŸ’แžšแžˆแž˜แž˜แžปแžแž“แžนแž„แž—แžถแžšแž€แžทแž…แŸ’แž…แž“แŸƒแž€แžถแžšแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹ blockchain แž‘แŸ…แž€แŸ’แž“แžปแž„แžœแžถแŸ” แž“แŸ…แž–แŸแž›แž“แŸ„แŸ‡ แžแŸ’แž‰แžปแŸ†แž˜แžทแž“แž”แžถแž“แžŠแžนแž„แž…แŸ’แžšแžพแž“แžขแŸ†แž–แžธแžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แŸแžแŸ’แžš blockchain แž‘แŸ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแžแŸ’แž‰แžปแŸ†แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž›แžพแž”แž…แŸ’แž…แŸแž€แžœแžทแž‘แŸ’แž™แžถแž‚แŸ’แžšแžธแž”แžแžผ แž—แžถแž‚แž…แŸ’แžšแžพแž“แž‡แžถแžœแžทแž“แžทแž™แŸ„แž‚แžทแž“แž€แŸแžŠแŸ„แž™แŸ”

แž‡แžถแž›แž‘แŸ’แž’แž•แž› แž˜แžปแžแž„แžถแžšแž“แŸแŸ‡แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžŠแŸ„แž™แž‚แžทแžแžแžถแžŸแŸ’แžแžถแž”แŸแž“ แž“แžทแž„แž’แž“แžถแž‚แžถแžšแž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž“แžนแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แŸ‚แž”แž“แŸแŸ‡แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžŠแžพแž˜แžŸแžทแž€แŸ’แžŸแžถแž–แžธแž”แž‰แŸ’แž แžถแž“แŸแŸ‡ แž แžพแž™แž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžŠแžพแž˜แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž—แŸ’แž›แžถแž˜แŸ—แŸ” แžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹แž แžแŸ’แžแž›แŸแžแžถ.

แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž€แŸ†แžŽแŸ‚แž”แŸ‚แžแžถแžšแž”แžŸแŸ‹แžœแžถ แžŠแŸ‚แž›แž˜แžถแž“แžšแžฝแž…แž แžพแž™แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰แž˜แŸแŸ” แž“แŸ…แž–แŸแž›แž“แŸ„แŸ‡ แž˜แžทแž“แž˜แžถแž“ [Waves programming language] Ride แž‘แŸ แžŠแžผแž…แŸ’แž“แŸแŸ‡แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž’แŸ’แžœแžพแžขแŸ’แžœแžธแŸ—แž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แžแžถแž˜แžšแž”แŸ€แž”แžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแž แžŠแŸ„แž™แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚แž‡แžถแž˜แžฝแž™ JSON แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž—แŸ’แž‡แžถแž”แŸ‹แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž‚แŸ„แž›แžŠแŸ…แž…แž˜แŸ’แž”แž„แž‚แžบแžŠแžพแž˜แŸ’แž”แžธแž”แž“แŸ’แžแŸ‚แž˜แž˜แžปแžแž„แžถแžšแž€แž˜แŸ’แžšแžทแžแžแŸ’แž–แžŸแŸ‹แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธ Ride แž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แŸ” แž แžพแž™แž“แŸแŸ‡แž‚แžบแž‡แžถแž แŸแžแžปแž•แž›แž…แž˜แŸ’แž”แž„แžŠแŸ‚แž›แžแŸ’แž‰แžปแŸ†แž…แžผแž›แžšแžฝแž˜แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแŸ– แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž”แž“แŸ’แž‘แžถแž”แŸ‹แž“แŸƒแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž‚แž˜แŸ’แžšแŸ„แž„แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แžนแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžœแžทแž˜แž‡แŸ’แžˆแž€แžถแžš (dApp)แŸ”

แžแžพโ€‹แž‘แžทแžŠแŸ’แž‹แž—แžถแž–โ€‹แž“แŸƒโ€‹แžœแž‚แŸ’แž‚โ€‹แžŸแžทแž€แŸ’แžŸแžถโ€‹แž˜แžฝแž™โ€‹แžŽแžถโ€‹แžŠแŸ‚แž›โ€‹แžขแŸ’แž“แž€โ€‹แžšแž€โ€‹แžƒแžพแž‰โ€‹แžแžถโ€‹แžŸแŸ’แžšแžฝแž›โ€‹แž”แŸ†แž•แžปแž แž แžพแž™โ€‹แž˜แžฝแž™โ€‹แžŽแžถโ€‹แž‡แžถโ€‹แž€แžถแžšโ€‹แž›แŸ†แž”แžถแž€โ€‹แž”แŸ†แž•แžปแž?

แžขแŸ’แžœแžธโ€‹แžŠแŸ‚แž›โ€‹แžŸแžถแž˜แž‰แŸ’แž‰โ€‹แž”แŸ†แž•แžปแžโ€‹แž‚แžบโ€‹แž™แžพแž„โ€‹แž˜แžถแž“โ€‹แž–แŸแž›โ€‹แžœแŸแž›แžถโ€‹แž‚แŸ’แžšแž”แŸ‹โ€‹แž‚แŸ’แžšแžถแž“แŸ‹โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž‚แŸ’แžšแž”แŸ‹โ€‹แž€แžทแž…แŸ’แž…แž€แžถแžšแŸ” แž…แŸ†แžŽแžปแž…โ€‹แž“แŸƒโ€‹แžœแž‚แŸ’แž‚โ€‹แžŸแžทแž€แŸ’แžŸแžถโ€‹แž‚แžบโ€‹แžšแŸ€แž“โ€‹แžขแŸ’แžœแžธโ€‹แž˜แžฝแž™โ€‹แž แžพแž™โ€‹แž˜แžทแž“โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แŸ’แžšแž‡แŸ‚แž„โ€‹แž‚แŸ’แž“แžถโ€‹แž‘แŸแŸ” แž€แžถแžšแž–แž“แŸ’แž™แž›แŸ‹แž‚แžบแžขแžถแž…แž…แžผแž›แž”แŸ’แžšแžพแž”แžถแž“แžแŸ’แž›แžถแŸ†แž„แžŽแžถแžŸแŸ‹ แž แžพแž™แžšแžผแž”แž—แžถแž–แž‚แžบแžŸแžถแž˜แž‰แŸ’แž‰ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžถแž“แž›แž€แŸ’แžแžŽแŸˆแž‘แžผแž›แŸ†แž‘แžผแž›แžถแž™แŸ” แž“แŸแŸ‡แž”แžถแž“แž‡แžฝแž™แžฑแŸ’แž™แž˜แžพแž›แžƒแžพแž‰ แž“แžทแž„แž™แž›แŸ‹แžขแŸ†แž–แžธแž”แŸ’แžšแž’แžถแž“แž”แž‘แž•แŸ’แžŸแŸแž„แŸ—แŸ”

แž–แŸแž›โ€‹แž”แŸ†แž–แŸแž‰โ€‹แž€แžทแž…แŸ’แž…แž€แžถแžš แž™แžพแž„โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž›แžพแž€โ€‹แž‘แžนแž€โ€‹แž…แžทแžแŸ’แžโ€‹แžฒแŸ’แž™โ€‹แž‚แžทแžโ€‹แžŠแŸ„แž™โ€‹แžฏแž€แžšแžถแž‡แŸ’แž™ แž แžพแž™โ€‹แž–แŸแž›โ€‹แžแŸ’แž›แŸ‡โ€‹แžŸแžทแž€แŸ’แžŸแžถโ€‹แžขแŸ’แžœแžธโ€‹แž˜แžฝแž™โ€‹แžŠแŸ„แž™โ€‹แžแŸ’แž›แžฝแž“โ€‹แž™แžพแž„แŸ” แž“แŸแŸ‡แž‡แžถแžœแžทแž’แžธแž›แŸ’แžขแž”แŸ†แž•แžปแžแžŠแžพแž˜แŸ’แž”แžธแžšแŸ€แž“ แž“แžทแž„แžŸแŸ’แžœแŸ‚แž„แž™แž›แŸ‹แž–แžธแž‚แŸ†แž“แžทแžแžŠแŸ‚แž›แž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แžแŸ’แž“แžถแž€แŸ‹แŸ”

แž‡แžถแž…แŸ’แžšแžพแž“แžŠแž„ แžแŸ’แž‰แžปแŸ†แž˜แžทแž“แž™แž›แŸ‹แž…แŸ’แž”แžถแžŸแŸ‹แž–แžธแž•แŸ’แž“แŸ‚แž€แž‘แŸ’แžšแžนแžŸแŸ’แžแžธแž‘แŸ แžšแž แžผแžแžŠแž›แŸ‹แžแŸ’แž‰แžปแŸ†แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžŸแžšแžŸแŸแžšแž€แžผแžŠแž–แŸแž›แž”แŸ†แž–แŸแž‰แž€แžทแž…แŸ’แž…แž€แžถแžšแž˜แžฝแž™แŸ” แž™แžพแž„แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™ 'แž…แž˜แŸ’แž›แž„/แž”แžทแž‘แž—แŸ’แž‡แžถแž”แŸ‹' แž‘แŸ แž™แžพแž„แžแŸ’แžšแžผแžœแžŸแžšแžŸแŸแžšแž€แžผแžŠแž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ„แž™แžแŸ’แž›แžฝแž“แžฏแž„ แž แžพแž™แž“แŸแŸ‡แž€แŸแž‡แžฝแž™แž™แžพแž„แžฑแŸ’แž™แž™แž›แŸ‹แž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แž€แžถแž“แŸ‹แžแŸ‚แž”แŸ’แžšแžŸแžพแžšแžกแžพแž„แž•แž„แžŠแŸ‚แžšแŸ”

แžขแŸ’แžœแžธโ€‹แžŠแŸ‚แž›โ€‹แž–แžทแž”แžถแž€โ€‹แž”แŸ†แž•แžปแžโ€‹แž“แŸ„แŸ‡โ€‹แž‚แžบโ€‹แžŸแŸ†แžŽแžฝแžšโ€‹แž€แŸ’แž“แžปแž„โ€‹แž€แžทแž…แŸ’แž…แž€แžถแžšโ€‹แž–แž แžปโ€‹แž‡แž˜แŸ’แžšแžพแžŸโ€‹แž˜แžทแž“โ€‹แžแŸ‚แž„แžแŸ‚โ€‹แž…แŸ’แž”แžถแžŸแŸ‹โ€‹แž‘แŸแŸ” แž—แžถแžŸแžถแžขแž„แŸ‹แž‚แŸ’แž›แŸแžŸแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž˜แžทแž“แž›แŸ’แžขแžฅแžแžแŸ’แž…แŸ„แŸ‡แž‘แŸ แž แžพแž™แžŸแŸ†แžŽแžฝแžšแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแžŠแŸ„แž™แžขแŸ’แž“แž€แž“แžทแž™แžถแž™แžŠแŸ‚แž›แž˜แžทแž“แž˜แŸ‚แž“แž‡แžถแž‡แž“แž‡แžถแžแžทแžŠแžพแž˜ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž‡แžฝแž“แž€แžถแž›แž˜แžถแž“แž€แžถแžšแž™แž›แŸ‹แž…แŸ’แžšแž›แŸ†แŸ”

แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž•แŸ’แž“แŸ‚แž€แž“แŸƒแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแžŠแŸ‚แž›แžงแž‘แŸ’แž‘แžทแžŸแžŠแž›แŸ‹ oracles แž“แžทแž„ NFTs แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžŽแžถแž€แŸแžŠแŸ„แž™ แž‚แŸ„แž›แžŠแŸ…แžŸแŸ†แžแžถแž“แŸ‹แž“แŸƒแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž‚แžบแžŠแžพแž˜แŸ’แž”แžธแžฑแŸ’แž™แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แžŠแžพแž˜แŸ’แž”แžธแž™แž›แŸ‹แžฑแŸ’แž™แž”แžถแž“แž–แŸแž‰แž›แŸแž‰แž“แžผแžœแž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžšแž”แžŸแŸ‹แžœแžถ แž”แŸ’แžšแžถแž€แžŠแžŽแžถแžŸแŸ‹ แžขแŸ’แž“แž€แž“แžนแž„แžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แžแŸ’แž›แŸ‡แžŠแžพแž˜แŸ’แž”แžธแž–แžทแžŸแŸ„แž’แž“แŸ แž“แžทแž„แžขแž“แžปแžœแžแŸ’แžแŸ”

แž”แŸ’แžšแžถแž”แŸ‹แž™แžพแž„แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แžถแž“แž’แŸ’แžœแžพแž€แžถแžšแž–แŸแž‰แž˜แžฝแž™แžœแž‚แŸ’แž‚ - 'Coupon Bazaar'? แžแžพแžแŸ’แž‰แžปแŸ†แžขแžถแž…แž˜แžพแž›แžงแž‘แžถแž แžšแžŽแŸแž€แžผแžŠแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž”แžถแž“แž‘แŸ?

แž”แžถแž‘ แž™แžพแž„แž”แžถแž“แž’แŸ’แžœแžพแž€แžถแžšแž“แŸ… 'Coupon Bazaar' แž“แŸแŸ‡แž‚แžบแž‡แžถแž‘แžธแž•แŸ’แžŸแžถแžšแžŠแŸ‚แž›แž˜แž“แžปแžŸแŸ’แžŸแž›แž€แŸ‹ แž“แžทแž„แž‘แžทแž‰แž”แŸแžŽแŸ’แžŽแžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แž–แžฝแž€แž‚แŸแž“แžผแžœแžŸแžทแž‘แŸ’แž’แžทแž€แŸ’แž“แžปแž„แž€แžถแžšแž‘แžทแž‰แž‘แŸ†แž“แžทแž‰ แž“แžทแž„แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž€แŸ’แž“แžปแž„แžแž˜แŸ’แž›แŸƒแž‘แžถแž”แŸ” แž”แŸแžŽแŸ’แžŽแž“แžธแž˜แžฝแž™แŸ—แžแŸ’แžšแžผแžœแž”แžถแž“แžแŸ†แžŽแžถแž„แžŠแŸ„แž™แž‘แŸ’แžšแž–แŸ’แž™แžŸแž˜แŸ’แž”แžแŸ’แžแžทแžŒแžธแž‡แžธแžแž›แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž€แžถแžšแž”แž‰แŸ’แž…แžปแŸ‡แžแž˜แŸ’แž›แŸƒแž–แžทแžŸแŸแžŸแž–แžธแžขแŸ’แž“แž€แž•แŸ’แž‚แžแŸ‹แž•แŸ’แž‚แž„แŸ‹แŸ”

แž‡แžทแŸ‡แž›แžพแž”แžŽแŸ’แžแžถแž‰ 3.0 แžšแž›แž€

แžŸแž˜แžถแžŸแž—แžถแž‚แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แžถแž…แŸ’แžšแžพแž“แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแŸ” แž‡แžถแžŠแŸ†แž”แžผแž„ แž…แžถแŸ†แž”แžถแž…แŸ‹แžแŸ’แžšแžผแžœแž”แž„แŸ’แž€แžพแžแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แžปแŸ‡แžˆแŸ’แž˜แŸ„แŸ‡แžขแŸ’แž“แž€แž•แŸ’แž‚แžแŸ‹แž•แŸ’แž‚แž„แŸ‹ แž“แžทแž„แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แŸแžŽแŸ’แžŽแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แž™แžพแž„แžแŸ’แžšแžผแžœแž€แžถแžšแž˜แžปแžแž„แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹ แž“แžทแž„แžŸแž˜แžแŸ’แžแž—แžถแž–แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแžŸแŸ’แžœแŸ‚แž„แžšแž€แž‚แžผแž”แŸ‰แžปแž„แŸ”

แž‡แžทแŸ‡แž›แžพแž”แžŽแŸ’แžแžถแž‰ 3.0 แžšแž›แž€

แž€แŸ’แž“แžปแž„แžขแŸ†แžกแžปแž„แž–แŸแž›แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ แž™แžพแž„แž€แŸแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž˜แžปแžแž„แžถแžšแžแŸ’แž˜แžธแŸ—แž‡แžถแž…แŸ’แžšแžพแž“ แžšแžฝแž˜แž‘แžถแŸ†แž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ„แŸ‡แž†แŸ’แž“แŸ„แž แž“แžทแž„แž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹ แž“แžทแž„แžŠแžถแž€แŸ‹แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžธแžแŸ’แž˜แŸ…แžขแŸ’แž“แž€แž•แŸ’แž‚แžแŸ‹แž•แŸ’แž‚แž„แŸ‹แŸ”

แž‡แžถแžŠแŸ†แž”แžผแž„ แž™แžพแž„แž”แžถแž“แžŸแžทแž€แŸ’แžŸแžถแž–แžธแž—แžถแž–แžแžปแžŸแž‚แŸ’แž“แžถแžšแžœแžถแž„แž‘แŸ’แžšแž–แŸ’แž™แžŸแž˜แŸ’แž”แžแŸ’แžแžทแž†แŸ’แž›แžถแžแžœแŸƒ แž‚แžŽแž“แžธแž†แŸ’แž›แžถแžแžœแŸƒ แž“แžทแž„แž‚แžŽแž“แžธ dApp แž“แžทแž„แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž‚แŸ’แžšแžนแŸ‡แž“แŸƒแž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž˜แžปแžแž„แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แŸ” แž˜แžปแžแž„แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžฅแžšแžทแž™แžถแž”แžแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แž“แŸƒแž‚แžŽแž“แžธแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ” แžแžถแž˜แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜ แž–แžฝแž€แž‚แŸแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž แžแŸ’แžแž›แŸแžแžถแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžปแžแž„แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แŸ†แžŽแžแŸ‹ "แž…แŸ’แž”แžถแž”แŸ‹" แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ”

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
letownerPublicKey = base58'H8ndsHjBha6oJBQQx33zqbP5wi8sQP7hwgjzWUv3q95M'
@Verifier(tx)
funcverify() = {
    matchtx {
        cases: SetScriptTransaction=>sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
        cased: DataTransaction=>true
        case_ =>false
    }
}

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž”แž“แŸ’แžแŸ‚แž˜แž‚แžผแž”แŸ‰แžปแž„แŸ” แž™แžพแž„แž”แžถแž“แž”แŸ’แžšแžพแž˜แžปแžแž„แžถแžšแžŠแŸแžŸแŸ†แžแžถแž“แŸ‹แž”แŸ†แž•แžปแžแž˜แžฝแž™แžšแž”แžŸแŸ‹ dApp แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แžแŸ‹แžแŸ’แžšแžถแž‘แžทแž“แŸ’แž“แž“แŸแž™แž“แŸƒแž”แŸ’แžšแž—แŸแž‘แžŽแžถแž˜แžฝแž™แž“แŸ…แž€แŸ’แž“แžปแž„ blockchain แž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž“แŸƒแž‚แžผแžแž˜แŸ’แž›แŸƒแž‚แž“แŸ’แž›แžนแŸ‡ - แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แŸ” แž™แžพแž„แž”แžถแž“แž”แž‰แŸ’แž…แžผแž›แžœแžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžแŸ’แž˜แžธแž˜แžฝแž™แž‚แžบ invokeScript แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž แŸ…แž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžขแžถแž…แž แŸ…แž”แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„ dApp แž–แžธแžแžถแž„แž€แŸ’แžšแŸ… blockchain แŸ”

แž”แŸ’แžšแž—แŸแž‘แž“แŸƒแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แžŠแŸ‚แž›แž™แžพแž„แž”แžถแž“แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แžขแŸ†แžกแžปแž„แž–แŸแž›แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž‚แžบแž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜แž”แŸแžŽแŸ’แžŽแž‘แŸ…แž‘แžธแž•แŸ’แžŸแžถแžšแŸ–

letdatajson = {
    "title":        "t-shirt with , vote 1",
    "coupon_price": 10000000,
    "old_price":    1000000000,
    "new_price":    100000000,
    "address":      "Universe",
    "description":  "I want you to make love, not war, i know you've heard it before",
    "image":        "https://bit.ly/2EXTghg"
}
it('add item', asyncfunction(){
    letts = invokeScript({
       dApp: dappAddress,
           call:{
               function:"addItem",
               args:[
                    { type:"string", value: datajson.title },
                    { type:"integer", value: datajson.coupon_price },
                    { type:"string", value: JSON.stringify(datajson) }
               ]},
               payment: []
           }, accountSupplierSeed)
    lettx = awaitbroadcast(ts)
    awaitwaitForTx(tx.id)
})

แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แž“แŸแŸ‡แž‡แžถแž˜แžฝแž™แž“แžนแž„แž˜แžปแžแž„แžถแžš addItem แž“แžทแž„แžขแž—แžทแžœแžŒแŸ’แžแž˜แžปแžแž„แžถแžšแž‘แžทแž‰ แž“แžทแž„แž‡แž˜แŸ’แžšแžพแžŸแž•แŸ’แžŸแŸแž„แž‘แŸ€แž แž™แžพแž„แž”แžถแž“แž”แŸ’แžšแžพแž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžขแžถแž…แž แŸ…แž”แžถแž“แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžถแž…แž แŸ…แž…แŸแž‰แž–แžธแžแžถแž„แž€แŸ’แžšแŸ… blockchain แŸ” แž‡แžถแž›แž‘แŸ’แž’แž•แž› แžœแžถแžขแžถแž…แž”แŸ†แž–แŸแž‰แž€แžทแž…แŸ’แž…แž€แžถแžšแž•แŸ’แžŸแŸแž„แŸ—แž”แžถแž“ แžŠแžผแž…แž‡แžถแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž•แŸ’แž‘แŸแžšแž˜แžผแž›แž“แžทแž’แžท แž€แžถแžšแžŸแžšแžŸแŸแžš แžฌแž’แŸ’แžœแžพแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž—แžถแž–แž‘แžทแž“แŸ’แž“แž“แŸแž™แž“แŸ…แž€แŸ’แž“แžปแž„แžƒแŸ’แž›แžถแŸ†แž„แž‘แžทแž“แŸ’แž“แž“แŸแž™ dApp แž‡แžถแžŠแžพแž˜แŸ”

แž“แŸแŸ‡แž‚แžบแž‡แžถแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžขแž“แžปแž‚แž˜แž“แŸแžŠแŸ‚แž›แž‚แŸแž แŸ…แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แž˜แžปแžแž„แžถแžš addItemแŸ–

@Callable(i)
funcaddItem(title: String, price: Int, data: String) = {
    letsupplierAddress = toBase58String(i.caller.bytes)
    letitem = getKeyItem(supplierAddress, title)
    if( price <= 0) thenthrow("purchase amount cannot be less than item price")
    elseif( getValueItemSupplier(item) !=NONE ) thenthrow("an item is already exist")
    else{
        WriteSet([
           DataEntry(getKeyItemSupplier(item), supplierAddress),
           DataEntry(getKeyItemPrice(item), price),
           DataEntry(getKeyItemData(item), data)
        ])
    }
}

แž€แŸ’แžšแŸ„แž™แž˜แž€แž™แžพแž„แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ„แŸ‡แž†แŸ’แž“แŸ„แžแž˜แžฝแž™แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แŸ„แŸ‡แž†แŸ’แž“แŸ„แžแžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แžŸแž–แŸ’แžœแž•แŸ’แžŸแžถแž™ แžฌแž›แžปแž”แž•แž›แžทแžแž•แž›แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แŸ” แžŠแžพแž˜แŸ’แž”แžธแž‘แž”แŸ‹แžŸแŸ’แž€แžถแžแŸ‹แžฅแž‘แŸ’แž’แžทแž–แž›แžแžถแž„แž€แŸ’แžšแŸ…แž›แžพแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แŸ„แŸ‡แž†แŸ’แž“แŸ„แž แžœแžถแž”แŸ’แžšแžพแž‚แŸ’แžšแŸ„แž„แž€แžถแžšแžŽแŸ 'Commit-Reveal' แŸ”

แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž› "แž”แŸ’แžแŸแž‡แŸ’แž‰แžถ" แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแž˜แžผแž›แžŸแž“แŸ’แž›แžนแž€แž†แŸ’แž“แŸ„แžแžŠแŸ‚แž›แž”แžถแž“แžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แžŠแŸ„แž™แž”แŸ’แžšแžพแž˜แžปแžแž„แžถแžš hash แž“แžทแž„ "แžขแŸ†แž”แžทแž›" แŸ”

แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž› "แž”แž„แŸ’แž แžถแž‰" แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแž˜แžผแž›แžŸแž“แŸ’แž›แžนแž€แž†แŸ’แž“แŸ„แžแžŠแŸ‚แž›แž”แžถแž“แžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž” แž“แžทแž„แž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แžŸแž‰แŸ’แž‰แžถแž แžถแžŸแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแŸ”

แž“แŸแŸ‡แž‡แžถแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แž‚แŸแž แŸ…แž”แŸ’แžšแžพแž“แŸ…แž‘แžธแž“แŸแŸ‡แŸ–

@Callable(i)
funcvoteCommit(item: String, hash: String) = {
    letuser = toBase58String(i.caller.bytes)
    letcommits = getValueCommitsCount(item)
    letstatus = getValueItemStatus(item)
    if( commits >=VOTERS) thenthrow("reached max num of voters")
    elseif(getValueCommit(item, user) !=NONE) thenthrow("user has already participated")
    elseif(getKeyItemSupplier(item) ==NONE) thenthrow("item does not exist")
    elseif(status !=NONE && status !=VOTING) thenthrow("voting is not possible")
    else{
        WriteSet([
           DataEntry(getKeyCommit(item, user), hash),
           DataEntry(getKeyCommitsCount(item), commits +1),
           DataEntry(getKeyItemStatus(item),if(commits ==VOTERS) thenREVEAL elseVOTING)
        ])
    }
}
>

แžแžพแžขแŸ’แž“แž€แž”แžถแž“แžšแŸ€แž“แžขแŸ’แžœแžธแž‘แŸ€แžแž–แžธแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ?

แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž€แŸแž”แžถแž“แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž•แž„แžŠแŸ‚แžšแž“แžผแžœแžŸแž‰แŸ’แž‰แžถแžŸแž˜แŸ’แž„แžถแžแŸ‹ แž“แžทแž„แžŸแž‰แŸ’แž‰แžถแžŸแž˜แŸ’แž„แžถแžแŸ‹แžŠแŸ‚แž›แž˜แžทแž“แž˜แŸ‚แž“แž‡แžถแž•แŸ’แžŸแžทแž (NFTs) - แžŸแž‰แŸ’แž‰แžถแžŸแž˜แŸ’แž„แžถแžแŸ‹แžŠแŸ‚แž›แžแŸ†แžŽแžถแž„แžฑแŸ’แž™แžขแŸ’แžœแžธแž˜แžฝแž™แžŠแŸ‚แž›แž”แŸ’แž›แŸ‚แž€แž–แžธแž‚แŸ แž แžพแž™แžŠแžผแž…แŸ’แž“แŸแŸ‡แžœแžถแž˜แžทแž“แžขแžถแž… fungible แž”แžถแž“แž‘แŸแŸ”

แž˜แŸแžšแŸ€แž“แž…แžปแž„แž€แŸ’แžšแŸ„แž™แžแŸ’แžšแžผแžœแž”แžถแž“แžงแž‘แŸ’แž‘แžทแžŸแžŠแž›แŸ‹ oracles แŸ” แžŠแŸ„แž™แžŸแžถแžš blockchain แž˜แžทแž“แžขแžถแž…แž‘แž‘แžฝแž›แž”แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แž–แžธแž–แžทแž—แž–แžแžถแž„แž€แŸ’แžšแŸ… แž™แžพแž„แžแŸ’แžšแžผแžœแž€แžถแžš oracles แžŠแžพแž˜แŸ’แž”แžธแž”แž‰แŸ’แž‡แžผแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แž“แŸแŸ‡แž‘แŸ…แžœแžถแŸ”

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‘แžธแž•แŸ’แžŸแžถแžšแžšแž”แžŸแŸ‹แž™แžพแž„ oracles แž‚แžบแž…แžถแŸ†แž”แžถแž…แŸ‹แžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹ แž แžพแž™แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แžถแŸ†แž”แžถแž…แŸ‹ แž”แž‰แŸ’แž…แžผแž›แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžธแžแŸ’แž˜แŸ…แžขแŸ’แž“แž€แž•แŸ’แž‚แžแŸ‹แž•แŸ’แž‚แž„แŸ‹แžŠแŸ‚แž›แž˜แžทแž“แž‘แž‘แžฝแž›แž™แž€แž”แŸแžŽแŸ’แžŽแžŠแŸ‚แž›แž”แžถแž“แž›แž€แŸ‹แŸ”

แž“แŸแŸ‡แž‚แžบแž‡แžถแžงแž‘แžถแž แžšแžŽแŸ:

funcgetExtValueItemWhiteListStatus(item:String) = {
    item +"_verifier_status"
}
 
letverifier = "3Mx9qgMyMhHt7WUZr6PsaXNfmydxMG7YMxv"
letVERIFIED = "verified"
letBLACKLISTED = "blacklist"
@Callable(i)
funcsetstatus(supplier: String, status: String) = {
    letaccount = toBase58String(i.caller.bytes)
    if( account !=verifier ) thenthrow("only oracle verifier are able to manage whitelist")
    elseif( status !=VERIFIED && status !=BLACKLISTED) thenthrow("wrong status")
    else{
        WriteSet([
           DataEntry(getExtValueItemWhiteListStatus(supplier), status)
        ])
    }
}

แžแžพแžขแŸ’แžœแžธแžŠแŸ‚แž›แž˜แžถแž“แž”แŸ’แžšแž™แŸ„แž‡แž“แŸแž”แŸ†แž•แžปแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€?

แž•แŸ’แž“แŸ‚แž€แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ’แžšแž™แŸ„แž‡แž“แŸแž”แŸ†แž•แžปแžแž‚แžบแž€แžทแž…แŸ’แž…แž€แžถแžšแŸ” แžŸแžผแž˜แžขแžšแž‚แžปแžŽแžŠแž›แŸ‹แž–แžฝแž€แž‚แŸ แžฏแž€แžŸแžถแžšแž”แž„แŸ’แžšแŸ€แž“แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แž”แžถแžŸแŸ‹ แž แžพแž™แž…แŸ†แžŽแŸแŸ‡แžŠแžนแž„แžŠแŸ‚แž›แž‘แžพแž”แž‘แž‘แžฝแž›แž”แžถแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜แžแžถแž˜แžšแž™แŸˆแž€แžถแžšแžŸแžถแž€แž›แŸ’แž”แž„ แž“แžทแž„แž€แŸ†แž แžปแžŸแŸ” แž€แžถแžšแž„แžถแžšแž‡แžถแž€แŸ‹แžŸแŸ’แžแŸ‚แž„แž‡แžถแž˜แžฝแž™ แž‘แžธแž“แŸแŸ‡, แžขแŸ’แž“แž€แžšแžปแž€แžšแž€ ะธ oracles.

แžแžพแžขแŸ’แž“แž€แž˜แžถแž“แž‚แž˜แŸ’แžšแŸ„แž„แžŠแžถแž€แŸ‹แžขแŸ’แžœแžธแžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แžถแž“แžšแŸ€แž“แž™แž€แž‘แŸ…แžขแž“แžปแžœแžแŸ’แžแžŠแŸ„แž™แžšแž”แŸ€แž”แžŽแžถ?

แžแžถแŸ†แž„แž–แžธแžŠแžพแž˜แžŠแŸ†แž”แžผแž„แž˜แž€ แžแŸ’แž‰แžปแŸ†แžšแŸ†แž–แžนแž„แžแžถแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž“แŸแŸ‡แž“แžนแž„แž‡แžฝแž™แž›แžพแž€แž‚แž˜แŸ’แžšแŸ„แž„แžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž‘แŸ…แž€แž˜แŸ’แžšแžทแžแž”แž“แŸ’แž‘แžถแž”แŸ‹แŸ” แž‚แŸ†แž“แžทแžแž‚แžบแžŠแžพแž˜แŸ’แž”แžธแžŸแžšแžŸแŸแžšแž€แžผแžŠแžฅแžกแžผแžœแž“แŸแŸ‡ sign-web.app แž“แŸ…แž›แžพ RIDE แŸ” แž€แŸ†แžŽแŸ‚แžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แž˜แžถแž“แž˜แžปแžแž„แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แžฏแž€แžŸแžถแžšแžšแžฝแž…แž แžพแž™ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžŠแŸ„แž™แžŸแžถแžš RIDE แžœแžถแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ‚แž›แž˜แŸ’แžขแž™แŸ‰แžถแž„แžแŸ’แž›แžถแŸ†แž„แŸ” แž€แŸ†แžŽแŸ‚แžแŸ’แž˜แžธแž“แžนแž„แž˜แžถแž“แž—แžถแž–แž”แžแŸ‹แž”แŸ‚แž“ แž“แžทแž„แžœแžทแž…แžถแžšแžŽแž‰แžถแžŽแž‡แžถแž„แž˜แžปแž“ แž แžพแž™แž“แžนแž„แž˜แžถแž“แž˜แžปแžแž„แžถแžšแž‡แžถแž…แŸ’แžšแžพแž“แž‘แŸ€แž แžšแžฝแž˜แž‘แžถแŸ†แž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แžขแŸŠแžธแž˜แŸ‚แž› แž€แžทแž…แŸ’แž…แž–แŸ’แžšแž˜แž–แŸ’แžšแŸ€แž„แž–แž แžปแž—แžถแž‚แžธแž‡แžถแžŠแžพแž˜แŸ”

แžœแž‚แŸ’แž‚โ€‹แžŸแžทแž€แŸ’แžŸแžถโ€‹แž“แŸแŸ‡โ€‹แž€แŸโ€‹แž˜แžถแž“โ€‹แž€แžถแžšโ€‹แž‚แžทแžโ€‹แž“แžทแž„โ€‹แž•แŸ’แžแž›แŸ‹โ€‹แž‚แŸ†แž“แžทแžโ€‹แžแŸ’แž˜แžธโ€‹แž‡แžถโ€‹แž…แŸ’แžšแžพแž“โ€‹แžŠแž›แŸ‹โ€‹แžแŸ’แž‰แžปแŸ†แŸ” แžแŸ’แž‰แžปแŸ†โ€‹แž‡แžฟแž‡แžถแž€แŸ‹โ€‹แžแžถโ€‹แž›แž‘แŸ’แž’แž•แž›โ€‹แž“แžนแž„โ€‹แž”แž“แŸ’แžโ€‹แž”แž„แŸ’แž แžถแž‰โ€‹แž“แŸ…โ€‹แž–แŸแž›โ€‹แžขแž“แžถแž‚แžแŸ”

แž”แŸ’แžšแž—แž–: www.habr.com

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster