瑞波币是Ripple网络的基础货币,它可以在整个ripple网络中流通,总数量为1000亿,并且随着交易的增多而逐渐减少,瑞波币的运营公司为Ripple Labs(其前身为OpenCoin)。 瑞波币是ripple系统中唯一的通用货币,其不同于ripple系统中的其他货币,其他货币比如CNY、USD不能跨网关提现的,换句话说,A网关发行的CNY只能在A网关提现,若想在B网关提现,必须通过ripple系统的挂单功能转化为B网关的CNY才可以到B网关提现。而瑞波币完全没有这方面的限制,它在ripple系统内是通用的。 下面为大家介绍下关于瑞波币的一些教程 1.创建钱包 2.信任网关 3.交易 4.交易恒星 5.交易其他网关资产 6.钱包追踪 7.钱包加速 8.机器人API 1.创建钱包 选择语言 瑞波是个分布式的区块链(账本)技术。由美国瑞波公司开发并维护。钱包可到社区里寻找。 国外资源链接下载。 打开钱包后,右下角选择中文。 创建钱包 无论是否有秘钥,都要创建一个新账户。 新用户选择打开一个空账户了。有秘钥的选另一个。 然后保存文件。这个文件就是你的本地钱包文件。 保存时会让你输入密码。这个密码以后就可以用来打开本地钱包。输入密码后点“加密账户”。 然后就会显示你的账号信息。下图红框就是你的地址,别人就可以向这个地址发送钱啦! 当然,你要先保存好密钥。点击“显示密钥”,然后确定。 把密钥抄下来,或者打印出来放到安全的地方。如果电脑坏了,可以用密钥恢复钱包。把刚才生成的wallet.txt放邮箱或网盘里也是个好方法。保存好了后,就点“嗯,我把密钥保存好了”。 恭喜,钱包已经创建好了。不过显示只有 0 XRP。把钱包地址发给朋友或者从交易所提现一些XRP激活吧。记住,只能发地址。密钥在任何情况下都不要告诉别人。 2.信任网关 钱包必须激活才可继续操作。建议用31 XRP激活钱包。叫朋友发送或从交易所提现出来相应数量即可。在“资金菜单”,选择“Gateways”,然后点右边的“Connect gateway”。 复制网关地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷键Ctrl+V粘贴,然后在货币类型里选择CNY。 点击“保存”后,会让你二次确认。英文提示“你正在连接网关,该网关账号会保管你的CNY资产”。注意:千万不要信任来历不明的网关。否则可能导致钱被置换,提不了现。 瑞狐网关已关闭,以上仅为示例!请自行研究使用其他网关。 3.交易 兑换 (交易 simple) 适用于小额市价成交。 先选择接收哪种货币。只有信任过的代码,才可以兑换。数字会变,多等一会儿更优惠!下图就是兑换100个XRP。 兑换不会冻结XRP,如果你的XRP不够买卖,你可以兑换10个XRP,就又能用好久了。建议一次兑换少量的数字凭证。比如每次10000 XRP。 添加交易对 (交易 高级) 交易是以交易对为核心的,为了方便,我们先添加交易对吧。点上面的add pair 复制网关地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷键Ctrl+V粘贴 买卖 买卖的过程就不多说了。注意价格哦。有人可是不小心1分钱卖掉了上千万的XRP。几秒钟一栋房子没了。千万不要把价格和数量填反啦。 只要有网关,通过添加各种交易对,可以交易各种外汇和数字货币。比如USD.Bitstamp/CNY.RippleFox, JPY.Mrr/CNY.RippleFox, BTC.Bitstamp/CNY.RippleFox, XLM.RippleFox/CNY.RippleFox 常用网关地址 Bitstamp (USD, BTC): rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B 4.交易恒星 添加恒星网关 恒星代码是XLM,也由瑞狐发行。强烈建议你先添加XLM网关。 添加恒星交易对 “交易 高级”那里点“add pair”,代码XLM。复制网关地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷键Ctrl+V粘贴 瑞波提现到恒星 在发送那里填入xlm@ripplefox.com 从恒星充值到网关 记得要添加网关后才能充值哦。打开恒星钱包,在发送那里填ripple地址即可 5.交易其他网关资产 以国外网关bitstamp为例,它发行了美元和比特币。Bitstamp收千分之二的转账费,卖出美元或比特币也视同转账。 充值和提现bitstamp的美元和比特币请到bitstamp.net上进行注册和认证。需提供英文的地址证明。具体情况请自行了解。 美元代码USD。复制网关地址 rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B ,并用快捷键Ctrl+V粘贴 6.钱包追踪 瑞波是数字货币,匿名性很强,如果密钥丢了,钱就没了。 不要给人密钥 不要接受“好心人”帮助 不要让人控制电脑,不要让人远程帮助 密钥或钱包文件多重备份,比如优盘、邮箱 如果发现资产被转移了,请用工具追踪。 工具在 https://xrpcharts.ripple.com/ 可找到。 如果最后资金转到了交易所的热钱包,可以联系对应的交易所调取提现记录。 瑞波里,谁有密钥,谁就是钱包的所有者。如果钱被转移了,请联系知道自己密钥的人。 目前能追回的被盗资产比例很小。提高自己的安全意识最重要。 7.钱包提速 添加Rippled节点,可以有效提升钱包速度。 钱包默认的2个节点很慢。所以要添加s1和s2节点。 单击右上角齿轮选择Settings,调出高级选项页面。 点击添加服务器并新增 s1.ripple.com 端口443 安全连接secure s2.ripple.com 端口443 安全连接secure 点击保存后钱包需要重新打开,继续添加即可。 从此你的钱包将会运行得更流畅!如果还是连不上,请自行改善网络连接情况。瑞波服务器全部在国外。 8.机器人API 安装环境 ripple-lib版本在0.12后基本重写,最新的语法请到ripple.com/build上看。 如果你用网页编程:可以直接用右键保存 ripple-0.12.0-min.js 如果你用node.js,请安装node后,使用命令 npm install ripple-lib@0.12.0 求例 var Remote = require(‘ripple-lib’).Remote; var Amount = require(‘ripple-lib’).Amount; var Account = require(‘ripple-lib’).Account; var remote_config = { max_listeners : 100, trace : false, trusted : true, local_signing : true, connecTIon_offest : 60, servers : [ {host : ‘s-west.ripple.com’,port : 443, secure : true, pool : 3}, {host : ‘s-east.ripple.com’, port : 443, secure : true, pool : 3} ] }; var remote = new Remote(remote_config); var TIMEOUT = 20000; var account = “rBMva6Js5JuGp9AsdwTWeiPxuXpnA1WuUL”; var secret = “sssssssssssssssssssss”; console.log(‘ConnecTIng.。.’); remote.connect(funcTIon() { remote.setSecret(account, secret); console.log(‘Connected.’); //查询XRP accountInfo(account, function(err, data){ if (err) { console.error(err); } else { //console.log(data); var xrp = data.account_data.Balance / 1000000; console.log(‘I have %s XRP.’, xrp); } }); //查询其他货币 accountLines(account, function(err, data){ if (err) { console.error(err); } else { //console.log(data); data.lines.forEach(function(line) { var curr = line.currency; var balance = line.balance; var issuer = line.account; console.log(‘I have %s %s (%s)。’, balance, curr, issuer); }); } }); //查询委托单 accountOffers(account, function(err, offers){ if (err) { console.error(err); } else { console.log(offers); } }); //测试买卖,需要正确的用户名和密钥 testOffers(); }); function testOffers() { var buy_amount = createAmount(100, ‘XRP’, ‘’); var sell_amount = createAmount(1, ‘CNY’, ‘rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y’); createOffer(account, ‘buy’, buy_amount, sell_amount, function(err, seq) { if (err) { console.error(err); } else { console.log(seq); accountOffers(account, function(err, offers){ console.log(‘After create’, offers); cancelOffer(account, seq, function(err){ accountOffers(account, function(err, offers){ console.log(‘After cancel’, offers); }); }); }); } }); } function accountInfo(address, callback) { var request = remote.request_account_info({account: address}) .on(‘success’, function(data){ callback(null, data);}) .on(‘error’, function(e){ callback(e, null); }); request.timeout(TIMEOUT, function(){ callback(‘timeout’, null); }); try { request.request(); } catch (e) { callback(e, null); } } function accountLines(address, callback) { var request = remote.request_account_lines({account: address}) .on(‘success’, function(data){ callback(null, data);}) .on(‘error’, function(e){ callback(e, null); }); request.timeout(TIMEOUT, function(){ callback(‘timeout’, null); }); try { request.request(); } catch (e) { callback(e, null); } } function accountOffers(address, callback) { var request = remote.request_account_offers({account: address}) .on(‘success’, function(data){parseOffers(data, callback);}) .on(‘error’, function(e){ console.error(‘Check Order error.’, e); callback(‘AccountOfferErr’, null); }); request.timeout(TIMEOUT, function(){ callback(‘timeout’, null); }); try { request.request(); } catch (e) { callback(e, null); } } function parseOffers(data, callback) { var offers = {}; data.offers.forEach(function(offerData) { var order = {}; var gets = Amount.from_json(offerData.taker_gets); var pays = Amount.from_json(offerData.taker_pays); order.type = (offerData.flags === 0) ? ‘buy’ : ‘sell’; order.gets_currency = gets.currency().to_human(); order.gets_issuer = gets.issuer().to_json(); order.gets_value = (order.gets_currency == ‘XRP’) ? gets.to_number()/1000000 : gets.to_number(); order.pays_currency = pays.currency().to_human(); order.pays_issuer = pays.issuer().to_json(); order.pays_value = (order.pays_currency == ‘XRP’) ? pays.to_number()/1000000 : pays.to_number(); order.price = (order.type == ‘buy’) ? order.gets_value/order.pays_value : order.pays_value / order.gets_value; order.seq = offerData.seq; offers[order.seq] = order; }); callback(null, offers); } function createOffer(address, type, buy_amount, sell_amount, callback) { var self = this; var transaction = remote.transaction(); transaction.offer_create({ from : address, buy : buy_amount, sell : sell_amount }); if (type === ‘sell’) { transaction.set_flags(‘Sell’); }; transaction.on(‘proposed’, function(res) { console.log(‘Offer proposed.’ + res.tx_json.Sequence); }); transaction.on(‘success’, function(res) { console.log(‘Offer success.’ + res.tx_json.Sequence); callback(null, res.tx_json.Sequence); }); transaction.on(‘error’, function(res) { console.error(‘Offer error. ’); console.error(JSON.stringify(res)); callback(‘CreateOfferErr’, 0); }); var buy_currency = buy_amount.currency().to_human(); var buy_value = (buy_currency == ‘XRP’) ? buy_amount.to_number()/1000000 : buy_amount.to_number(); var sell_currency = sell_amount.currency().to_human(); var sell_value = (sell_currency == ‘XRP’) ? sell_amount.to_number()/1000000 : sell_amount.to_number(); var price = (type == ‘buy’) ? sell_value / buy_value : buy_value / sell_value; console.log(‘Create offer: ’ + type + ‘ ’ + buy_value + buy_currency + ‘ ’ + sell_value + sell_currency + ‘ Price: ’ + price); try { transaction.submit(); } catch (e) { console.error(‘Offer submit error. ’, e); callback(‘CreateOfferErr’, 0); } } function cancelOffer(address, seq, callback) { var transaction = remote.transaction(); transaction.offer_cancel(address, seq); transaction.on(‘success’, function(res) { console.log(‘Cancel offer success. ’ + seq); callback(null) }); transaction.on(‘error’, function(res) { console.error(‘Cancel offer error. ’ + seq); console.error(JSON.stringify(res)); callback(‘CancelErr’); }); try { transaction.submit(); } catch (e) { console.error(‘Cancel submit error. ’, e); callback(‘CancelErr’); } console.log(‘Cancel offer - ’ + seq + ‘。’); } function createAmount(value, curr, issuer) { var amt = Amount.from_human(value + curr); amt.set_issuer(issuer); return amt; } 以上代码直接可用。足以满足基本需求. |