交易curl扩展

curl扩展  时间:2021-04-11  阅读:()
享云链接入快速入门享云链接入快速入门启动享云链节点克隆项目构建镜像启动容器运行单节点测试网络启动wallet服务通过节点服务发送区块链交易构造交易使用账户对交易做签名发送交易验证结果节点控制台操作连接控制台通过控制台发送交易通过链克口袋发送转账交易直接生成二维码转账应用端唤醒方式通过以下步骤,用户可以快速学习和接入享云链,并发送区块链交易到所启动的节点上,从而对享云链的整体使用有一个大致的理解,并且能够结合自己的应用使用享云链.
更多的概念解释和操作步骤可以参考[操作指南]和[技术参考]文档.
教程文档主要分为以下四个部分:启动享云链节点、发送享云链交易(普通交易与合约交易)、同步享云链区块、应用与链克口袋交互.
用户可以根据自己的需求参考相关的步骤.
一般基于享云链的应用部署结构如图开发者可遵循以下顺序实现应用开发和享云链接入:1.
gitclonelinchain项目2.
初始化和启动测试环境节点连接3.
启动wallet服务4.
开发合约应用或转账应用,部署合约5.
应用端后台使用wallet服务发送后台合约交易或后台转账交易6.
应用端前端或客户端使用用户参数按照链克口袋协议拼接交易内容,生成二维码或者唤醒链克口袋的链接7.
用户使用链克口袋扫码或者应用端唤醒链克口袋,用户支付链克执行交易8.
应用后台监听peer节点交易,更新数据测试环境测试通过后,可启动正式环境节点与wallet服务接入,部署正式环境合约.
启动享云链节点关于启动享云链节点的步骤,以linkchaingithub文档中的启动步骤为准.
下面以启动本地单节点测试网络为例:克隆项目$gitclonehttps://github.
com/lianxiangcloud/linkchain.
git构建镜像$cdlinkchain$sudodockerimagebuild-tlkbuilder.
构建镜像过程中,会默认执行一次项目编译构建成功后,可以查看到镜像信息启动容器$sudodockerrun-tilkbuilder拉取最新代码$gitpull执行编译打包$.
/build.
sh编译成功后在/src/pack/lkchain/bin/目录能看到编译后的文件:$ll/src/pack/lkchain/bin/查询后版本号,以实际git提交最新版本为准$/src/pack/lkchain/bin/lkchainversion运行单节点测试网络$sudodockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZElkbuilderlatest3e70915811c4Aboutaminuteago2.
24GBtotal89668-rwxr-xr-x1rootroot49804544Aug2702:49lkchainlinkchainversion:0.
1.
0,gitCommit:7f5d2a3e进入docker容器内$sudodockerrun-tilkbuilder初始化$sh/src/scripts/sandbox_start.
shinitpeer~/blockdata/启动节点:$sh/src/scripts/sandbox_start.
shpeer~/blockdata/测试RPC:$curl-H'Content-Type:application/json'-d'{"jsonrpc":"2.
0","id":"0","method":"eth_blockNumber","params":[]}'http://127.
0.
0.
1:41000查看Log:$tail~/blockdata/peer_logs/lkchain.
log启动wallet服务committeecontractcodenil!
!
!
validatorswhitelistcontractcodenil!
!
!
genesisBlockstateHash0x0d8827403cb36d8d176cbf6257915f1b5274ba11ff2891b06a0263946ebf0b57genesisBlocktrieRoot0x0000000000000000000000000000000000000000000000000000000000000000genesisBlockChainID:chainIDblock.
Hash:0x26cb0291c88674df8614a93eb0e1b5e23b82e3117f18dade10acb0cf7c597b2dstartlkchain.
.
.
pid:390{"jsonrpc":"2.
0","id":"0","result":"0x0"}DEBUG2019-08-2703:04:44.
797statusreportmodule=mempoolspecGoodTxs=0goodTxs=0futureTxs=0DEBUG2019-08-2703:04:44.
819Broadcastingproposalheartbeatmessagemodule=consensusheight=3round=0sequence=1DEBUG2019-08-2703:04:46.
820Broadcastingproposalheartbeatmessagemodule=consensusheight=3round=0sequence=2DEBUG2019-08-2703:04:48.
821Broadcastingproposalheartbeatmessagemodule=consensusheight=3round=0sequence=3DEBUG2019-08-2703:04:49.
797statusreportmodule=mempoolspecGoodTxs=0goodTxs=0futureTxs=0DEBUG2019-08-2703:04:49.
865dialOutLoopmodule=conManagermaxDialOutNums=3needDynDials=3DEBUG2019-08-2703:04:49.
865ReadRandomNodesmodule=httpTabletab.
seeds=[]DEBUG2019-08-2703:04:49.
865afterdialRandNodesFromCachemodule=conManagerneedDynDials=3DEBUG2019-08-2703:04:49.
865dialNodesFromNetLoopmodule=conManagerneedDynDials=3DEBUG2019-08-2703:04:50.
822Broadcastingproposalheartbeatmessagemodule=consensusheight=3round=0sequence=4进入钱包启动脚本目录$cd/src/wallet/sbin钱包默认连接本地的peer节点,如果上一步已经启动了一个本地的测试peer,那么现在可以直接启动钱包连接这个peer启动钱包进程$.
/wallet.
shstart新建账户,密码为12345678(实际使用中不能泄露账户密码和私钥文件)解锁钱包,测试账户的密码是"12345678"通过节点服务发送区块链交易通过上面的步骤或自己通过其他方式启动了享云链节点以后,就可以向区块链发送交易来实现自己的区块链应用了.
这里的交易泛指通过享云链做链克转账的交易,和通过部署或执行享云链智能合约来读写数据的交易.
构造交易所有的交易结构都遵循以下结构体:对于链上链克转账的交易,解释为from账户发起交易,向to账户转入value数量的链克,data为空,另外享云链为普通交易扩展了一个remark字段,用于一些额外信息的记录.
对于链上执行合约的交易,解释为由from账户发起合约执行,执行合约账户to的某个方法data(方法加调用参数的编码),如果所执行的方法接收链克,可以通过value转入链克.
gas为执行交易限制消耗的最大手续费数量.
nonce为账户在链上执行的第几笔交易.
gas的估算和nonce值都可以通过wallet服务的接口获取.
下面构造一个普通的转账交易,合约的交易在操作指南中做详细介绍.
普通交易(从内置账户转账给新建账户)$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","method":"personal_newAccount","params":["12345678","thisismytestaccount"],"id":67}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":67,"result":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784"}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","method":"personal_unlockAccount","params":["0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","12345678",3600],"id":67}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":67,"result":true}tx:{from,to,value,gas,data,nonce}使用from账户(内置账户)0xa73810e519e1075010678d706533486d8ecc8000向to账户(新建的测试账户)0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784转入0xde0b6b3a7640000(转十进制10^18wei=1链克)使用账户对交易做签名每一笔交易发送到链上,都需要经过发送者私钥签名,其他节点在接收到签名的交易时可以验证交易的合法性.
下面是用wallet服务提供的接口为上述两笔交易做签名.
(用户在实际操作时需要将from账户替换成自己生成的账户地址)1.
获取预估手续费数量,执行ltk_estimateGas接口2.
获取账户nonce值,执行ltk_getTransactionByHash接口3.
解锁账户,调用personal_unlockAccount接口4.
使用私钥对交易做签名,调用ltk_signTransaction接口{from:'0xa73810e519e1075010678d706533486d8ecc8000',to:'0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784',value:'0xde0b6b3a7640000'}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_estimateGas","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","to":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","value":"0xde0b6b3a7640000"}]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0x7a120"}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionCount","params":["0xa73810e519e1075010678d706533486d8ecc8000","latest"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0x0"}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","method":"personal_unlockAccount","params":["0xa73810e519e1075010678d706533486d8ecc8000","1234",3600],"id":67}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":67,"result":true}以上就是构造一个交易和使用账户对交易做签名的过程,最终得到的结构体里的raw就是最终发送到链上所需的数据.
发送交易调用ltk_sendRawTransaction接口将上一步签出的raw发送交易到链上交易发送到链上确认的过程是异步的,发送后会生成一个交易hash,最终的确认结果需要根据hash到链上查询上链状态才能确认是否执行成功.
验证结果上链结果可以通过多种方式验证,比如ltk_getTransactionReceipt/ltk_getTransactionByHash等接口,下面使用ltk_getTransactionReceipt示例:curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_signTransaction","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","to":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","value":"0xde0b6b3a7640000","nonce":"0x0","gas":"0x7a120","gasPrice":"0x174876e800"}]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":{"raw":"0xf86f8085174876e8008307a120943c4b41b3b769932ce2a48746a7e9dcd9f7d5c784880de0b6b3a76400008082e3e6a07fa9e0fea5022012ff8490abc53686b2638caf764d5a44b8ae1aec901db4e64ea05a01a0cbf195a8abd063176277e10b5914c61a1b54a22cbc27764e787aedbc50","tx":{"nonce":"0x0","gasPrice":"0x174876e800","gas":"0x7a120","to":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","value":"0xde0b6b3a7640000","input":"0x","v":"0xe3e6","r":"0x7fa9e0fea5022012ff8490abc53686b2638caf764d5a44b8ae1aec901db4e64e","s":"0x5a01a0cbf195a8abd063176277e10b5914c61a1b54a22cbc27764e787aedbc50","hash":"0x0cbdfbad48ca93343d458df74bc63a9743e81844199c3fb49c45524d91fbcede"}}}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_sendRawTransaction","params":["0xf86f8085174876e8008307a120943c4b41b3b769932ce2a48746a7e9dcd9f7d5c784880de0b6b3a76400008082e3e6a07fa9e0fea5022012ff8490abc53686b2638caf764d5a44b8ae1aec901db4e64ea05a01a0cbf195a8abd063176277e10b5914c61a1b54a22cbc27764e787aedbc50"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0x0cbdfbad48ca93343d458df74bc63a9743e81844199c3fb49c45524d91fbcede"}根据返回结果status=0x1,可知执行成功.
也可以查询一下转入账户的余额变化:节点控制台操作上面的步骤是通过wallet提供的服务发送的交易,这种方式利于程序化服务;另外一些一次性的操作也可以通过节点控制台来实现.
连接控制台测试节点服务启动后,可以通过rpc连接节点Geth控制台服务,默认为端口11000.
curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionReceipt","params":["0x0cbdfbad48ca93343d458df74bc63a9743e81844199c3fb49c45524d91fbcede"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":{"blockHash":"0x5e2f552028904ca89b1e82c55374b950ecb08f6bb32b78ca537f382e9a7657da","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x7a120","from":"0xa73810e519e1075010678d706533486d8ecc8000","gasUsed":"0x7a120","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","tokenAddress":"0x0000000000000000000000000000000000000000","transactionHash":"0x0cbdfbad48ca93343d458df74bc63a9743e81844199c3fb49c45524d91fbcede","transactionIndex":"0x0"}}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getAccountInfo","params":["0x0000000000000000000000000000000000000000","0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":{"eth_account":{"address":"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784","balance":"0xde0b6b3a7640000","nonce":"0x0"},"utxo_accounts":[{"address":"bzTSG8ki1WhzCueTaEu1gUSonEjDotsBg5fPfSbAoKZfGoeGbnhvvs6a1j7uADEmLGZ8d7Biey22ksXzdi1g3biiEnBgPU","index":"0x0","balance":"0x0"}],"total_balance":"0xde0b6b3a7640000","token":"0x0000000000000000000000000000000000000000"}}$cd/src/pack/lkchain/bin$.
/lkchainattachhttp://127.
0.
0.
1:11000WelcometotheGethJavaScriptconsole!
modules:debug:1.
0eth:1.
0net:1.
0personal:1.
0rpc:1.
0txpool:1.
0>通过控制台发送交易1.
查询账户余额2.
解锁账户3.
发送交易4.
查询账户余额通过链克口袋发送转账交易链克口袋是享云链提供的用户端账户与资产管理的客户端软件,用户可以通过链克口袋App保管自己的账户、发起转账、以及扫码或外部应用唤醒执行合约.
当前使用链克口袋执行交易的方式分为以下几种:1.
使用交易内容直接生成二维码方式直接使用交易内容结构拼接字符串生成二维码,对于简单的交易来说(如备注转账),拼接后的字符串长度小于160个字符,生成的二维码对于大多数移动设备来说可以快速识别成功.
如果交易内容过长,拼接后的字符串长度大于160个字符,会导致生成的二维码难以识别,这种情况建议使用第二种二维码活码方式.
2.
应用端唤醒方式应用端可以通过构造唤醒链克口袋的链接,把交易内容传入到链克口袋中来执行交易签名.
下面将继续使用前面构造的交易结构,并且新增一个remark字段用于标记应用方的交易订单信息.
from账户是通过链克口袋执行时选中的账户.
直接生成二维码转账>eth.
getBalance("0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784")1000000000000000000>personal.
unlockAccount("0xa73810e519e1075010678d706533486d8ecc8000")Unlockaccount0xa73810e519e1075010678d706533486d8ecc8000Passphrase:true>eth.
sendTransaction({from:"0xa73810e519e1075010678d706533486d8ecc8000",to:"0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784",value:web3.
toWei(1)})"0x52c8a3e69238135c61087f0c9cdf25e9d04ba7483849840a7ee2d7a1c270732c">eth.
getBalance("0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784")2000000000000000000{to:'0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784',value:'0xde0b6b3a7640000',remark:'2c09cadc2f1040009be98bbfe48062e3'}二维码字符串拼接规则:base64(ptitlubancommon://transferto=tx.
to&value=number(tx.
value)&remark=encodeURL(tx.
remark))可以得到以下的二维码如图应用端唤醒方式通过第三方应用或第三方页面构造请求,请求链接为ptitlubancommon://transferto=0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784&value=1000000000000000000&remark=2c09cadc2f1040009be98bbfe48062e3base64(ptitlubancommon://transferto=0x3c4b41b3b769932ce2a48746a7e9dcd9f7d5c784&value=1000000000000000000&remark=2c09cadc2f1040009be98bbfe48062e3)cHRpdGx1YmFuY29tbW9uOi8vdHJhbnNmZXI/dG89MHgzYzRiNDFiM2I3Njk5MzJjZTJhNDg3NDZhN2U5ZGNkOWY3ZDVjNzg0JnZhbHVlPTEwMDAwMDAwMDAwMDAwMDAwMDAmcmVtYXJrPTJjMDljYWRjMmYxMDQwMDA5YmU5OGJiZmU0ODA2MmUz点击后将会唤醒链克口袋.

优林70/月,西南高防地区最低70/月

优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内西南地区高防云服务器!全部是独享带宽!续费同价!官方网站:https://www.idc857.com​地区CPU内存硬盘流量带宽防御价格购买地址德阳高防4核4g50G无限流量10M100G70元/月点击购买德阳高防...

云雀云(larkyun)低至368元/月,广州移动1Gbps带宽VDS(带100G防御),常州联通1Gbps带宽VDS

云雀云(larkyun)当前主要运作国内线路的机器,最大提供1Gbps服务器,有云服务器(VDS)、也有独立服务器,对接国内、国外的效果都是相当靠谱的。此外,还有台湾hinet线路的动态云服务器和静态云服务器。当前,larkyun对广州移动二期正在搞优惠促销!官方网站:https://larkyun.top付款方式:支付宝、微信、USDT广移二期开售8折折扣码:56NZVE0YZN (试用于常州联...

Virmach:1核/512M1核M1核512M/夏季美国vps促销,年付$7.2,9月更换AMD平台

virmach怎么样?virmach家这几年非常火,从商家的黑五闪购开始,以超低的价格吸引了大批的国人客户,而且商家的机器还是非常稳定的,站长手里的4.75刀年付已经用了两年了,非常稳定,不过商家到国内的线路一般,目前商家新上了夏季优惠促销,价格低到发指,年付7.2美元起,商家反馈将在9月开始更换AMD+NVMe平台,这个消息从年初就有了,不过一直没有更换,目前这个时间也不确定是否准确。点击进入:...

curl扩展为你推荐
大学生创新实验计划波音737起飞爆胎为什么客机每次起飞都要先跑一段距离重庆杨家坪猪肉摊主杀人在毫无预兆的情况下,对方激情杀人(持械偷袭)——作为习武者,你该怎么办?特朗普吐槽iPhone华为余承东吐槽iPhone X,除了贵啥优点都没有360arp防火墙在哪360的9.6版本ARP防火墙在哪?sns网站有哪些最近两年哪些SNS网站比较火爱买网超谁有http://www.25j58.com爱网购吧网站简介?三五互联科技股份有限公司三五互联 网站做的怎么样 公司打算做网站,近来接到电话,不知道网站做的如何,水平怎么样,后期的服务呢欢迎光临本店宾馆欢迎语都有哪些? 越多越专业越好drupal教程drupal框架初学,请问开发流程是怎么样的,这个框架是对本体做修改,是不是说最后的成品就是这个d
上海虚拟主机 highfrequency 鲜果阅读 evssl 搜狗12306抢票助手 java空间 河南移动梦网 沈阳主机托管 云服务器比较 wordpress中文主题 服务器硬件配置 阿里云个人邮箱 网站防护 winds cdn加速技术 winserver2008下载 ftp是什么东西 vim koss耳机 56折扣网 更多