远程服务需要本地生成的Access-token,可以通过以下两种方式:8 s! i: a$ S/ G2 Q5 y( E; R
./bytomcli create-access-token test 或者 curl -X POST create-access-token -d '{"id":"test"}'
然后获得access-token:
- “created_at”: “2018-05-18T16:00:25.284677605+08:00”,
- “id”: “test”,
- “token”:"test:fe50927ddaa5bcca77021e9f50fa5ef236a6140c012d1fe2eb9241f61a9228e4
test是账户,fe50927ddaa5bcca77021e9f50fa5ef236a6140c012d1fe2eb9241f61a9228e4是密码! _# ?0 p# y N c3 f+ ~
postman的方式,设置Authorization为Basic Auth,然后填写账户名和密码
Java代码调用:
- String auth = Username + ":" + Password;% T. P9 B2 a0 c: V
- byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));7 k2 F) A, U, K5 y
- String authHeader = "Basic " + new String(encodedAuth);( {5 {& ]& T' @
- Map header = new LinkedHashMap();
- header.put("Authorization", authHeader);
2、错误:{“status”:“fail”,“msg”:“tx rejected: checking result 0: checking output source: checking value source: checking mux source 0: checking value source: checking issuance program: pushing initial argument 0: run limit exceeded”} ,
交易费gas给少了7 V) V7 E# b; ~! j
, s/ Z5 \% J& w B( e% [# i
**3、reservation found outputs already reserved **
表示该账户的utxo被暂时缓存,建议隔几分钟后再发该交易,一般是交易密码错误1 S W) d2 r# e+ A }0 {3 V6 {
3 C3 J8 E% H' W, L0 ]4 p. ^* J1 o
4、build里面那个ttl是干嘛用的?! l2 y' }; U5 n. b+ @- I
ttl表示utxo的缓存时间, reservation found outputs already reserved, 这个错误对应的时间,time_range 是为了延迟交易上链的一个时间戳,ttl 为 0 的话会采用默认的时间,大概2两个块的时间(五分钟),超过ttl不能重新 build-transaction) P& I8 r7 G2 E4 O
2 M) v5 ^4 p( |$ R
5、一笔交易最大可以支持多少上链数据?
上链数据和gas上限有关,现在比原链数据上限为175000字节 = 170 KB
/ s4 v) Q# B' O+ S4 t w
6、如何配置区块数据到指定位置" Q! I, R+ v8 H: k# J( ]$ r Y% H
$ ./bytomd node --mining --home
7 y* m* O. T" t
7、access-token接口访问失败
create-access-token1 P2 d- f! \3 L( G
list-access-tokens
delete-access-token2 j1 s9 ?0 p+ K0 K! J0 U. ]/ O1 K) X
check-access-token
这四个接口只能本地访问,不能远程访问2 q# c. \( W7 ]2 F! x L
比原的交易费如何计算
BTM的输出- 输入就是交易费3 v. d6 o. X5 m Z
j- h0 Z' X: A" t# y! v3 x
交易存储的arbitrary字段中存储的hex增加了6a14是什么意思?* \* y0 X" A' A" l
使用varint可变长编码4 i* ^5 u2 _# I% w; o$ j
arbitary: 6a + push指令 + 数据内容,其中6a是固定的,对应OP_FAIL指令,主要用于虚拟机读的格式作用