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
transactioninstead, 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