1) Эта логика должна войти в поток, если вы хотите сохранить расчеты частными от клиентов. Все узлы будут использовать один и тот же контракт, но ваши потоки могут быть абстрагированы от CorDapp с локальной реализацией для узла.
2) Да, штат и контракт останутся неизменными во всех CorDapps. Только потоки будут отличаться. Это, вероятно, в конечном итоге станет распространенным сценарием, поскольку любые вызовы внешних систем будут происходить в потоке, и вы можете предвидеть, как это будет различаться для разных сущностей.
3) Вам просто нужно подумать о разработке вашего контракта таким образом, чтобы он не отклонял ни одно из значений, рассчитанных вашей функцией прибыли, и распространять этот же контракт среди всех.
Взгляните на этот пример CorDapp, он показывает различную бизнес-логику для узла