Infvest 开发者文档

构建下一代去中心化应用的完整指南

1000+ 开发者
50+ DApps
99.9% 正常运行时间

安装

使用 npm 安装

npm install @infvest/sdk

使用 yarn 安装

yarn add @infvest/sdk

CDN 引入

<script src="https://cdn.infvest.io/sdk/latest/infvest.min.js"></script>

配置

基本配置

import { InfvestClient } from '@infvest/sdk';

const client = new InfvestClient({
  network: 'mainnet', // 或 'testnet'
  apiKey: 'your-api-key',
  endpoint: 'https://api.infvest.io'
});

环境变量配置

INFVEST_API_KEY=your-api-key
INFVEST_NETWORK=mainnet
INFVEST_ENDPOINT=https://api.infvest.io

第一笔交易

创建钱包

const wallet = await client.createWallet();
console.log('钱包地址:', wallet.address);
console.log('私钥:', wallet.privateKey);

发送交易

const transaction = await client.sendTransaction({
  from: wallet.address,
  to: '0x742d35Cc6634C0532925a3b8D0C9e3e0C0C0e0C0',
  value: '1000000000000000000', // 1 INFV
  gasLimit: 21000,
  gasPrice: '20000000000' // 20 Gwei
});

console.log('交易哈希:', transaction.hash);

区块链基础

什么是区块链?

区块链是一种分布式账本技术,通过密码学方法将交易记录链接成不可篡改的数据链。

区块结构

每个区块包含区块头、交易列表和默克尔树根,确保数据完整性和可验证性。

哈希函数

Infvest 使用 SHA-256 哈希算法确保数据安全性和唯一性。

智能合约

智能合约简介

智能合约是运行在区块链上的自执行程序,能够自动执行预定义的规则和条件。

合约示例

pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 private storedData;
    
    function set(uint256 x) public {
        storedData = x;
    }
    
    function get() public view returns (uint256) {
        return storedData;
    }
}

共识机制

Infvest 共识算法

Infvest 采用改进的权益证明(PoS)共识机制,结合委托权益证明(DPoS)的优势。

高效能

每秒可处理数千笔交易

低能耗

相比 PoW 减少 99% 的能源消耗

去中心化

支持数千个验证节点参与

代币经济

INFV 代币

INFV 是 Infvest 生态系统的原生代币,用于支付交易费用、参与治理和获得奖励。

总供应量

1,000,000,000 INFV

初始流通

100,000,000 INFV

通胀率

年化 3-5%

REST API

基础 URL

https://api.infvest.io/v1

认证

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://api.infvest.io/v1/accounts

常用端点

GET /accounts/{address} 获取账户信息
POST /transactions 发送交易
GET /blocks/{height} 获取区块信息

WebSocket

连接 WebSocket

const ws = new WebSocket('wss://ws.infvest.io/v1');

ws.onopen = function() {
    console.log('WebSocket 连接已建立');
    
    // 订阅新区块
    ws.send(JSON.stringify({
        method: 'subscribe',
        params: ['newBlocks']
    }));
};

ws.onmessage = function(event) {
    const data = JSON.parse(event.data);
    console.log('收到消息:', data);
};

订阅事件

  • newBlocks - 新区块通知
  • newTransactions - 新交易通知
  • accountUpdates - 账户更新

GraphQL

GraphQL 端点

https://api.infvest.io/graphql

查询示例

query GetAccount($address: String!) {
  account(address: $address) {
    address
    balance
    nonce
    transactions(first: 10) {
      edges {
        node {
          hash
          value
          timestamp
        }
      }
    }
  }
}

JavaScript SDK

安装

npm install @infvest/js-sdk

基本用法

import { InfvestClient } from '@infvest/js-sdk';

const client = new InfvestClient({
    apiKey: 'your-api-key',
    network: 'mainnet'
});

// 获取账户余额
const balance = await client.getBalance('0x...');
console.log('余额:', balance);

Python SDK

安装

pip install infvest-python

基本用法

from infvest import InfvestClient

client = InfvestClient(
    api_key='your-api-key',
    network='mainnet'
)

# 获取账户余额
balance = await client.get_balance('0x...')
print(f'余额: {balance}')

Go SDK

安装

go get github.com/infvest/go-sdk

基本用法

package main

import (
    "fmt"
    "github.com/infvest/go-sdk"
)

func main() {
    client := infvest.NewClient(&infvest.Config{
        APIKey:  "your-api-key",
        Network: "mainnet",
    })
    
    balance, err := client.GetBalance("0x...")
    if err != nil {
        panic(err)
    }
    
    fmt.Printf("余额: %s\n", balance)
}

Rust SDK

安装

[dependencies]
infvest-sdk = "0.1.0"

基本用法

use infvest_sdk::{InfvestClient, Config};

#[tokio::main]
async fn main() -> Result<(), Box> {
    let client = InfvestClient::new(Config {
        api_key: "your-api-key".to_string(),
        network: "mainnet".to_string(),
    });
    
    let balance = client.get_balance("0x...").await?;
    println!("余额: {}", balance);
    
    Ok(())
}

快速开始

📦

安装 SDK

使用 npm 或 yarn 安装 Infvest SDK

npm install @infvest/sdk
⚙️

初始化客户端

配置并连接到 Infvest 网络

import { InfvestClient } from '@infvest/sdk';

const client = new InfvestClient({
  network: 'mainnet',
  apiKey: 'your-api-key'
});
🚀

发送交易

创建并发送您的第一笔交易

const tx = await client.sendTransaction({
  to: '0x...',
  value: '1000000000000000000', // 1 INF
  data: '0x'
});

API 文档

账户管理

GET /api/v1/accounts/{address}

获取账户信息

POST /api/v1/accounts

创建新账户

交易

GET /api/v1/transactions/{hash}

获取交易详情

POST /api/v1/transactions

发送交易

智能合约

POST /api/v1/contracts/deploy

部署智能合约

POST /api/v1/contracts/call

调用合约方法

SDK 支持

🟨

JavaScript SDK

适用于 Web 和 Node.js 应用

TypeScript Promise-based Tree-shaking
🐍

Python SDK

适用于数据分析和后端服务

Async/Await Type Hints Pandas 集成
🔷

Go SDK

高性能区块链应用开发

并发安全 零依赖 高性能
🦀

Rust SDK

系统级区块链开发

内存安全 零成本抽象 WebAssembly

教程与指南

初级 15 分钟

创建您的第一个 DApp

学习如何在 Infvest 上构建简单的去中心化应用

智能合约 前端
中级 30 分钟

DeFi 协议开发

构建去中心化金融协议的完整指南

DeFi 流动性
高级 60 分钟

跨链桥接实现

实现 Infvest 与其他区块链的资产桥接

跨链 桥接

代码示例

创建 ERC-20 代币

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply);
    }
}