Các tính năng gần đây và Lộ trình 2016

Nút nguồn: 1576913

Cập nhật từ sàn nhà máy MultiChain

Như một sự thay đổi so với các bài đăng trên blog về blockchain nói chung, tôi muốn cung cấp một bản cập nhật về Đa chuỗi, cả về những cải tiến gần đây và lộ trình của chúng tôi cho năm 2016.

Trước tiên, tôi muốn cảm ơn hàng nghìn người trong số các bạn đã tải xuống và xây dựng trên MultiChain, câu hỏi và gửi phản hồi cho chúng tôi. Trong tám tháng kể từ lần phát hành công khai đầu tiên, số liệu thống kê của chúng tôi đã cho thấy sự tăng trưởng không phải trả tiền nhất quán về lưu lượng truy cập và lượt tải xuống và tôi hy vọng điều này có nghĩa là chúng tôi đang đạt được vị trí. Thật vậy, không cần nêu tên, chúng ta biết rằng MultiChain đã được sử dụng thành công cho các thí điểm chuỗi khối dài hạn ở một số ngân hàng, công ty tư vấn, công nghệ tài chính và công ty CNTT lớn nhất trên hành tinh.

Một câu hỏi mà chúng tôi thường hỏi là tại sao MultiChain lại ở “alpha” quá lâu. Câu trả lời đơn giản là chúng tôi đã bị tấn công bởi các yêu cầu tính năng, hầu hết trong số đó đều có ý nghĩa đối với chúng tôi, vì vậy chúng tôi đã tập trung vào việc thêm các cải tiến này hơn là đưa sản phẩm về phiên bản beta. Phải nói rằng, bạn sẽ thấy MultiChain rất ổn định cho phần mềm alpha và chúng tôi đã thử nghiệm nó kỹ lưỡng trong điều kiện tải khắc nghiệt.

Tôi cũng muốn giải thích cách chúng tôi định vị MultiChain trong không gian mở rộng của các nền tảng blockchain. Trong sáu tháng qua, nhiều sản phẩm cạnh tranh đã được công bố, (gần như) đã được thành lập, các công ty đã huy động được hàng chục triệu đô la và chỉ thỉnh thoảng chúng ta mới thấy một số bản phát hành phần mềm thực sự. Tất nhiên, cạnh tranh là tự nhiên và không thể tránh khỏi và chúng tôi mong muốn được xem các nền tảng khác này phát triển. Không nghi ngờ gì nữa, chúng tôi sẽ mượn những ý tưởng hay nhất của họ và chúng tôi cho rằng họ sẽ đáp lại lời khen.

Vậy MultiChain phù hợp ở đâu với tất cả những tiếng ồn này? Tóm lại, nó tập trung vào sản phẩm và tính thực tiễn:

  • Tính ổn định. Bằng cách fork từ Bitcoin Core, việc triển khai tham chiếu cho mạng bitcoin, MultiChain được xây dựng dựa trên những năm tháng khó kiếm được sự ổn định và bảo mật đến từ việc quản lý hàng tỷ đô la giá trị tiền điện tử trên Internet mở. Để rõ ràng, cơ sở mã Bitcoin Core có những hạn chế về mặt kiến ​​trúc và cuối cùng chúng ta có thể phải loại bỏ nó. Tuy nhiên, đối với các yêu cầu của người dùng hiện tại, chi phí làm như vậy sẽ lớn hơn đáng kể lợi ích.
  • Dễ sử dụng. Nhiều người dùng MultiChain đã nói với chúng tôi rằng nó dễ sử dụng hơn nhiều so với các nền tảng blockchain cạnh tranh. Tôi thậm chí không thể nhớ bao nhiêu lần tôi đã nói với ai đó rằng họ có thể đi từ con số XNUMX đến chuỗi khối riêng tư của riêng họ trong vài phút, và họ chỉ không tin tôi. Nhưng nó thực sự đúng - chỉ cần làm theo hướng dẫn trên tải vềbắt đầu và xem cho chính mình. Không phụ thuộc, không biên dịch, không gây rối với Docker. Chỉ cần ba tệp thực thi độc lập và một tệp README.
  • Tính năng. Khi MultiChain được phát hành lần đầu tiên, nó có ít tính năng hơn nhiều so với ngày nay. Không kiểm soát tài sản theo địa chỉ, không có giao dịch trao đổi nguyên tử, không có siêu dữ liệu giao dịch dễ dàng. Vì vậy, làm thế nào để chúng tôi quyết định những gì để thêm? Đơn giản - chúng tôi lắng nghe người dùng của mình. Đôi khi họ biết chính xác những gì họ muốn, chẳng hạn như phát hành tài sản tiếp theo và chúng tôi rất vui khi được thực hiện. Những lần khác, họ biết mình muốn đạt được điều gì, nhưng không biết cách thể hiện điều đó như một tính năng và nhiệm vụ của chúng tôi là giải quyết nó. Dù bằng cách nào, lộ trình của MultiChain được thúc đẩy không ngừng bởi phản hồi của người dùng và vì vậy nó sẽ tiếp tục.
  • Tính tương thích của Bitcoin. Nếu bạn đang xây dựng một giải pháp blockchain, bạn sẽ thấy nút chỉ là một phần nhỏ của bức tranh. Bạn có thể cần ví di động hoặc ví web, giải pháp quản lý khóa và thư viện bằng một số ngôn ngữ khó hiểu để giải mã, ký và mã hóa các giao dịch. MultiChain được thiết kế để làm cho tất cả điều này trở nên đơn giản và nhanh chóng nhất có thể, bằng cách duy trì khả năng tương thích tối đa với bitcoin, nơi cung cấp một lượng lớn thông tin, công cụ và mã miễn phí. Để chứng minh quan điểm, MultiChain thậm chí có thể được cấu hình như một nút trên mạng bitcoin.

Về cơ bản, chúng tôi hướng tới việc làm hài lòng người dùng và tin chắc rằng đây là con đường chắc chắn nhất dẫn đến thành công về mặt thương mại. Trên lưu ý đó, tôi muốn mô tả một số tính năng mới được thêm vào trong vài tháng qua.

Phát hành tài sản tiếp theo (alpha 17)

Yêu cầu này đã tồn tại được một thời gian và câu hỏi được ủng hộ nhiều nhất trên Hỏi và Đáp dành cho nhà phát triển. Vậy tại sao lại mất nhiều thời gian như vậy? Bạn có thể đổ lỗi cho chúng tôi là những người theo chủ nghĩa thuần túy. Bạn thấy đấy, về mặt bảo mật, không có sự khác biệt giữa (a) phát hành một đơn vị gazillion của một tài sản trong vòng lần đầu tiên và giữ cho hầu hết chúng không lưu hành và (b) cho phép các đợt phát hành tiếp theo của nhiều đơn vị giống nhau tài sản.

Nhưng hóa ra từ quan điểm của người dùng của chúng tôi, có is khá khác biệt giữa hai trường hợp, bởi vì không dễ dàng để phân biệt các đơn vị đang lưu thông với những đơn vị ngồi bên lề. Vì vậy, chúng tôi vui mừng thông báo rằng, trong phiên bản được phát hành ngày hôm nay, khi bạn phát hành một nội dung, bạn có thể quyết định xem nội dung đó đang mở hay đóng. Nếu nó mở, bên phát hành ban đầu có thể tạo nhiều đơn vị hơn bao nhiêu lần tùy thích.

Mặt khác, MultiChain hiện cũng cung cấp 'địa chỉ ghi đĩa' chuẩn cho mọi chuỗi. Địa chỉ này chứa đầy X và do đó rõ ràng được tạo mà không có khóa riêng tương ứng (làm như vậy sẽ mất một khoảng thời gian không thể thay đổi). Do đó, bất kỳ đơn vị tài sản nào được gửi đến địa chỉ này không bao giờ có thể được chi tiêu và bị tiêu hủy một cách minh bạch. Lưu ý rằng vì sự an toàn của bạn, địa chỉ ghi phải được cấp quyền nhận một cách rõ ràng trước khi nó có thể được sử dụng.

Lệnh gọi API: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo phản hồi của burnaddress trường.

Trình khám phá đa chuỗi

Cùng với alpha 17, chúng tôi đang phát hành bản beta đầu tiên của nguồn mở và miễn phí Trình khám phá đa chuỗi. Điều này cung cấp một cái nhìn trực quan dựa trên web về trạng thái toàn cầu của một blockchain MultiChain, tương tự như các trình khám phá blockchain mà người dùng bitcoin biết và yêu thích. Nó cho phép bạn xem nhanh chóng và thoải mái các giao dịch, khối, tài sản và địa chỉ, cũng như các kết nối giữa chúng, tất cả đều thoải mái từ trình duyệt web yêu thích của bạn.

MultiChain Explorer đã được tách ra từ phổ biến Abe dự án, được viết bằng Python và được hỗ trợ bởi SQLite. Nó kết nối với API của một nút MultiChain cục bộ và bao gồm một máy chủ web độc lập để không có thêm phụ thuộc nào. Chúng tôi hy vọng bạn thích công cụ này và hoan nghênh phản hồi của bạn để giúp chúng tôi làm cho nó tốt hơn nữa.

Chế độ lệnh tương tác (alpha 16)

Là một nhánh của Bitcoin Core, MultiChain kế thừa bitcoin-cli công cụ mà chúng tôi đã đổi tên thành multichain-cli tất nhiên. Công cụ này cung cấp giao diện dòng lệnh thuận tiện cho API JSON-RPC của MultiChain, cho phép các lệnh gọi API được gửi từ dòng lệnh hệ thống, với phản hồi của chúng được hiển thị trong thiết bị đầu cuối. Ở hậu trường, nó đọc thông tin đăng nhập API từ tệp cấu hình của chuỗi thích hợp, xây dựng yêu cầu JSON-RPC và giải mã phản hồi của nó.

Bản thân là người dùng MultiChain, chúng tôi có một điều thất vọng là multichain-cli phải được chạy riêng cho mọi yêu cầu API. Ngoài chi phí chung của hệ thống, điều này ngăn chặn loại tương tác linh hoạt mà cơ sở dữ liệu SQL cung cấp. Và vì vậy chúng tôi đã sửa nó. Kể từ alpha 16, nếu bạn chạy multichain-cli [chain-name] không có lệnh, bạn sẽ rơi vào một chế độ tương tác cho phép bạn nhập liên tục các lệnh và xem phản hồi của chúng. Chế độ tương tác hỗ trợ các tính năng chỉnh sửa tiêu chuẩn như lịch sử (mũi tên lên và xuống), nhảy đến đầu (Ctrl A) hoặc kết thúc (Ctrl E) của dòng và di chuyển đến từ tiếp theo (Ctrl →) và trước đó (Ctrl ←) .

Xác minh chữ ký nhanh hơn (alpha 15)

Khi nói đến hiệu suất bằng bitcoin hoặc MultiChain, nút thắt cổ chai quan trọng nhất là xác minh Chữ ký ECDSA trên đó mô hình bảo mật của blockchain được xây dựng. Phần mềm Bitcoin Core ban đầu dựa trên một thư viện mã nguồn mở được gọi là OpenSSL để tạo và xác minh chữ ký, đã thực hiện công việc này, mặc dù nó có một số vấn đề với dễ uốn nắn, có nghĩa là nhiều hơn một chữ ký hợp lệ cho một khóa cá nhân và trọng tải nhất định.

Các phiên bản gần đây của Bitcoin Core đã giới thiệu một thư viện mới để ký và xác minh ECDSA, được gọi là libsecp256k1. Thư viện này, được viết từ đầu bởi các nhà phát triển blockchain đẳng cấp thế giới, loại bỏ sự phụ thuộc vào OpenSSL, giải quyết các vấn đề với tính dễ uốn và hoạt động nhanh hơn nhiều lần. Một trong những lợi ích của việc bắt nguồn từ Bitcoin Core là MultiChain có thể tận dụng các loại cải tiến này, được xem xét và thử nghiệm rộng rãi trước khi triển khai trong mạng bitcoin. Và vì vậy alpha 15 thực hiện chính xác điều đó với libsecp256k1.

Kích hoạt quyền (alpha 14)

Khi phát triển phiên bản đầu tiên của MultiChain, chúng tôi phải đối mặt với một tình huống khó xử về cấp phép. Mặt khác, chúng tôi sẽ không gặp vấn đề gì khi chuẩn bị và triển khai một mô hình quyền cực kỳ mạnh mẽ, với nhiều lớp quản trị viên, quyền cho mỗi nội dung và sơ đồ biểu quyết có trọng số. Mặt khác, chúng tôi biết rằng những điều này sẽ thêm phức tạp từ góc độ người dùng và không nhất thiết phải phù hợp với nhu cầu của người dùng. Vì vậy, chúng tôi quyết định bắt đầu với một mô hình đơn giản, chỉ chứa sáu loại quyền (kết nối, gửi, nhận, phát hành, khai thác, quản trị) và một số biểu quyết dựa trên sự đồng thuận đơn giản cho các thay đổi đặc quyền quan trọng nhất. Chúng tôi dự kiến ​​mô hình này sẽ phức tạp hơn theo thời gian, nhưng được thúc đẩy bởi yêu cầu của người dùng hơn là lý thuyết của riêng chúng tôi.

Nó chỉ ra rằng, trong trường hợp này, đơn giản thực sự là khá tốt. Nhưng một đối tác nghiêm túc mà chúng tôi đang làm việc cùng cần điều gì đó nhiều hơn nữa. Bạn thấy đấy, địa chỉ MultiChain với đặc quyền quản trị có quyền kiểm soát tất cả các loại quyền trên blockchain, trong một số trường hợp phải đồng thuận với các quản trị viên khác. Nhưng đối tác này muốn cung cấp cho một địa chỉ quyền kiểm soát quyền kết nối, gửi và nhận của người khác chỉ cho mục đích giới thiệu và không có ảnh hưởng đến các quy trình quan trọng hơn như khai thác và phát hành tài sản. Vì vậy, chúng tôi đã thêm một quyền 'kích hoạt' mới để thực hiện chính xác điều này. Đây cũng là ví dụ đầu tiên về việc một đối tác trả tiền để triển khai một tính năng họ cần trong sản phẩm, đôi bên cùng có lợi nếu có.

API giao dịch trên Wallet (alpha 13)

Là một nhánh của Bitcoin Core, MultiChain thừa hưởng một số mặt xấu cùng với mặt tốt. Một trong những điểm yếu trong Bitcoin Core là API để lấy thông tin về các giao dịch trong ví của nút cục bộ. Nó cung cấp hai lựa chọn: (a) getrawtransaction gọi cái nào giải mã nội dung nhị phân của các giao dịch, nhưng không giải thích cách chúng ảnh hưởng đến ví cục bộ và (b) gettransactionlisttransactions các lệnh gọi nhằm mục đích mô tả các giao dịch từ quan điểm của ví, nhưng thực hiện theo cách khó hiểu, với nhiều yếu tố phản hồi cho mỗi giao dịch. Làm cho mọi thứ tồi tệ hơn, đầu ra từ các cuộc gọi này không thể dễ dàng mở rộng để hoạt động với việc triển khai các tài sản do blockchain phát hành của MultiChain.

Vì vậy, bản phát hành này đã giới thiệu một loạt các API mới để truy vấn các giao dịch của một nút. Đầu ra từ các lệnh gọi này giữ lại tất cả các trường hữu ích từ các trường mà chúng thay thế. Nhưng họ cũng thêm một loạt các trường mới mô tả cách mỗi giao dịch ảnh hưởng đến số dư của ví cục bộ, địa chỉ liên quan đến nó, cách nó sửa đổi quyền và bất kỳ siêu dữ liệu nào có trong đó. Sau phần giới thiệu (trong bản alpha 8) về khả năng cô lập hoạt động của từng địa chỉ trong một ví, các lệnh gọi có hai phiên bản - một cặp mô tả các giao dịch từ góc độ tổng thể của ví và một cặp mô tả chúng từ quan điểm của một địa chỉ ví cá nhân.

Lệnh gọi API: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Nhìn về phía trước để 2016

Đó là một số cải tiến chính được giới thiệu trong MultiChain trong vài tháng qua. Tất nhiên, nhiều tính năng nhỏ hơn cũng đã được thêm vào và chúng được liệt kê đầy đủ trong tệp README của bản tải xuống. Và ưu tiên hàng đầu của chúng tôi sẽ luôn là sửa lỗi ngay khi chúng xuất hiện. Rất may, các vấn đề chúng tôi đã thấy chưa bao giờ có tính chất kiến ​​trúc nghiêm trọng - kết quả đáng mừng của việc sử dụng Bitcoin Core làm điểm khởi đầu.

Về bản thân MultiChain, sau một lịch trình phát hành chóng mặt, chúng tôi sẽ chậm lại một chút. Đó là vì chúng tôi đang làm một việc lớn sẽ mất vài tháng để hoàn thành. Tôi sẽ mô tả chi tiết tính năng này trong một bài đăng blog trong tương lai, nhưng ý tưởng cơ bản là cung cấp cơ chế ghi và ghi dấu thời gian bất biến đơn giản và hiệu quả cho bất kỳ loại thông tin nào, một loại 'băng' kỹ thuật số. Mặc dù siêu dữ liệu giao dịch trong MultiChain đã có thể được sử dụng cho mục đích này (với khối lượng lên đến 8MB), nhưng nó không đặc biệt thuận tiện cho việc lưu trữ hoặc truy xuất và có các vấn đề về khả năng mở rộng khi xử lý các phần dữ liệu lớn.

Điều gì thúc đẩy tính năng này? Tất nhiên, phản hồi của bạn đã dạy chúng tôi rằng lưu trữ bất biến cho mục đích chung là một trường hợp sử dụng rất phổ biến cho các blockchain. Và nếu chúng ta từng thấy nhu cầu đáng kể về “hợp đồng thông minh” (tức là tính toán trên blockchain) trong MultiChain, hệ thống này có thể đóng vai trò là lớp lưu trữ bên dưới, với các tính toán được thực hiện trên mỗi nút, khi cần thiết. Như tôi giải thích trước, có rất ít giá trị trong việc yêu cầu mọi nút trong một chuỗi khối riêng tư thực hiện các phép tính trên chuỗi trong thời gian thực.

Và sau đó? Không nghi ngờ gì nữa, sẽ có nhiều cải tiến hơn đối với sản phẩm miễn phí, nhưng chúng tôi cũng sẽ bắt đầu làm việc với phiên bản cao cấp của MultiChain. Thật may mắn, trong 8 tháng qua, chúng tôi đã thấy một loạt các yêu cầu tính năng phổ biến có chung các đặc điểm sau:

  • Chúng quan trọng đối với việc triển khai trong thế giới thực, nhưng không quan trọng đối với thử nghiệm ban đầu.
  • Chúng có thể được thực hiện trên cơ sở mỗi nút, mà không ảnh hưởng đến sự đồng thuận của chuỗi.
  • Các công ty thực sự đang thực hiện các dự án thực tế dường như rất vui khi trả tiền cho chúng.

Các tính năng này liên quan đến hiệu suất, bảo mật, ghi nhật ký và phân tích và chúng tôi sẽ mô tả chi tiết chúng trong thời gian đầy đủ. Hiện tại, tôi muốn nhấn mạnh hai điều chính về phiên bản cao cấp này. Đầu tiên, nó sẽ là một Thay thế thả cho phiên bản miễn phí, vì vậy mọi mã hoặc ứng dụng bạn xây dựng trên MultiChain ngày hôm nay sẽ tiếp tục hoạt động mà không bị sửa đổi. Thứ hai, mọi nút trong chuỗi khối sẽ có thể quyết định độc lập có nâng cấp hay không, vì không có tính năng cao cấp nào ảnh hưởng đến sự đồng thuận của blockchain. Đây không chỉ là chúng tôi tốt bụng - điều quan trọng là chúng tôi muốn MultiChain tiếp tục phát triển một cách hữu cơ. Một thực thể mới sẽ có thể kết nối và tương tác với mạng MultiChain hiện có với đầy đủ các nút cao cấp mà không tốn một xu nào.

Nếu bạn muốn thảo luận về phiên bản cao cấp của MultiChain, vui lòng gửi email premium@multichain.com or sử dụng biểu mẫu này. Chúng tôi rất vui khi biết về các yêu cầu của bạn và xem cách chúng tôi có thể đáp ứng chúng.

Một điều tôi đã học được trong vài năm qua là không ai coi trọng phần mềm cho đến khi họ thực sự có thể nhìn thấy và sử dụng nó. Một tháng trước khi phát hành MultiChain đầu tiên, tôi đã nói với mọi người về sản phẩm và tôi nhận thấy họ gật đầu một cách lịch sự trong khi rõ ràng đang nghĩ "Ôi cứu tôi, đây là một người nói nhanh khác với một tờ giấy trắng và không có mã làm việc." Nhưng ngay sau khi bạn cung cấp một sản phẩm, phản ứng sẽ thay đổi hoàn toàn. Vì vậy, nếu bạn đang đọc về phiên bản cao cấp trong tương lai này với một chút hoài nghi, tôi hiểu và sẽ không chống lại bạn. Tất cả những gì tôi có thể nói là, cho đến nay, MultiChain có một hồ sơ rất vững chắc trong việc thực hiện những lời hứa của mình và chúng tôi mong muốn được tiếp tục.

Tôi cũng muốn nhân cơ hội này để cảm ơn nhóm của chúng tôi vì những công việc xuất sắc của họ. Mặc dù tôi là một lập trình viên nghiêm túc trong nghề, nhưng những ngày này tôi dành toàn bộ thời gian để viết nội dung, quản lý sản phẩm và nói chuyện với khách hàng. Tôi vô cùng may mắn khi biết rằng tôi có thể tin tưởng các nhà phát triển của chúng tôi tạo ra những đoạn mã vững chắc và hiệu quả, ngày này qua ngày khác và tôi không coi đó là điều hiển nhiên.

Và cuối cùng, cảm ơn bạn đã đọc và trở thành người dùng sớm của nền tảng MultiChain.

Dấu thời gian:

Thêm từ Đa sắc