瑞波币是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);
varTIMEOUT = 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;
}
以上代码直接可用。足以满足基本需求.