瑞波幣是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.錢包加速
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;
}
以上代碼直接可用。足以滿足基本需求.
評論
查看更多