ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ ืื•ื™ืฃ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ื ืขืฅ. ื˜ื™ื™ืœ 1: Blockchain & Block API

ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ ืื•ื™ืฃ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ื ืขืฅ. ื˜ื™ื™ืœ 1: Blockchain & Block API

ื“ืึธืก ืื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ื‘ื™ืœื“ื•ื ื’ืงืจื™ื™ื– ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืกืžืึทืจื˜ ืงืึทื ื˜ืจืึทืงืฅ ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ ืื•ื™ืฃ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ื ืขืฅ ื ื™ืฆืŸ ื“ื™ ืกืžืึทืจื˜ ืงืึธื ื˜ืจืึทืงื˜ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื’ืขืฆื™ื™ึทื’ ืกืžืึทืจื˜ืงืก.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืžื™ืจ ื•ื•ืขืœืŸ ืึธื ื”ื™ื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ื‘ืึทืงืึทื ื˜ืขืจ ืžื™ื˜ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืึทืคึผื™. ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืึทืคึผื™ ืื™ื– ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ 7 ืžืึทื“ื–ืฉื•ืœื–:

  1. Blockchain & Block API,
  2. ืจื•ื ื˜ื™ืžืข ืึทืคึผื™
  3. ืกื˜ืึธืจื™ื“ื–ืฉ API
  4. ื’ืขื‘ื•ื™ืจืŸ ืึทืคึผื™
  5. ืึทืคึผื’ืจื™ื™ื“ API,
  6. ื“ื•ืจื›ืคื™ืจื•ื ื’ ืขื ื’ื™ื ืข ืึทืคึผื™ ืื•ืŸ
  7. ืกื˜ืึทื˜ื™ืง ืื•ืŸ ื“ื™ื ืึทืžื™ืฉ ืจื•ืคืŸ ืึทืคึผื™.

Blockchain & Block API ืื™ื– ื“ื™ ื”ืึทืจืฅ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืกื™ืกื˜ืขื. ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืึทืคึผื™ ืฉื˜ื™ืฆื˜ ื™ืงืขืจื“ื™ืง ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ ืึธื ืคึฟืจืขื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ื”ื™ื™ืš ืคื•ืŸ ืึท ื‘ืœืึธืง, ื‘ืฉืขืช ื“ื™ ื‘ืœืึทืง ืึทืคึผื™ ืฉื˜ื™ืฆื˜ ื™ืงืขืจื“ื™ืง ื‘ืœืึธืง ืึธื ืคึฟืจืขื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืคึฟืึทืจ ืึท ื’ืขื’ืขื‘ืŸ ื‘ืœืึธืง.

ืœืืžื™ืจ ืื ื”ื™ื™ื‘ืขืŸ!

ืฆื• ืึธื ื”ื™ื™ื‘ืŸ, ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืงืึธื ื˜ืจืึทืงื˜ ืื™ืŸ ืกืžืึทืจื˜ืงืก, ืื•ืŸ ื“ืขืžืึธืœื˜ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืื•ื ื˜ืŸ.

1. ื•ื•ื™ ืฆื• ื ื•ืฆืŸ Blockchain API

ืกืžืึทืจื˜ ืงืึธื ื˜ืจืึทืงื˜ ืคื•ื ืงืฆื™ืข ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ื–ืขื ืขืŸ ื™ื™ื“ืขื ื™ืงืึทืœ ืฆื• ืคึผื™ื˜ื”ืึธืŸ ืจืขืคืขืจืขื ืฆืŸ. ืื™ืจ ืงืขื ืขืŸ ืึทืจื™ื™ึทืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ื™ ื“ืืจืฃ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืคืืœื’ืขื ื“ืข ื“ืขืจืงืœืขืจื•ื ื’ ื™ื ื˜ืจืึทื“ื•ืกื™ื– GetHeight, ืึท ืคึฟื•ื ืงืฆื™ืข ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ื”ื™ื™ืš ืคื•ืŸ ืึท ื‘ืœืึธืง, ืื•ืŸ GetHeader, ืึท ืคึฟื•ื ืงืฆื™ืข ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ืขื ื˜ื™ื˜ืœ ืคื•ืŸ ื“ืขื ื‘ืœืึธืง.

from ontology.interop.System.Blockchain import GetHeight, GetHeader

GetHeight

GetHeight ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืœืขืฆื˜ืข ื‘ืœืึธืง ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ ืื™ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื ื˜ืŸ. ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ื‘ื™ื™ึทืฉืคึผื™ืœ, ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก, ืžื™ืจ ื•ื•ืขืœืŸ ื”ืึธืคึผืงืขืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟื•ื ืงืฆื™ืข, ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื’ืŸ ืขืก ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง.

from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeight
def Main(operation):
    if operation == 'demo':
        return demo()
    return False

def demo():
    height=GetHeight()
    Notify(height) # print height
    return height #return height after running the function

GetHeader

GetHeader ืื™ื– ื’ืขื ื•ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื‘ืœืึธืง ื›ืขื“ืขืจ, ื“ืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ื– ื“ื™ ืกื™ืจื™ืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ ื‘ืœืึธืง ืื™ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ืŸ. ื‘ื™ื™ึทืฉืคึผื™ืœ:

from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeader
def demo():
    block_height=10
    header=GetHeader(block_height) 
    Notify(header)
return header

GetTransactionByHash

GetTransactionByHash ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื ื™ืฆืŸ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ. ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• GetTransactionByHash ื•ื•ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื™ืŸ ื‘ื™ื™ื˜ืขืึทืจืจื™ื™ึท ืคึฟืึธืจืžืึทื˜. ื“ืขืจ ืฉืœื™ืกืœ ืฆื• ื“ืขื ืคึฟื•ื ืงืฆื™ืข ืื™ื– ืฆื• ื’ืขืจ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ ืื™ืŸ ื”ืขืงืก ืคึฟืึธืจืžืึทื˜ ืฆื• ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ ืื™ืŸ ื‘ื™ื™ื˜ืขืึทืจืจื™ื™ึท ืคึฟืึธืจืžืึทื˜. ื“ืึธืก ืื™ื– ืึท ื•ื•ื™ื›ื˜ื™ืง ืฉืจื™ื˜. ืึทื ื“ืขืจืฉ ืื™ืจ ื•ื•ืึธืœื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ื•ื•ืึธืก ื™ื ื“ื™ืงื™ื™ืฅ ืึทื– ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ืœืึธืง ืžื™ื˜ ื“ืขื ื‘ืœืึธืง ื”ืึทืฉ. ืœืึธืžื™ืจ ื ืขืžืขืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ ืื™ืŸ ื”ืขืงืก ืคึฟืึธืจืžืึทื˜ ื•ื•ื™ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืฆื• ื’ืขืจ ืขืก ืฆื• ื‘ื™ื™ื˜ืขืึทืจืจื™ื™ึท ืคึฟืึธืจืžืึทื˜. ื“ื™ ื‘ื™ื™ืฉืคึผื™ืœ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1

ืขืจืฉื˜ืขืจ ืคืึทืจืงืขืจื˜ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ:

c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279

ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืงืขื ืขืŸ ื•ื™ืกืคื™ืจืŸ ื“ืขื ืฉืจื™ื˜ ืžื™ื˜ ื“ื™ ื”ืขืงืก ื ื•ืžืขืจ (ืงืœื™ื™ืŸ ืขื ื“ื™ืึทืŸ) ื ื•ืžืขืจ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ื’ืขืฆื™ื™ึทื’ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš SmartX.

ื“ืขืจื ืึธืš ื’ืขืจ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜ ืฆื• bytearray ืคึฟืึธืจืžืึทื˜:

{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}

ื“ืขื ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืžื™ื˜ ื“ื™ ืกื˜ืจื™ื ื’ ื‘ื™ื™ื˜ืข ืึทืจืจื™ื™ึท ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ื’ืขืฆื™ื™ึทื’ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš SmartX. ืฆื•ื ืกื•ืฃ, ื’ืขืจ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ื‘ื™ื™ื˜ืขืจืจื™ื™ึท ืื™ืŸ ืึท ืฉื˜ืจื™ืงืœ ื•ื•ื™ ื“ืึธืก:

xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f

ื•ื ื˜ืขืจ ืื™ื– ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ GetTransactionByHash ืคื•ื ืงืฆื™ืข, ื•ื•ืึธืก ื ืขืžื˜ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื“ื•ืจืš ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ:

from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
    # tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"    
    tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
    tx=GetTransactionByHash(tx_hash)
    return tx

GetTransactionHeight

GetTransactionHeight ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ื™ื™ืš ืžื™ื˜ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ. ืœืึธืžื™ืจ ื ืขืžืขืŸ ื“ื™ ื”ืึทืฉ ืคื•ืŸ ื“ื™ ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื™ื‘ืŸ:

from ontology.interop.System.Blockchain import  GetTransactionHeight
def demo():
    #   tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"    
    tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
    height=GetTransactionHeight(tx_hash)
    return height

ื‘ืึทืงื•ืžืขืŸ ืงืึธื ื˜ืจืึทืงื˜

ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ GetContract ืคื•ื ืงืฆื™ืข ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืึท ืงืึธื ื˜ืจืึทืงื˜ ื“ื•ืจืš ืึท ืงืึธื ื˜ืจืึทืงื˜ ื”ืึทืฉ. ื“ืขืจ ืงืึธื ื˜ืจืึทืงื˜ ื”ืึทืฉ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืคึผืจืึธืฆืขืก ืื™ื– ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื”ืึทืฉ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืคึผืจืึธืฆืขืก ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ.

from ontology.interop.System.Blockchain import GetContract
def demo():
    # contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"    
    contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
    contract=GetContract(contract_hash)
    return contract

GetBlock

GetBlock ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืœืึธืง. ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืœืึธืง.

1. ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืœืึธืง ื“ื•ืจืš ื‘ืœืึธืง ื”ื™ื™ืš:

from ontology.interop.System.Blockchain import GetBlock
def demo():
    block=GetBlock(1408)
    return block

2. ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืœืึธืง ื“ื•ืจืš ื‘ืœืึธืง ื”ืึทืฉ:

from ontology.interop.System.Blockchain import GetBlock
def demo():    
    block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
    block=GetBlock(block_hash)

2. ื•ื•ื™ ืฆื• ื ื•ืฆืŸ Block API

ืขืก ื–ืขื ืขืŸ ื“ืจื™ื™ ื‘ื ื™ืžืฆื ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ื“ื™ Block API: ื‘ืึทืงื•ืžืขืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, GetTransactionCountืื•ืŸ GetTransactionByIndex. ืžื™ืจ ื•ื•ืขืœืŸ ืกืึธืจื˜ ื–ื™ื™ ืื•ื™ืก ืื™ื™ื ืขืจ ื“ื•ืจืš ืื™ื™ื ืขืจ.

GetTransactionCount

GetTransactionCount ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืคึฟืึทืจ ืึท ื’ืขื’ืขื‘ืŸ ื‘ืœืึธืง.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
    block=GetBlock(1408)
    count=GetTransactionCount(block)
    return count

ื‘ืึทืงื•ืžืขืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–

ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ GetTransactions ืคื•ื ืงืฆื™ืข ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืึทืœืข ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื™ืŸ ืึท ื’ืขื’ืขื‘ืŸ ื‘ืœืึธืง.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions 
def demo():
    block=GetBlock(1408)
    txs=GetTransactions(block)
    return txs

GetTransactionByIndex

GetTransactionByIndex ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ืŸ ืึท ื’ืขื’ืขื‘ืŸ ื‘ืœืึธืง.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
    block=GetBlock(1408)
    tx=GetTransactionByIndex(block,0) # index starts from 0.
    return tx

ื“ื™ ืคื•ืœืข ืคื™ืจืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื’ื™ื˜ื”ื•ื‘.

ืึทืคื˜ืขืจื•ื•ืึธืจื“

Blockchain & Block API ืื™ื– ืึท ื™ื ื“ื™ืกืคึผืขื ืกืึทื‘ืึทืœ ื˜ื™ื™ืœ ืคื•ืŸ ืกืžืึทืจื˜ ืงืึทื ื˜ืจืึทืงืฅ ื•ื•ื™ื™ึทืœ ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืขืก ืฆื• ืึธื ืคืจืขื’ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ ื“ืึทื˜ืŸ ืื•ืŸ ืคืึทืจืฉืคึผืึทืจืŸ ื“ืึทื˜ืŸ ืื™ืŸ ืกืžืึทืจื˜ ืงืึทื ื˜ืจืึทืงืฅ. ืื™ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทืจื˜ื™ืงืœืขืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื“ื™ืกืงื•ื˜ื™ืจืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ ื“ื™ ืจื•ืขืŸ ืึทืคึผื™ืก ืื•ืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ื–ื™ื™ ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื“ื™ ืึธื ื˜ืึธืœืึธื’ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ.

ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ื“ื•ืจืš ื“ื™ ืจืขื“ืืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹Hashrate&Shares ืกืคึผืึทืกื™ืคื™ืงืœื™ ืคึฟืึทืจ ืึธื ื˜ืึธืœืึธื’ื™ ืจื•ืกืœืึทื ื“. ื•ื•ื™ื™ื ืขืŸ

ื–ืขื ื˜ ืื™ืจ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ? ืคืึทืจื‘ื™ื ื“ืŸ ืื•ื ื“ื–ืขืจ ื˜ืขืง ืงื”ืœ ืื™ืŸ ื“ื™ืกืงืึธืจื“. ืื•ื™ืš, ื ืขืžืขืŸ ืึท ืงื•ืง ื‘ื™ื™ึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืฆืขื ื˜ืขืจ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ื–ื™ื™ื˜ืœ, ื•ื•ื• ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืžื›ืฉื™ืจื™ื, ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื•ืŸ ืคื™ืœ ืžืขืจ.

ืึธื ื˜ืึธืœืึธืœืึธื’ื™

ืžืงื•ืจ: www.habr.com

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster