瑞波幣最完整版教程,非常實(shí)用值得收藏
瑞波幣是Ripple網(wǎng)絡(luò)的基礎(chǔ)貨幣,它可以在整個(gè)ripple網(wǎng)絡(luò)中流通,總數(shù)量為1000億,并且隨著交易的增多而逐漸減少,瑞波幣的運(yùn)營公司為Ripple Labs(其前身為OpenCoin)。
瑞波幣是ripple系統(tǒng)中唯一的通用貨幣,其不同于ripple系統(tǒng)中的其他貨幣,其他貨幣比如CNY、USD不能跨網(wǎng)關(guān)提現(xiàn)的,換句話說,A網(wǎng)關(guān)發(fā)行的CNY只能在A網(wǎng)關(guān)提現(xiàn),若想在B網(wǎng)關(guān)提現(xiàn),必須通過ripple系統(tǒng)的掛單功能轉(zhuǎn)化為B網(wǎng)關(guān)的CNY才可以到B網(wǎng)關(guān)提現(xiàn)。而瑞波幣完全沒有這方面的限制,它在ripple系統(tǒng)內(nèi)是通用的。
下面為大家介紹下關(guān)于瑞波幣的一些教程
1.創(chuàng)建錢包
2.信任網(wǎng)關(guān)
3.交易
4.交易恒星
5.交易其他網(wǎng)關(guān)資產(chǎn)
6.錢包追蹤
7.錢包加速
8.機(jī)器人API
1.創(chuàng)建錢包
選擇語言
瑞波是個(gè)分布式的區(qū)塊鏈(賬本)技術(shù)。由美國瑞波公司開發(fā)并維護(hù)。錢包可到社區(qū)里尋找。 國外資源鏈接下載。
打開錢包后,右下角選擇中文。
創(chuàng)建錢包
無論是否有秘鑰,都要?jiǎng)?chuàng)建一個(gè)新賬戶。
新用戶選擇打開一個(gè)空賬戶了。有秘鑰的選另一個(gè)。
然后保存文件。這個(gè)文件就是你的本地錢包文件。
保存時(shí)會(huì)讓你輸入密碼。這個(gè)密碼以后就可以用來打開本地錢包。輸入密碼后點(diǎn)“加密賬戶”。
然后就會(huì)顯示你的賬號(hào)信息。下圖紅框就是你的地址,別人就可以向這個(gè)地址發(fā)送錢啦!
當(dāng)然,你要先保存好密鑰。點(diǎn)擊“顯示密鑰”,然后確定。
把密鑰抄下來,或者打印出來放到安全的地方。如果電腦壞了,可以用密鑰恢復(fù)錢包。把剛才生成的wallet.txt放郵箱或網(wǎng)盤里也是個(gè)好方法。保存好了后,就點(diǎn)“嗯,我把密鑰保存好了”。
恭喜,錢包已經(jīng)創(chuàng)建好了。不過顯示只有 0 XRP。把錢包地址發(fā)給朋友或者從交易所提現(xiàn)一些XRP激活吧。記住,只能發(fā)地址。密鑰在任何情況下都不要告訴別人。
2.信任網(wǎng)關(guān)
錢包必須激活才可繼續(xù)操作。建議用31 XRP激活錢包。叫朋友發(fā)送或從交易所提現(xiàn)出來相應(yīng)數(shù)量即可。在“資金菜單”,選擇“Gateways”,然后點(diǎn)右邊的“Connect gateway”。
復(fù)制網(wǎng)關(guān)地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷鍵Ctrl+V粘貼,然后在貨幣類型里選擇CNY。
點(diǎn)擊“保存”后,會(huì)讓你二次確認(rèn)。英文提示“你正在連接網(wǎng)關(guān),該網(wǎng)關(guān)賬號(hào)會(huì)保管你的CNY資產(chǎn)”。注意:千萬不要信任來歷不明的網(wǎng)關(guān)。否則可能導(dǎo)致錢被置換,提不了現(xiàn)。
瑞狐網(wǎng)關(guān)已關(guān)閉,以上僅為示例!請(qǐng)自行研究使用其他網(wǎng)關(guān)。
3.交易
兌換 (交易 simple)
適用于小額市價(jià)成交。
先選擇接收哪種貨幣。只有信任過的代碼,才可以兌換。數(shù)字會(huì)變,多等一會(huì)兒更優(yōu)惠!下圖就是兌換100個(gè)XRP。
兌換不會(huì)凍結(jié)XRP,如果你的XRP不夠買賣,你可以兌換10個(gè)XRP,就又能用好久了。建議一次兌換少量的數(shù)字憑證。比如每次10000 XRP。
添加交易對(duì) (交易 高級(jí))
交易是以交易對(duì)為核心的,為了方便,我們先添加交易對(duì)吧。點(diǎn)上面的add pair
復(fù)制網(wǎng)關(guān)地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷鍵Ctrl+V粘貼
買賣
買賣的過程就不多說了。注意價(jià)格哦。有人可是不小心1分錢賣掉了上千萬的XRP。幾秒鐘一棟房子沒了。千萬不要把價(jià)格和數(shù)量填反啦。
只要有網(wǎng)關(guān),通過添加各種交易對(duì),可以交易各種外匯和數(shù)字貨幣。比如USD.Bitstamp/CNY.RippleFox, JPY.Mrr/CNY.RippleFox, BTC.Bitstamp/CNY.RippleFox, XLM.RippleFox/CNY.RippleFox
常用網(wǎng)關(guān)地址
Bitstamp (USD, BTC): rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B
4.交易恒星
添加恒星網(wǎng)關(guān)
恒星代碼是XLM,也由瑞狐發(fā)行。強(qiáng)烈建議你先添加XLM網(wǎng)關(guān)。
添加恒星交易對(duì)
“交易 高級(jí)”那里點(diǎn)“add pair”,代碼XLM。復(fù)制網(wǎng)關(guān)地址 rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y ,并用快捷鍵Ctrl+V粘貼
瑞波提現(xiàn)到恒星
在發(fā)送那里填入xlm@ripplefox.com
從恒星充值到網(wǎng)關(guān)
記得要添加網(wǎng)關(guān)后才能充值哦。打開恒星錢包,在發(fā)送那里填ripple地址即可
5.交易其他網(wǎng)關(guān)資產(chǎn)
以國外網(wǎng)關(guān)bitstamp為例,它發(fā)行了美元和比特幣。Bitstamp收千分之二的轉(zhuǎn)賬費(fèi),賣出美元或比特幣也視同轉(zhuǎn)賬。
充值和提現(xiàn)bitstamp的美元和比特幣請(qǐng)到bitstamp.net上進(jìn)行注冊(cè)和認(rèn)證。需提供英文的地址證明。具體情況請(qǐng)自行了解。
美元代碼USD。復(fù)制網(wǎng)關(guān)地址 rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B ,并用快捷鍵Ctrl+V粘貼
6.錢包追蹤
瑞波是數(shù)字貨幣,匿名性很強(qiáng),如果密鑰丟了,錢就沒了。
不要給人密鑰
不要接受“好心人”幫助
不要讓人控制電腦,不要讓人遠(yuǎn)程幫助
密鑰或錢包文件多重備份,比如優(yōu)盤、郵箱
如果發(fā)現(xiàn)資產(chǎn)被轉(zhuǎn)移了,請(qǐng)用工具追蹤。
工具在 https://xrpcharts.ripple.com/ 可找到。
如果最后資金轉(zhuǎn)到了交易所的熱錢包,可以聯(lián)系對(duì)應(yīng)的交易所調(diào)取提現(xiàn)記錄。
瑞波里,誰有密鑰,誰就是錢包的所有者。如果錢被轉(zhuǎn)移了,請(qǐng)聯(lián)系知道自己密鑰的人。
目前能追回的被盜資產(chǎn)比例很小。提高自己的安全意識(shí)最重要。
7.錢包提速
添加Rippled節(jié)點(diǎn),可以有效提升錢包速度。
錢包默認(rèn)的2個(gè)節(jié)點(diǎn)很慢。所以要添加s1和s2節(jié)點(diǎn)。
單擊右上角齒輪選擇Settings,調(diào)出高級(jí)選項(xiàng)頁面。
點(diǎn)擊添加服務(wù)器并新增
s1.ripple.com 端口443 安全連接secure
s2.ripple.com 端口443 安全連接secure
點(diǎn)擊保存后錢包需要重新打開,繼續(xù)添加即可。
從此你的錢包將會(huì)運(yùn)行得更流暢!如果還是連不上,請(qǐng)自行改善網(wǎng)絡(luò)連接情況。瑞波服務(wù)器全部在國外。
8.機(jī)器人API
安裝環(huán)境
ripple-lib版本在0.12后基本重寫,最新的語法請(qǐng)到ripple.com/build上看。
如果你用網(wǎng)頁編程:可以直接用右鍵保存 ripple-0.12.0-min.js
如果你用node.js,請(qǐng)安裝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;
}
以上代碼直接可用。足以滿足基本需求.