JCCDex / ProjectFundingProposal

Jingtum & MOAC Project Funding Proposal
28 stars 8 forks source link

PFP30: ed25519 在井通上的支持情况 #28

Closed lospringliu closed 4 years ago

lospringliu commented 5 years ago

我们的宣传中支持 ed25519, 这个是需要验证的,应该包括

组件 内容 参考工时(5人天)
jingtum-lib .isValidAddress(), PaymentTx.submit()
swtc-lib .isValidAddress(), PaymentTx.submit()
skywelld 直接 websocket 交互

结果

[] jingtum-lib [x] swtc-lib [部分] [x] skywelld

AnFengDe commented 5 years ago

ed25519有npm包啊,用这个包来验证现在的签名信息?

lospringliu commented 5 years ago

不是用来验证井通的东西,而是验证这种算法的钱包井通能不能支持。我明确看到瑞波和恒星支持,而libra也说支持。然后井通的宣传也说支持。 我肯定jingtum-lib是不支持的,需要验证节点是否支持

lospringliu commented 4 years ago

ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile]

目前用的是 ecdsa, ed25519属于eddsa

zcZhang123 commented 4 years ago
组件 内容 工时
jingtum-lib .isValidAddress(), PaymentTx.submit() 1人天
swtc-lib .isValidAddress(), PaymentTx.submit() 1人天
skywell 直接 websocket 交互 2人天

总工时: 5人天 @lospringliu

lospringliu commented 4 years ago

@zcZhang123 , 如果skywelld支持, 是否有兴趣加两天把ed25519的transaction加密鼓捣出来, PR到github/swtcca/swtclib

zcZhang123 commented 4 years ago

目前验证情况:https://github.com/zcZhang123/PFP30.git

AnFengDe commented 4 years ago

支付记录

lospringliu commented 4 years ago

代码审核过, 结论同意 因为用jingtum-lib服务端签名确认不支持,所以没有做 websocket直接交互, 我会在合适的时候补上

搜索资料, 发觉rpc中有可选参数 key_type, 形式上应该支持 ed25519

lospringliu commented 4 years ago

使用RPC, 可以说明井通没有处理创建 ed25519 的地址

const axios = require("axios")
const url = "http://127.0.0.1:5050"
json = {
    method: "wallet_propose",
    params: [ { key_type: "ed25519" } ]
}
axios.post(url, json).then(r => console.log(r.data)).catch(console.error)

{
  result: {
    error: 'badSeed',
    error_code: 40,
    error_message: 'Disallowed seed.',
    request: { command: 'wallet_propose', key_type: 'ed25519' },
    status: 'error'
  }
}
lospringliu commented 4 years ago

skywelld 支持ed25519

const {Remote, Wallet} = require('swtc-lib')
const secret = "sEdTJSpen5J8ZA7H4cVGDF6oSSLLW2Y"
const wallet = Wallet.fromSecret(secret)

console.log(wallet)

const remote = new Remote()
const tx = remote.buildPaymentTx({
    account: "jfqiMxoT228vp3dMrXKnJXo6V9iYEx94pt",
    to: "j3vyFAMQW2Ls48eoFCTsMXFq2KNWVUskSx",
    amount: remote.makeAmount(),
    sequence: 1
})

console.log(tx.tx_json)
let json = {
    method: "sign",
    params: [
        {
        seed_hex: '47F64F980B9235CCC3BF8647C17078DE',
            tx_json: tx.tx_json,
        key_type: "ed25519"
        }
    ]
}

const axios = require("axios")
const url = "http://127.0.0.1:5050"
let json2 = {
    method: "wallet_propose",
    params: [ 
            {
            seed: "ss6TprP5rL7e3EdP2aAbmGvsam5J7",
            // seed_hex: "47F64F980B9235CCC3BF8647C17078DE",
            key_type: "ed25519"
        }
    ]
}
axios.post(url, json).then(r => console.log(r.data)).catch(console.error)
axios.post(url, json2).then(r => console.log(r.data)).catch(console.error)

{
  secret: 'sEdTJSpen5J8ZA7H4cVGDF6oSSLLW2Y',
  address: 'jfqiMxoT228vp3dMrXKnJXo6V9iYEx94pt'
}
{
  Flags: 0,
  Fee: 10000,
  TransactionType: 'Payment',
  Account: 'jfqiMxoT228vp3dMrXKnJXo6V9iYEx94pt',
  Amount: '1000000',
  Destination: 'j3vyFAMQW2Ls48eoFCTsMXFq2KNWVUskSx',
  Sequence: 1
}
{
  result: {
    status: 'success',
    tx_blob: '120000220000000024000000012F25A4A55D6140000000000F42406840000000000027107321ED68635043BC70DE82272BF5990642400CF79089B2ABCF8EF9D10FFFB96A6587637440ED9B403639FD308CB07759F26158958BAB23C694B86315944FDF28C0212583AF7702A4E5F7AD48CE06E87D01F63B63278E92A6F4F8654ABE722A5315FE9C710C81144B0DECFADE9D4170260CD5BA9EC1CF065CA88946831456FE5CE2D298C9493022FB43596A1B23AE3E3728',
    tx_json: {
      Account: 'jfqiMxoT228vp3dMrXKnJXo6V9iYEx94pt',
      Amount: '1000000',
      Destination: 'j3vyFAMQW2Ls48eoFCTsMXFq2KNWVUskSx',
      Fee: '10000',
      Flags: 0,
      Sequence: 1,
      SigningPubKey: 'ED68635043BC70DE82272BF5990642400CF79089B2ABCF8EF9D10FFFB96A658763',
      Timestamp: 631547229,
      TransactionType: 'Payment',
      TxnSignature: 'ED9B403639FD308CB07759F26158958BAB23C694B86315944FDF28C0212583AF7702A4E5F7AD48CE06E87D01F63B63278E92A6F4F8654ABE722A5315FE9C710C',
      hash: 'E8CD8ED2D480EE2305E183333524636BCFF4387E1DA7B2BED242A96CECCFF72D'
    }
  }
}
{
  result: {
    account_id: 'jfqiMxoT228vp3dMrXKnJXo6V9iYEx94pt',
    key_type: 'ed25519',
    master_key: 'SLAT NESS OTT GORY CRAB SOIL RAKE LEER FLOG OUT YEAH LEG',
    master_seed: 'ss6TprP5rL7e3EdP2aAbmGvsam5J7',
    master_seed_hex: '47F64F980B9235CCC3BF8647C17078DE',
    public_key: 'aKEZQuC43KBysPTS37Yf7jPpz2ekgMrazMxmrZ92yqp5EhMpFQFd',
    public_key_hex: 'ED68635043BC70DE82272BF5990642400CF79089B2ABCF8EF9D10FFFB96A658763',
    status: 'success'
  }
}