A blockchain transaction method, performed by a blockchain node, comprising: obtaining a transaction instruction of a client (S301), wherein the transaction instruction comprises a first structured query language, SQL, write command for operating a relational database used to store block data; performing a simulated transaction according to the first SQL write command (S304), wherein a transaction result of the simulated transaction is a result obtained after a dataset related to the simulated transaction is read/written after the simulated transaction is executed in a blockchain system; obtaining block data, wherein the block data includes transaction information of the simulated transaction; checking the block data based on the transaction result of the simulated transaction and the transaction information in the block data, and determining consistency between the transaction information in the block data and the transaction result of the simulated transaction; after the check succeeds, generating, based on the block data, a second SQL write command for writing the block data to the relational database; instructing the relational database to execute the second SQL write command, and writing the block data to the relational database (S306), wherein the generating, based on the block data, a second SQL write command for writing the block data to a relational database comprises: obtaining a key value, KV in the block data, and converting the KV into an SQL write command of a corresponding entry in the relational database, wherein the method further comprises: converting the first SQL write command into a KV according to the transaction instruction, and checking the KV, wherein a check result is used to indicate whether to perform the simulated transaction. obtaining a transaction instruction of a client (S301), wherein the transaction instruction comprises a first structured query language, SQL, write command for operating a relational database used to store block data; performing a simulated transaction according to the first SQL write command (S304), wherein a transaction result of the simulated transaction is a result obtained after a dataset related to the simulated transaction is read/written after the simulated transaction is executed in a blockchain system; obtaining block data, wherein the block data includes transaction information of the simulated transaction; checking the block data based on the transaction result of the simulated transaction and the transaction information in the block data, and determining consistency between the transaction information in the block data and the transaction result of the simulated transaction; after the check succeeds, generating, based on the block data, a second SQL write command for writing the block data to the relational database; instructing the relational database to execute the second SQL write command, and writing the block data to the relational database (S306), wherein the generating, based on the block data, a second SQL write command for writing the block data to a relational database comprises: obtaining a key value, KV in the block data, and converting the KV into an SQL write command of a corresponding entry in the relational database, wherein the method further comprises: converting the first SQL write command into a KV according to the transaction instruction, and checking the KV, wherein a check result is used to indicate whether to perform the simulated transaction. obtaining a key value, KV in the block data, and converting the KV into an SQL write command of a corresponding entry in the relational database, wherein the method further comprises: converting the first SQL write command into a KV according to the transaction instruction, and checking the KV, wherein a check result is used to indicate whether to perform the simulated transaction. <EOS>