diff --git a/src/cli.zig b/src/cli.zig deleted file mode 100644 index 299f83c..0000000 --- a/src/cli.zig +++ /dev/null @@ -1,21 +0,0 @@ -const std = @import("std"); -const Config = @import("config.zig").Config; -const RPC = @import("rpc.zig").RPC; - -/// CLI for the node -pub const CLI = struct { - allocator: std.mem.Allocator, - - pub fn init(allocator: std.mem.Allocator) !CLI { - return CLI{ - .allocator = allocator, - }; - } - - pub fn deinit(self: *CLI) void { - // Clean up resources if needed - _ = self; - } - - pub fn start(_: *CLI) !void {} -}; diff --git a/src/config.zig b/src/config/config.zig similarity index 100% rename from src/config.zig rename to src/config/config.zig diff --git a/src/mempool.zig b/src/core/mempool.zig similarity index 98% rename from src/mempool.zig rename to src/core/mempool.zig index dea3b8a..d039bea 100644 --- a/src/mempool.zig +++ b/src/core/mempool.zig @@ -1,6 +1,6 @@ const std = @import("std"); -const Config = @import("config.zig").Config; -const tx = @import("transaction.zig"); +const Config = @import("../config/config.zig").Config; +const tx = @import("../types/transaction.zig"); const Transaction = struct {}; diff --git a/src/lib.zig b/src/lib.zig index 7142e2f..1fc416c 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -1,8 +1,9 @@ -pub usingnamespace @import("config.zig"); -pub usingnamespace @import("mempool.zig"); -pub usingnamespace @import("p2p.zig"); -pub usingnamespace @import("rpc.zig"); -pub usingnamespace @import("storage.zig"); +pub const config = @import("config/config.zig"); +pub const mempool = @import("core/mempool.zig"); +pub const p2p = @import("network/p2p.zig"); +pub const rpc = @import("network/rpc.zig"); +pub const storage = @import("storage/storage.zig"); +pub const wallet = @import("wallet/wallet.zig"); test { @import("std").testing.refAllDeclsRecursive(@This()); diff --git a/src/main.zig b/src/main.zig index ed5f185..a644358 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,10 +1,10 @@ const std = @import("std"); -const Config = @import("config.zig").Config; -const Mempool = @import("mempool.zig").Mempool; -const Storage = @import("storage.zig").Storage; -const P2P = @import("p2p.zig").P2P; -const RPC = @import("rpc.zig").RPC; -const CLI = @import("cli.zig").CLI; +const Config = @import("config/config.zig").Config; +const Mempool = @import("core/mempool.zig").Mempool; +const Storage = @import("storage/storage.zig").Storage; +const P2P = @import("network/p2p.zig").P2P; +const RPC = @import("network/rpc.zig").RPC; +const node = @import("node/node.zig"); pub fn main() !void { // Initialize the allocator @@ -16,9 +16,6 @@ pub fn main() !void { var config = try Config.load(allocator, "bitcoin.conf.example"); defer config.deinit(); - var cli = try CLI.init(allocator); - defer cli.deinit(); - // Initialize components var mempool = try Mempool.init(allocator, &config); defer mempool.deinit(); @@ -33,22 +30,5 @@ pub fn main() !void { defer rpc.deinit(); // Start the node - try startNode(&mempool, &storage, &p2p, &rpc, &cli); -} - -fn startNode(_: *Mempool, _: *Storage, p2p: *P2P, rpc: *RPC, _: *CLI) !void { - std.log.info("Starting btczee node...", .{}); - - // Start P2P network - try p2p.start(); - - // Start RPC server - try rpc.start(); - - // Main event loop - while (true) { - // Handle events, process blocks, etc. - std.log.debug("Waiting for blocks...", .{}); - std.time.sleep(std.time.ns_per_s); - } + try node.startNode(&mempool, &storage, &p2p, &rpc); } diff --git a/src/p2p.zig b/src/network/p2p.zig similarity index 98% rename from src/p2p.zig rename to src/network/p2p.zig index b02dcf9..ce1d56f 100644 --- a/src/p2p.zig +++ b/src/network/p2p.zig @@ -1,6 +1,6 @@ const std = @import("std"); const net = std.net; -const Config = @import("config.zig").Config; +const Config = @import("../config/config.zig").Config; const Peer = @import("peer.zig").Peer; /// P2P network handler. diff --git a/src/peer.zig b/src/network/peer.zig similarity index 100% rename from src/peer.zig rename to src/network/peer.zig diff --git a/src/protocol.zig b/src/network/protocol.zig similarity index 100% rename from src/protocol.zig rename to src/network/protocol.zig diff --git a/src/rpc.zig b/src/network/rpc.zig similarity index 93% rename from src/rpc.zig rename to src/network/rpc.zig index 8a2d840..98de765 100644 --- a/src/rpc.zig +++ b/src/network/rpc.zig @@ -1,8 +1,7 @@ const std = @import("std"); -const Config = @import("config.zig").Config; -const Mempool = @import("mempool.zig").Mempool; -const Storage = @import("storage.zig").Storage; -const P2P = @import("p2p.zig").P2P; +const Config = @import("../config/config.zig").Config; +const Mempool = @import("../core/mempool.zig").Mempool; +const Storage = @import("../storage/storage.zig").Storage; const httpz = @import("httpz"); /// RPC Server handler. diff --git a/src/node/node.zig b/src/node/node.zig new file mode 100644 index 0000000..fe8249e --- /dev/null +++ b/src/node/node.zig @@ -0,0 +1,23 @@ +const std = @import("std"); +const Config = @import("../config/config.zig").Config; +const Mempool = @import("../core/mempool.zig").Mempool; +const Storage = @import("../storage/storage.zig").Storage; +const P2P = @import("../network/p2p.zig").P2P; +const RPC = @import("../network/rpc.zig").RPC; + +pub fn startNode(_: *Mempool, _: *Storage, p2p: *P2P, rpc: *RPC) !void { + std.log.info("Starting btczee node...", .{}); + + // Start P2P network + try p2p.start(); + + // Start RPC server + try rpc.start(); + + // Main event loop + while (true) { + // Handle events, process blocks, etc. + std.log.debug("Waiting for blocks...", .{}); + std.time.sleep(std.time.ns_per_s); + } +} diff --git a/src/primitives/lib.zig b/src/primitives/lib.zig new file mode 100644 index 0000000..e69de29 diff --git a/src/storage.zig b/src/storage/storage.zig similarity index 93% rename from src/storage.zig rename to src/storage/storage.zig index 205b427..490be5c 100644 --- a/src/storage.zig +++ b/src/storage/storage.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const Config = @import("config.zig").Config; +const Config = @import("../config/config.zig").Config; /// Storage handler. /// diff --git a/src/transaction.zig b/src/types/transaction.zig similarity index 100% rename from src/transaction.zig rename to src/types/transaction.zig diff --git a/src/wallet/wallet.zig b/src/wallet/wallet.zig new file mode 100644 index 0000000..e69de29