Bifrost是一项服务,使用户能够将BTC / ETH移动到POCChain网络。 它可以用于在网络上表示BTC或ETH,也可以将其交换到另一个自定义令牌。 这对ICO(Initial Coin Oferrings)特别有用。 本指南将重点介绍如何设置Bifrost服务器以将ETH移至POCChain网络。

你需要什么

  • Postgresql 数据库
  • 比特币/以太坊节点
  • Bifrost 服务器

设置Postgresql

设置以太坊节点

  • 下载geth 1.7.1或更高版本。
  • 提取下载文件的内容
  • 在测试网络上启动监听器
    ./geth --testnet --rpc
    
  • 阅读更多关于管理geth的信息

为您的资产创建卖单

Bifrost会自动将收到的BTC或ETH兑换为您的自定义令牌。 为此,POCChain的分布式交易所必须有CUSTOM-TOKEN / BTC或CUSTOM-TOKEN / ETH资产对的卖单。

例如,假设汇率为1 TOKE为0.2 ETH。 您可以使用Stellar Laboratory创建和提交管理要约操作:

  • 转到“交易生成器”选项卡
  • 使用“test / public”记下页面右上角的切换按钮,确保将其设置为public以进行实时交易并测试testnet上的交易
  • 填写页面上的表格:
    • 输入来源帐户(资产发行人或分配帐户)
    • 单击“获取下一个序列号”按钮
    • 向下滚动,添加选择操作类型:“Manage Offer”
    • 出售:选择字母数字4
    • 输入资产代码:TOKE
    • 输入发行人帐户ID:发行人帐户
    • 购买:选择字母数字4
    • 输入资产代码:ETH
    • 输入发行人帐户ID:发行人帐户
    • 金额:输入您销售的TOKE金额
    • 价格:以购买资产表示。 那是1 selling_asset = X buy_asset。 在我们的例子中,由于我们想要以0.2ETH的价格出售1TOKE,因此这里的值应为0.2
    • 邀约ID:输入“0”以创建新邀约
    • 向下滚动单击“在签名者中签名交易”
    • 输入资产发行人或分配帐户的密钥或使用Ledger设备签署交易
    • 点击“提交发布交易”
    • 点击“提交”。

上述步骤将在分布式交易所为您的资产创建卖单。

设置Bifrost

  • 下载最新版本并将其组件解压缩到一个文件夹中。
  • 将下载的文件重命名为bifrost-server(可选)
  • 根据BIP-0032生成您的以太坊主公钥。 您可以从GitHub下载此实现,并在脱机计算机上生成密钥。 您还可以从Ledger设备中提取主公钥。
  • 创建一个配置文件:bifrost.cfg,类似于下面的那个:
    port = 8002
    using_proxy = false
    access_control_allow_origin_header = "*"
    
    #uncomment bitcoin parameters if you will be accepting BTC
    #[bitcoin]
    #master_public_key = "xpub6DxSCdWu6jKqr4isjo7bsPeDD6s3J4YVQV1JSHZg12Eagdqnf7XX4fxqyW2sLhUoFWutL7tAELU2LiGZrEXtjVbvYptvTX5Eoa4Mamdjm9u"
    #rpc_server = "localhost:18332"
    #rpc_user = "user"
    #rpc_pass = "password"
    #testnet = true
    #minimum_value_btc = "0.0001"
    #token_price = "1"
    
    [ethereum]
    master_public_key = "xpub68VNckQn96Y23e5GsGh9X7zVmbPT4ho5Vdf6RdgMGG3LyNhH2cLFDCib9zgn8QWgj261xu7MYbmBsX8Fp5VkfDUrecUnpEGWkyCo7qK2gxn"
    rpc_server = "localhost:8545"
    network_id = "3"
    minimum_value_eth = "0.00001"
    token_price = "1"
    
    [stellar]
    issuer_public_key = "GDNPOP72ZO6AZXZ7LQJ4GKYT7UIH4JEG4X3ZRZBFUCRB467RNV3SFK5D"
    distribution_public_key = "GCSSFPPVERDH4ZPWH5BSONEJERHCVS4DPZRWJG3FP3STOA5ZFTD3GMZ5"
    signer_secret_key = "SB3WH2NLOFW2K2B5MWN34CWF35ZLQXH33ABZYL7KZFKTVEFP72Q574LM"
    token_asset_code = "ZEN"
    needs_authorize = false
    horizon = "https://horizon-testnet.stellar.org"
    network_passphrase = "Test SDF Network ; September 2015"
    starting_balance = "4"
    
    [database]
    type="postgres"
    dsn="postgres://stellar:pass1234@localhost/bifrost?sslmode=disable"
    
  • 使用此处描述的值完成配置文件
  • 运行以下命令检查您是否拥有正确的主公钥:
    ./bifrost-server check-keys
    

输出应类似于:

MAKE SURE YOU HAVE PRIVATE KEYS TO CORRESPONDING ADDRESSES:
Bitcoin MainNet:
No master key set...
Ethereum:
0 0xAF484B67cC184259d22edfA4aFe874f68275B714
1 0x0163DF805B87A9aB2dd3177f674B275163272630
2 0x42069115ba5802736444Aacba5F0bD4a9a007E69
3 0xA219bCCFeE13B94fcf505120Cb7b8CD090749A4e
4 0x3AB571B247b0CF45E44d111691F9D03eE1bfE705
5 0x1Fe3101B058Aa3b6Fb69B84Cd1cc7766959dcFc2
6 0x1B07c658614F6D4F13225b63d76055EaB07114c9
7 0x3C3459c47388163E56e544F9616ac0E46668420E
8 0x08fb48e4f54f699cDa3B97cd97D9fB6A594354D7
9 0xC5CD4b9E6c5D9c0cd1AAe5A52f6DCA3d20CF08BC

启动Bifrost服务器

完成配置文件设置后,可以通过运行以下命令启动服务器:

./bifrost-server server

Bifrost服务器将负责生成以太坊地址,收听这些地址的付款以及将购买的令牌转移给用户。

使用Bifrost JS SDK。

Bifrost JS SDK为客户端提供了与Bifrost服务器通信的方式。 下载最新版本的SDK,并将其包含在您的前端应用程序中。 有关如何实现此示例的示例,请参阅bifrost-js-sdk repo中的示例html文件