ERP-системы и Ethereum

Я хотел узнать состояние интеграции системы ERP (например, SAP) и Ethereum.

Существует ли API, который позволяет смарт-контракту извлекать информацию из ERP для хранения этих данных?

заранее спасибо

Лучший!

darfchain.com Hybryd (уровень блокчейна + БД на BigchainDB + офчейн-платформа ERP на Odoo)

Ответы (3)

Не специально. Однако вы можете написать свою собственную программу демона на стороне сервера, которая в основном будет действовать как оракул:

  1. Дождитесь срабатывания таймера (например, Chron Job) или смарт-контракта (в этом случае ему придется следить за контрактом).
  2. Подключитесь к системе ERP и получите данные, например, SAP Netweaver.
  3. Обработайте данные, чтобы извлечь из них нужные части.
  4. Вызовите функцию в вашем контракте, которая устанавливает данные. (Очевидно, вы хотите защитить свою функцию, чтобы ее могли вызывать только авторизованные стороны)

Что касается создания демона на стороне сервера, есть несколько вариантов шага (3):

Вероятно, вам следует выбрать тот, для которого существует хорошая библиотека коннекторов SAP. Лично я бы попробовал python с sapnwrfc

Следует также отметить, что хранение больших объемов данных в блокчейне обходится дорого, поэтому рассмотрите возможность загрузки данных в SWARM или IPFS и хранения хэша данных в контракте.

Привет, @JackWinters, потрясающий ответ :) Два вопроса. Когда вы говорите, вызовите функцию в вашем контракте, которая устанавливает данные. Вы имеете в виду, что данные хранятся в смарт-контракте, верно? Кроме того, что вы подразумеваете под хэшем данных. Метаданные? как запрос, который нужно сделать, IP, пользователь, проход и таблица для запроса?
В моем примере вы можете хранить данные непосредственно в функции, такой как SetStockLevel (строка sku, uint location, uint number), которая устанавливает некоторые данные. Также вы можете просто выполнить обновление (хэш байтов), в котором хранится хеш, где хэш — это хэш данных, загруженных в IPFS или SWARM.
Наконец, вы можете использовать блокчейн для установки разрешений для веб-сервиса. Но на самом деле это другой вопрос. См. этот документ healthit.gov/sites/default/files/…
Извините @JackWinters, так что я лучше понимаю это. В примере sku, location, number, hash) что будет храниться в хэше, который можно считать указателем на данные, загруженные в IPFS?
ipfs add( см. ) возвращает хэш, например QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH, который можно использовать для извлечения всего, что вы добавили в IPFS. Вы сохраняете это в переменной bytes в контракте, чтобы другие могли использовать ipfs object get QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH, чтобы получить то, что вы добавили.
настоящий мастер-класс! любое чтение, связанное с этим. С такими примерами, как тот, который вы упомянули о sku и местоположениях
См. github.com/AdrianClv/ethereum-ipfs для примера использования IPFS в Dapp (вам нужно адаптировать его для серверной части, но принцип тот же)
Кстати, если у вас это работает, рассмотрите возможность открытого исходного кода и поделитесь результатом с сообществом в качестве проекта github.

sap — сложная база данных, но этим ребятам из finlync удалось напрямую интегрировать sap в ethereum. посоветуйте обратиться к ним...

http://www.the-blockchain.com/2017/01/18/finlync-designs-erp-integration-distributed-ledger-blockchain/

Прежде всего, вы не можете сделать вызов API в блокчейне так, как вы обычно это делаете в python/java/go/другом языке программирования. Вы должны сделать вызов через оракул , такой как Chainlink .

Затем вы можете продолжить и сделать эти вызовы API через эти оракулы Chainlink. Вы можете сделать это для любого API и интегрировать его с любой платформой (например, SAP).