远程服务需要本地生成的Access-token,可以通过以下两种方式:
./bytomcli create-access-token test 或者 curl -X POST create-access-token -d '{"id":"test"}'9 _( e8 z! m5 a& x. [: F p
然后获得access-token:# D2 F3 c# {$ k- C
- “created_at”: “2018-05-18T16:00:25.284677605+08:00”,) R1 D7 ^* @9 h* f, O- H6 Y
- “id”: “test”,0 f6 l$ p6 G, i
- “token”:"test:fe50927ddaa5bcca77021e9f50fa5ef236a6140c012d1fe2eb9241f61a9228e4
test是账户,fe50927ddaa5bcca77021e9f50fa5ef236a6140c012d1fe2eb9241f61a9228e4是密码' e, S* a0 E- b* ^! S2 b! L
postman的方式,设置Authorization为Basic Auth,然后填写账户名和密码/ _! F6 X0 c9 y; f+ h9 j5 r' [
Java代码调用:
- String auth = Username + ":" + Password;
- byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));* d: e8 g4 Y7 X e: M0 Z
- String authHeader = "Basic " + new String(encodedAuth);
- Map header = new LinkedHashMap();- B) I! @& q( p- `1 J9 P9 Y* }( h
- 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”} ,9 `" c, M- t5 o( t1 k# ^3 {1 X
交易费gas给少了
% v7 C( |9 v0 p( g# |2 V8 i* g
**3、reservation found outputs already reserved ** R' S4 C7 j- s7 I$ q) G/ [$ b
表示该账户的utxo被暂时缓存,建议隔几分钟后再发该交易,一般是交易密码错误
4、build里面那个ttl是干嘛用的?2 [/ V0 R8 J+ d( |9 C( U, l
ttl表示utxo的缓存时间, reservation found outputs already reserved, 这个错误对应的时间,time_range 是为了延迟交易上链的一个时间戳,ttl 为 0 的话会采用默认的时间,大概2两个块的时间(五分钟),超过ttl不能重新 build-transaction
5、一笔交易最大可以支持多少上链数据?
上链数据和gas上限有关,现在比原链数据上限为175000字节 = 170 KB
6、如何配置区块数据到指定位置6 ^7 T% f$ Q# B9 {
$ ./bytomd node --mining --home9 t* v6 y Z, o
7、access-token接口访问失败0 c6 R5 V% a! A
create-access-token
list-access-tokens ^: w1 o( ?9 d2 H/ ~' A
delete-access-token
check-access-token
这四个接口只能本地访问,不能远程访问
比原的交易费如何计算7 x" ~; E" W& G2 [# M) X, x
BTM的输出- 输入就是交易费
交易存储的arbitrary字段中存储的hex增加了6a14是什么意思?$ m( z9 B' u- [8 {
使用varint可变长编码, T/ v: Z& G; N$ x. H/ y
arbitary: 6a + push指令 + 数据内容,其中6a是固定的,对应OP_FAIL指令,主要用于虚拟机读的格式作用