A development guide for basic tool developers of NEO3 to facilitate the underlying construction
- UPDATE
-
Address Script: change the way to construct the address script with the public key
- Ordinary Address
NEO2: 0x21 + publicKey(compressed 33bytes) + 0xac() NEO3: 0x21 + publicKey(compressed 33bytes) + 0x68 + 0x747476aa
- Multi-Signature Address
NEO2: emitPush(N) + 0x21 + publicKey1(compressed 33bytes) + .... + 0x21 + publicKeym(compressed 33bytes) + emitPush(M) + 0xae() NEO3: emitPush(N) + 0x21 + publicKey1(compressed 33bytes) + .... + 0x21 + publicKeym(compressed 33bytes) + emitPush(M) + 0x68 + 0xc7c34cba
-
-
UPDATE
- System Fee: cancel the free discount of 10 GAS for each transaction and redefine the fee of each OpCode
- Network Fee: redefine the calculation formula for the network fee
-
DELETE
- Transaction Type: discard the previous 9 types of the transaction in NEO2 and use the unified
transaction
instead, as well as the redefinition of the transaction structure - Assets: discard the UTXO model for the NEO and GAS token, using the account model implemented by the native contract instead
- Transaction Type: discard the previous 9 types of the transaction in NEO2 and use the unified
-
UPDATE
- Invocation Style: getblockheader,getrawmempool
- Returns: getblock,getblockheader,getrawtransaction,getversion,getcontractstate
-
DELETE
- Discard the following commands:
claimgas
,getaccountstate
,getassetstate
,getclaimable
,getmetricblocktimestamp
,gettxout
,getunspents
,invoke
, etc.
- Discard the following commands:
-
ADD
- Manifest: used to describe the features of the contract and deployed with NEF files
- native contracts: running in the native code rather than in the virtual machine, including NeoToken, GasToken and PolicyToken
- Accessing to network resources: to be added
- System Trigger: triggered when the node receives a new block and currently only triggers the execution of the native contract
- Interop Service:
System.Binary.Serialize
,System.Binary.Deserialize
,System.Contract.Create
,System.Contract.Update
,System.Contract.Call
,System.Contract.CallEx
,System.Contract.IsStandard
,Neo.Native.Tokens.NEO
,Neo.Native.Tokens.GAS
,Neo.Native.Policy
, etc.
-
UPDATE
- Reduce the system fee for OpCode and interop services,
-
DELETE
- Interop Service:
Neo.Runtime.GetTrigger
,Neo.Runtime.CheckWitness
,Neo.Runtime.Notify
,Neo.Runtime.Log
,Neo.Runtime.GetTime
,Neo.Runtime.Serialize
,Neo.Runtime.Deserialize
,Neo.Blockchain.GetHeight
,Neo.Blockchain.GetHeader
,Neo.Blockchain.GetBlock
,Neo.Blockchain.GetTransaction
,Neo.Blockchain.GetTransactionHeight
,Neo.Blockchain.GetAccount
,Neo.Blockchain.GetValidators
,Neo.Blockchain.GetAsset
,Neo.Blockchain.GetContract
,Neo.Header.GetHash
,Neo.Header.GetVersion
,Neo.Header.GetPrevHash
,Neo.Header.GetMerkleRoot
,Neo.Header.GetTimestamp
,Neo.Header.GetIndex
,Neo.Header.GetConsensusData
, etc.
- Interop Service:
-
ADD
-
DELETE
- Discard the following opcodes:
PUSHF
,PUSHBYTES1
,PUSHBYTES75
,APPCALL
,TAILCALL
,XTUCK
,XSWAP
,FROMALTSTACK
,TOALTSTACK
,DUPFROMALTSTACK
,SIZE
,LTE
,GTE
,SHA1
,SHA256
,HASH160
,HASH256
,CHECKSIG
,VERIFY
,CHECKMULTISIG
,ARRAYSIZE
,CALL_I
,CALL_E
,CALL_ED
,CALL_ET
,CALL_EDT
.
- Discard the following opcodes:
Click here to see the Chinese edition of the README